/*****************************************************************************
*
*****************************************************************************/
-static void Clean(aout_sys_t *sys)
-{
- if (sys->playerObject)
- Destroy(sys->playerObject);
- if (sys->outputMixObject)
- Destroy(sys->outputMixObject);
- if (sys->engineObject)
- Destroy(sys->engineObject);
-}
-
static int Start(audio_output_t *aout, audio_sample_format_t *restrict fmt)
{
SLresult result;
return VLC_SUCCESS;
error:
- Clean(sys);
+ if (sys->playerObject) {
+ Destroy(sys->playerObject);
+ sys->playerObject = NULL;
+ }
+
return VLC_EGENERIC;
}
free(sys->buf);
block_ChainRelease(sys->p_buffer_chain);
+
+ Destroy(sys->playerObject);
+ sys->playerObject = NULL;
}
/*****************************************************************************
audio_output_t *aout = (audio_output_t *)obj;
aout_sys_t *sys = aout->sys;
- Clean(sys);
+ Destroy(sys->outputMixObject);
+ Destroy(sys->engineObject);
dlclose(sys->p_so_handle);
vlc_mutex_destroy(&sys->lock);
free(sys);
return VLC_SUCCESS;
error:
- Clean(sys);
+ if (sys->outputMixObject)
+ Destroy(sys->outputMixObject);
+ if (sys->engineObject)
+ Destroy(sys->engineObject);
if (sys->p_so_handle)
dlclose(sys->p_so_handle);
free(sys);