vlc | branch: master | Thomas Guillem <[email protected]> | Thu Mar 2 13:12:53 2017 +0100| [1be694a510bebb9a7abe1fc57397dc1175a253e7] | committer: Thomas Guillem
auhal: don't Stop AudioUnit(PCM) and AudioDevice (S/PDIF) Either au_unit is valid and we were playing PCM or b_digital is true and we were playing S/PDIF. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=1be694a510bebb9a7abe1fc57397dc1175a253e7 --- modules/audio_output/auhal.c | 37 +++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/modules/audio_output/auhal.c b/modules/audio_output/auhal.c index 3f7212e..28e6eb9 100644 --- a/modules/audio_output/auhal.c +++ b/modules/audio_output/auhal.c @@ -1302,9 +1302,10 @@ Stop(audio_output_t *p_aout) au_Uninitialize(p_aout, p_sys->au_unit); AudioComponentInstanceDispose(p_sys->au_unit); } - - if (p_sys->b_digital) + else { + assert(p_sys->b_digital); + /* Stop device */ err = AudioDeviceStop(p_sys->i_selected_dev, p_sys->i_procID); @@ -1350,30 +1351,30 @@ Stop(audio_output_t *p_aout) (const char *)&err); } ca_Uninitialize(p_aout); - } - if (p_sys->i_hog_pid == getpid()) - { - p_sys->i_hog_pid = -1; + if (p_sys->i_hog_pid == getpid()) + { + p_sys->i_hog_pid = -1; + + /* + * HACK: On 10.6, auhal will trigger the streams changed callback + * when calling below line, directly in the same thread. This call + * needs to be ignored to avoid endless restarting. + */ + p_sys->b_ignore_streams_changed_callback = true; + AO_SETPROP(p_sys->i_selected_dev, sizeof(p_sys->i_hog_pid), + &p_sys->i_hog_pid, kAudioDevicePropertyHogMode, + kAudioObjectPropertyScopeOutput); + p_sys->b_ignore_streams_changed_callback = false; + } - /* - * HACK: On 10.6, auhal will trigger the streams changed callback when - * calling below line, directly in the same thread. This call needs to - * be ignored to avoid endless restarting. - */ - p_sys->b_ignore_streams_changed_callback = true; - AO_SETPROP(p_sys->i_selected_dev, sizeof(p_sys->i_hog_pid), - &p_sys->i_hog_pid, kAudioDevicePropertyHogMode, - kAudioObjectPropertyScopeOutput); - p_sys->b_ignore_streams_changed_callback = false; + p_sys->b_digital = false; } /* remove audio device alive callback */ AO_UPDATELISTENER(p_sys->i_selected_dev, false, DeviceAliveListener, p_aout, kAudioDevicePropertyDeviceIsAlive, kAudioObjectPropertyScopeGlobal); - - p_sys->b_digital = false; } static int _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
