Просмотр исходного кода

Use GetGlobalTimeNs as opposed to clock ticks

Billy Laws 3 лет назад
Родитель
Сommit
8908663f12
2 измененных файлов с 3 добавлено и 4 удалено
  1. 2 3
      src/audio_core/sink/sink_stream.cpp
  2. 1 1
      src/audio_core/sink/sink_stream.h

+ 2 - 3
src/audio_core/sink/sink_stream.cpp

@@ -252,8 +252,7 @@ void SinkStream::ProcessAudioOutAndRender(std::span<s16> output_buffer, std::siz
 
 
     {
     {
         std::scoped_lock lk{sample_count_lock};
         std::scoped_lock lk{sample_count_lock};
-        last_sample_count_update_time =
-            Core::Timing::CyclesToUs(system.CoreTiming().GetClockTicks());
+        last_sample_count_update_time = system.CoreTiming().GetGlobalTimeNs();
         min_played_sample_count = max_played_sample_count;
         min_played_sample_count = max_played_sample_count;
         max_played_sample_count += actual_frames_written;
         max_played_sample_count += actual_frames_written;
     }
     }
@@ -261,7 +260,7 @@ void SinkStream::ProcessAudioOutAndRender(std::span<s16> output_buffer, std::siz
 
 
 u64 SinkStream::GetExpectedPlayedSampleCount() {
 u64 SinkStream::GetExpectedPlayedSampleCount() {
     std::scoped_lock lk{sample_count_lock};
     std::scoped_lock lk{sample_count_lock};
-    auto cur_time{Core::Timing::CyclesToUs(system.CoreTiming().GetClockTicks())};
+    auto cur_time{system.CoreTiming().GetGlobalTimeNs()};
     auto time_delta{cur_time - last_sample_count_update_time};
     auto time_delta{cur_time - last_sample_count_update_time};
     auto exp_played_sample_count{min_played_sample_count +
     auto exp_played_sample_count{min_played_sample_count +
                                  (TargetSampleRate * time_delta) / std::chrono::seconds{1}};
                                  (TargetSampleRate * time_delta) / std::chrono::seconds{1}};

+ 1 - 1
src/audio_core/sink/sink_stream.h

@@ -246,7 +246,7 @@ private:
     /// Maximum number of total samples that can be played since the last callback
     /// Maximum number of total samples that can be played since the last callback
     u64 max_played_sample_count{};
     u64 max_played_sample_count{};
     /// The time the two above tracking variables were last written to
     /// The time the two above tracking variables were last written to
-    std::chrono::microseconds last_sample_count_update_time{};
+    std::chrono::nanoseconds last_sample_count_update_time{};
     /// Set by the audio render/in/out system which uses this stream
     /// Set by the audio render/in/out system which uses this stream
     f32 system_volume{1.0f};
     f32 system_volume{1.0f};
     /// Set via IAudioDevice service calls
     /// Set via IAudioDevice service calls