vlc | branch: master | Thomas Guillem <[email protected]> | Wed Mar 1 15:25:24 2017 +0100| [81a42e301c7216ac0e15d665dadb1b05dc49c589] | committer: Thomas Guillem
audiounit_ios: merge the two Start functions > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=81a42e301c7216ac0e15d665dadb1b05dc49c589 --- modules/audio_output/audiounit_ios.m | 116 +++++++++++++++-------------------- 1 file changed, 49 insertions(+), 67 deletions(-) diff --git a/modules/audio_output/audiounit_ios.m b/modules/audio_output/audiounit_ios.m index 1c757ca..432e35f 100644 --- a/modules/audio_output/audiounit_ios.m +++ b/modules/audio_output/audiounit_ios.m @@ -167,14 +167,45 @@ Play(audio_output_t * p_aout, block_t * p_block) #pragma mark initialization -/* - * StartAnalog: open and setup a HAL AudioUnit to do PCM audio output - */ +static void +Stop(audio_output_t *p_aout) +{ + struct aout_sys_t *p_sys = p_aout->sys; + OSStatus err; + + err = AudioOutputUnitStop(p_sys->au_unit); + if (err != noErr) + msg_Warn(p_aout, "AudioOutputUnitStop failed [%4.4s]", + (const char *)&err); + + err = AudioUnitUninitialize(p_sys->au_unit); + if (err != noErr) + msg_Warn(p_aout, "AudioUnitUninitialize failed [%4.4s]", + (const char *)&err); + + err = AudioComponentInstanceDispose(p_sys->au_unit); + if (err != noErr) + msg_Warn(p_aout, "AudioComponentInstanceDispose failed [%4.4s]", + (const char *)&err); + + avas_SetActive(p_aout, false, + AVAudioSessionSetActiveOptionNotifyOthersOnDeactivation); + + ca_Clean(p_aout); +} + static int -StartAnalog(audio_output_t *p_aout, audio_sample_format_t *fmt) +Start(audio_output_t *p_aout, audio_sample_format_t *restrict fmt) { - struct aout_sys_t *p_sys = p_aout->sys; - OSStatus status; + struct aout_sys_t *p_sys = p_aout->sys; + OSStatus err; + + if (aout_FormatNbChannels(fmt) == 0) + return VLC_EGENERIC; + + aout_FormatPrint(p_aout, "VLC is looking for:", fmt); + + p_sys->au_unit = NULL; /* Activate the AVAudioSession */ if (avas_SetActive(p_aout, true, 0) != VLC_SUCCESS) @@ -187,12 +218,12 @@ StartAnalog(audio_output_t *p_aout, audio_sample_format_t *fmt) if (p_sys->au_unit == NULL) goto error; - status = AudioUnitSetProperty(p_sys->au_unit, - kAudioOutputUnitProperty_EnableIO, - kAudioUnitScope_Output, 0, - &(UInt32){ 1 }, sizeof(UInt32)); - if (status != noErr) - msg_Warn(p_aout, "failed to set IO mode (%i)", (int)status); + err = AudioUnitSetProperty(p_sys->au_unit, + kAudioOutputUnitProperty_EnableIO, + kAudioUnitScope_Output, 0, + &(UInt32){ 1 }, sizeof(UInt32)); + if (err != noErr) + msg_Warn(p_aout, "failed to set IO mode [%4.4s]", (const char *)&err); int ret = au_Initialize(p_aout, p_sys->au_unit, fmt, NULL); if (ret != VLC_SUCCESS) @@ -207,11 +238,11 @@ StartAnalog(audio_output_t *p_aout, audio_sample_format_t *fmt) } p_aout->play = Play; - status = AudioOutputUnitStart(p_sys->au_unit); - if (status != noErr) + err = AudioOutputUnitStart(p_sys->au_unit); + if (err != noErr) { msg_Err(p_aout, "AudioOutputUnitStart failed [%4.4s]", - (const char *) &status); + (const char *) &err); AudioUnitUninitialize(p_sys->au_unit); ca_Clean(p_aout); goto error; @@ -220,64 +251,15 @@ StartAnalog(audio_output_t *p_aout, audio_sample_format_t *fmt) if (p_sys->b_muted) Pause(p_aout, true, 0); + p_aout->mute_set = MuteSet; + p_aout->pause = Pause; + msg_Dbg(p_aout, "analog AudioUnit output successfully opened"); return VLC_SUCCESS; error: avas_SetActive(p_aout, false, AVAudioSessionSetActiveOptionNotifyOthersOnDeactivation); AudioComponentInstanceDispose(p_sys->au_unit); - return VLC_EGENERIC; -} - -static void -Stop(audio_output_t *p_aout) -{ - struct aout_sys_t *p_sys = p_aout->sys; - OSStatus err; - - err = AudioOutputUnitStop(p_sys->au_unit); - if (err != noErr) - msg_Warn(p_aout, "AudioOutputUnitStop failed [%4.4s]", - (const char *)&err); - - err = AudioUnitUninitialize(p_sys->au_unit); - if (err != noErr) - msg_Warn(p_aout, "AudioUnitUninitialize failed [%4.4s]", - (const char *)&err); - - err = AudioComponentInstanceDispose(p_sys->au_unit); - if (err != noErr) - msg_Warn(p_aout, "AudioComponentInstanceDispose failed [%4.4s]", - (const char *)&err); - - avas_SetActive(p_aout, false, - AVAudioSessionSetActiveOptionNotifyOthersOnDeactivation); - - ca_Clean(p_aout); -} - -static int -Start(audio_output_t *p_aout, audio_sample_format_t *restrict fmt) -{ - struct aout_sys_t *p_sys = NULL; - - if (aout_FormatNbChannels(fmt) == 0) - return VLC_EGENERIC; - - p_sys = p_aout->sys; - p_sys->au_unit = NULL; - - aout_FormatPrint(p_aout, "VLC is looking for:", fmt); - - if (StartAnalog(p_aout, fmt) == VLC_SUCCESS) { - msg_Dbg(p_aout, "analog AudioUnit output successfully opened"); - p_aout->mute_set = MuteSet; - p_aout->pause = Pause; - - return VLC_SUCCESS; - } - - /* If we reach this, this aout has failed */ msg_Err(p_aout, "opening AudioUnit output failed"); return VLC_EGENERIC; } _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
