struct aout_sys_t *p_sys = p_aout->sys;
- if (p_sys->devices)
- free(p_sys->devices);
+ if (p_sys->devices) {
+ for (struct audio_device_t * device = p_sys->devices, *next; device != NULL; device = next) {
+ next = device->next;
+ free(device->name);
+ free(device);
+ }
+ }
/* Get number of devices */
AudioObjectPropertyAddress audioDevicesAddress = { kAudioHardwarePropertyDevices, kAudioObjectPropertyScopeGlobal, kAudioObjectPropertyElementMaster };
audio_output_t *aout = (audio_output_t *)obj;
aout_sys_t *sys = aout->sys;
+ for (struct audio_device_t * device = sys->devices, *next; device != NULL; device = next) {
+ next = device->next;
+ free(device->name);
+ free(device);
+ }
+
vlc_mutex_destroy(&sys->lock);
free(sys);