diff options
| author | 2018-09-12 18:23:54 -0400 | |
|---|---|---|
| committer | 2018-09-12 18:23:54 -0400 | |
| commit | 926dd415871a8c38605678f2fdcbd556413e52ee (patch) | |
| tree | 06c477f5b9f318d0c461d653f490d2c467cefec4 /src/audio_core/stream.cpp | |
| parent | Merge pull request #1306 from bunnei/fix-b5g6r5u (diff) | |
| parent | audio_core: Flush stream when not playing anything (diff) | |
| download | yuzu-926dd415871a8c38605678f2fdcbd556413e52ee.tar.gz yuzu-926dd415871a8c38605678f2fdcbd556413e52ee.tar.xz yuzu-926dd415871a8c38605678f2fdcbd556413e52ee.zip | |
Merge pull request #1163 from FearlessTobi/add-audio-stretching
audio_core: Add audio stretching support
Diffstat (limited to 'src/audio_core/stream.cpp')
| -rw-r--r-- | src/audio_core/stream.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/audio_core/stream.cpp b/src/audio_core/stream.cpp index dbae75d8c..84dcdd98d 100644 --- a/src/audio_core/stream.cpp +++ b/src/audio_core/stream.cpp | |||
| @@ -73,6 +73,7 @@ static void VolumeAdjustSamples(std::vector<s16>& samples) { | |||
| 73 | void Stream::PlayNextBuffer() { | 73 | void Stream::PlayNextBuffer() { |
| 74 | if (!IsPlaying()) { | 74 | if (!IsPlaying()) { |
| 75 | // Ensure we are in playing state before playing the next buffer | 75 | // Ensure we are in playing state before playing the next buffer |
| 76 | sink_stream.Flush(); | ||
| 76 | return; | 77 | return; |
| 77 | } | 78 | } |
| 78 | 79 | ||
| @@ -83,6 +84,7 @@ void Stream::PlayNextBuffer() { | |||
| 83 | 84 | ||
| 84 | if (queued_buffers.empty()) { | 85 | if (queued_buffers.empty()) { |
| 85 | // No queued buffers - we are effectively paused | 86 | // No queued buffers - we are effectively paused |
| 87 | sink_stream.Flush(); | ||
| 86 | return; | 88 | return; |
| 87 | } | 89 | } |
| 88 | 90 | ||
| @@ -90,6 +92,7 @@ void Stream::PlayNextBuffer() { | |||
| 90 | queued_buffers.pop(); | 92 | queued_buffers.pop(); |
| 91 | 93 | ||
| 92 | VolumeAdjustSamples(active_buffer->Samples()); | 94 | VolumeAdjustSamples(active_buffer->Samples()); |
| 95 | |||
| 93 | sink_stream.EnqueueSamples(GetNumChannels(), active_buffer->GetSamples()); | 96 | sink_stream.EnqueueSamples(GetNumChannels(), active_buffer->GetSamples()); |
| 94 | 97 | ||
| 95 | CoreTiming::ScheduleEventThreadsafe(GetBufferReleaseCycles(*active_buffer), release_event, {}); | 98 | CoreTiming::ScheduleEventThreadsafe(GetBufferReleaseCycles(*active_buffer), release_event, {}); |