From 8befda8dd0e650ad0f257991a4cee393e0307bad Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Mon, 15 Nov 2021 15:47:05 -0800 Subject: [PATCH] viewer: improved audio queue behavior --- app/widget/viewer/viewer.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/app/widget/viewer/viewer.cpp b/app/widget/viewer/viewer.cpp index d97cda0ac..d883a8383 100644 --- a/app/widget/viewer/viewer.cpp +++ b/app/widget/viewer/viewer.cpp @@ -433,7 +433,7 @@ void ViewerWidget::QueueNextAudioBuffer() // Clamp queue end by zero and the audio length queue_end = clamp(queue_end, rational(0), GetConnectedNode()->GetAudioLength()); - if (queue_end == audio_playback_queue_time_) { + if (queue_end <= audio_playback_queue_time_) { // This will queue nothing, so stop the loop here if (prequeuing_audio_) { DecrementPrequeuedAudio(); @@ -480,8 +480,6 @@ void ViewerWidget::ReceivedAudioBufferForPlayback() if (prequeuing_audio_) { // Add to prequeued audio buffer prequeued_audio_.append(pack); - - DecrementPrequeuedAudio(); } else { // Push directly to audio manager AudioManager::instance()->PushToOutput(GetConnectedNode()->GetAudioParams(), pack); @@ -490,6 +488,10 @@ void ViewerWidget::ReceivedAudioBufferForPlayback() } } + if (prequeuing_audio_) { + DecrementPrequeuedAudio(); + } + delete watcher; } }