[vlc-commits] audiounit_ios: query channel layout before au creation

Thomas Guillem git at videolan.org
Fri Mar 3 15:44:47 CET 2017


vlc | branch: master | Thomas Guillem <thomas at gllm.fr> | 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;
 }



More information about the vlc-commits mailing list