summaryrefslogtreecommitdiff
path: root/src/audio_core/stream.cpp
diff options
context:
space:
mode:
authorGravatar bunnei2018-09-12 18:23:54 -0400
committerGravatar GitHub2018-09-12 18:23:54 -0400
commit926dd415871a8c38605678f2fdcbd556413e52ee (patch)
tree06c477f5b9f318d0c461d653f490d2c467cefec4 /src/audio_core/stream.cpp
parentMerge pull request #1306 from bunnei/fix-b5g6r5u (diff)
parentaudio_core: Flush stream when not playing anything (diff)
downloadyuzu-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.cpp3
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) {
73void Stream::PlayNextBuffer() { 73void 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, {});