vlc | branch: master | Thomas Guillem <[email protected]> | Fri Mar 3 10:30:03 2017 +0100| [13ccb1f385945138837b5458a03cabdfea7738a6] | committer: Thomas Guillem
audiounit_ios: query channel layout before au creation > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=13ccb1f385945138837b5458a03cabdfea7738a6 --- modules/audio_output/audiounit_ios.m | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/modules/audio_output/audiounit_ios.m b/modules/audio_output/audiounit_ios.m index b7cd469..7ee81b2 100644 --- a/modules/audio_output/audiounit_ios.m +++ b/modules/audio_output/audiounit_ios.m @@ -338,12 +338,19 @@ Start(audio_output_t *p_aout, audio_sample_format_t *restrict fmt) p_sys->au_unit = NULL; - fmt->i_format = VLC_CODEC_FL32; - /* Activate the AVAudioSession */ if (avas_SetActive(p_aout, true, 0) != VLC_SUCCESS) return VLC_EGENERIC; + enum dev_type dev_type; + int ret = avas_GetOptimalChannelLayout(p_aout, aout_FormatNbChannels(fmt), + &dev_type, &layout); + if (ret != VLC_SUCCESS) + goto error; + + /* TODO: Do passthrough if dev_type allows it */ + fmt->i_format = VLC_CODEC_FL32; + p_sys->au_unit = au_NewOutputInstance(p_aout, kAudioUnitSubType_RemoteIO); if (p_sys->au_unit == NULL) goto error; @@ -355,14 +362,6 @@ Start(audio_output_t *p_aout, audio_sample_format_t *restrict fmt) if (err != noErr) ca_LogWarn("failed to set IO mode"); - enum dev_type dev_type; - int ret = avas_GetOptimalChannelLayout(p_aout, aout_FormatNbChannels(fmt), - &dev_type, &layout); - if (ret != VLC_SUCCESS) - goto error; - - /* TODO: Do passthrough if dev_type allows it */ - ret = au_Initialize(p_aout, p_sys->au_unit, fmt, layout, [p_sys->avInstance outputLatency] * CLOCK_FREQ); if (ret != VLC_SUCCESS) @@ -395,7 +394,8 @@ error: free(layout); avas_SetActive(p_aout, false, AVAudioSessionSetActiveOptionNotifyOthersOnDeactivation); - AudioComponentInstanceDispose(p_sys->au_unit); + if (p_sys->au_unit != NULL) + AudioComponentInstanceDispose(p_sys->au_unit); msg_Err(p_aout, "opening AudioUnit output failed"); return VLC_EGENERIC; } _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
