Commit 0ce61c67 authored by Felix Paul Kühne's avatar Felix Paul Kühne

AudioQueue: fix flush if wait is true

parent 8f64d1c1
...@@ -200,13 +200,16 @@ static void Flush (audio_output_t *p_aout, bool wait) ...@@ -200,13 +200,16 @@ static void Flush (audio_output_t *p_aout, bool wait)
if (p_aout->sys->b_stopped || !p_aout->sys->audioQueue) if (p_aout->sys->b_stopped || !p_aout->sys->audioQueue)
return; return;
AudioQueueDisposeTimeline(p_aout->sys->audioQueue, p_aout->sys->outTimeline);
if (wait) if (wait)
AudioQueueFlush(p_aout->sys->audioQueue); AudioQueueStop(p_aout->sys->audioQueue, false);
else { else
p_aout->sys->i_played_length = 0;
AudioQueueStop(p_aout->sys->audioQueue, true); AudioQueueStop(p_aout->sys->audioQueue, true);
AudioQueueStart(p_aout->sys->audioQueue, NULL);
} p_aout->sys->i_played_length = 0;
AudioQueueStart(p_aout->sys->audioQueue, NULL);
AudioQueueCreateTimeline(p_aout->sys->audioQueue, &p_aout->sys->outTimeline);
} }
static int TimeGet (audio_output_t *p_aout, mtime_t *restrict delay) static int TimeGet (audio_output_t *p_aout, mtime_t *restrict delay)
...@@ -215,10 +218,8 @@ static int TimeGet (audio_output_t *p_aout, mtime_t *restrict delay) ...@@ -215,10 +218,8 @@ static int TimeGet (audio_output_t *p_aout, mtime_t *restrict delay)
Boolean b_discontinuity; Boolean b_discontinuity;
OSStatus status = AudioQueueGetCurrentTime(p_aout->sys->audioQueue, p_aout->sys->outTimeline, &outTimeStamp, &b_discontinuity); OSStatus status = AudioQueueGetCurrentTime(p_aout->sys->audioQueue, p_aout->sys->outTimeline, &outTimeStamp, &b_discontinuity);
if (status != noErr) { if (status != noErr)
msg_Warn(p_aout, "AudioQueueGetCurrentTime failed (%li)", status);
return -1; return -1;
}
if (b_discontinuity) if (b_discontinuity)
msg_Dbg(p_aout, "detected output discontinuity"); msg_Dbg(p_aout, "detected output discontinuity");
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment