From 2e4971051211f827340643f24ea8530331c40b05 Mon Sep 17 00:00:00 2001 From: David Fuhrmann Date: Sat, 22 Mar 2014 14:06:20 +0100 Subject: [PATCH] auhal: always do a final format check in stream change function --- modules/audio_output/auhal.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/modules/audio_output/auhal.c b/modules/audio_output/auhal.c index 891f9f74c9..fbe1c1e538 100644 --- a/modules/audio_output/auhal.c +++ b/modules/audio_output/auhal.c @@ -1899,6 +1899,12 @@ static int AudioStreamChangeFormat(audio_output_t *p_aout, AudioStreamID i_strea UInt32 i_param_size = sizeof(AudioStreamBasicDescription); for (int i = 0; i < 5; i++) { /* Callback is not always invoked. So first check if format is already set. */ + if (i > 0) { + mtime_t timeout = mdate() + 500000; + if (vlc_cond_timedwait(&w.cond, &w.lock, timeout)) + msg_Dbg(p_aout, "reached timeout"); + } + err = AudioObjectGetPropertyData(i_stream_id, &physicalFormatAddress, 0, NULL, &i_param_size, &actual_format); msg_Dbg(p_aout, STREAM_FORMAT_MSG("actual format in use: ", actual_format)); @@ -1910,9 +1916,6 @@ static int AudioStreamChangeFormat(audio_output_t *p_aout, AudioStreamID i_strea } /* We need to check again */ - mtime_t timeout = mdate() + 500000; - if (vlc_cond_timedwait(&w.cond, &w.lock, timeout)) - msg_Dbg(p_aout, "reached timeout"); } out: -- 2.39.2