]> git.sesse.net Git - vlc/commitdiff
auhal: remove audio devices callback not before module close
authorDavid Fuhrmann <david.fuhrmann@googlemail.com>
Mon, 22 Apr 2013 19:54:04 +0000 (21:54 +0200)
committerDavid Fuhrmann <david.fuhrmann@googlemail.com>
Mon, 22 Apr 2013 20:14:15 +0000 (22:14 +0200)
modules/audio_output/auhal.c

index f90be9efe6303d61d7674c408ee6cd0bc9cae597..66ba77e80c97f0fcf7c6b060e7b45c6c2948bdbf 100644 (file)
@@ -210,7 +210,14 @@ static void Close(vlc_object_t *obj)
 
     OSStatus err = noErr;
 
-    /* remove audio device callback */
+    /* remove audio devices callback */
+    AudioObjectPropertyAddress audioDevicesAddress = { kAudioHardwarePropertyDevices, kAudioObjectPropertyScopeGlobal, kAudioObjectPropertyElementMaster };
+    err = AudioObjectRemovePropertyListener(kAudioObjectSystemObject, &audioDevicesAddress, HardwareListener, (void *)p_aout);
+    if (err != noErr)
+        msg_Err(p_aout, "AudioHardwareRemovePropertyListener failed: [%4.4s]", (char *)&err);
+
+
+    /* remove audio device alive callback */
     AudioObjectPropertyAddress deviceAliveAddress = { kAudioDevicePropertyDeviceIsAlive, kAudioObjectPropertyScopeGlobal, kAudioObjectPropertyElementMaster };
     err = AudioObjectRemovePropertyListener(p_sys->i_selected_dev, &deviceAliveAddress, HardwareListener, (void *)p_aout);
     if (err != noErr)
@@ -926,12 +933,6 @@ static void Stop(audio_output_t *p_aout)
         }
     }
 
-    AudioObjectPropertyAddress audioDevicesAddress = { kAudioHardwarePropertyDevices, kAudioObjectPropertyScopeGlobal, kAudioObjectPropertyElementMaster };
-    err = AudioObjectRemovePropertyListener(kAudioObjectSystemObject, &audioDevicesAddress, HardwareListener, (void *)p_aout);
-
-    if (err != noErr)
-        msg_Err(p_aout, "AudioHardwareRemovePropertyListener failed: [%4.4s]", (char *)&err);
-
     if (p_sys->i_hog_pid == getpid()) {
         p_sys->i_hog_pid = -1;
         i_param_size = sizeof(p_sys->i_hog_pid);