diff --git a/lib/audio.c b/lib/audio.c index 7901c64b38..262c8d90a6 100644 --- a/lib/audio.c +++ b/lib/audio.c @@ -51,7 +51,17 @@ static audio_output_t *GetAOut( libvlc_media_player_t *mp ) audio_output_t *p_aout = input_resource_HoldAout( mp->input.p_resource ); if( p_aout == NULL ) - libvlc_printerr( "No active audio output" ); + { + p_aout = input_resource_GetAout( mp->input.p_resource ); + if( p_aout != NULL ) + { + input_resource_PutAout( mp->input.p_resource, p_aout ); + p_aout = input_resource_HoldAout( mp->input.p_resource ); + } + else + libvlc_printerr( "No active audio output" ); + } + return p_aout; } @@ -133,11 +143,6 @@ int libvlc_audio_output_set( libvlc_media_player_t *mp, const char *psz_name ) /* Forget the existing audio output */ input_resource_ResetAout(mp->input.p_resource); - /* Create a new audio output */ - audio_output_t *aout = input_resource_GetAout(mp->input.p_resource); - if( aout != NULL ) - input_resource_PutAout(mp->input.p_resource, aout); - return 0; } diff --git a/lib/media_player.c b/lib/media_player.c index f35c0cbbe0..885c3f1605 100644 --- a/lib/media_player.c +++ b/lib/media_player.c @@ -595,10 +595,6 @@ libvlc_media_player_new( libvlc_instance_t *instance ) vlc_object_release(mp); return NULL; } - audio_output_t *aout = input_resource_GetAout(mp->input.p_resource); - if( aout != NULL ) - input_resource_PutAout(mp->input.p_resource, aout); - vlc_mutex_init (&mp->input.lock); mp->i_refcount = 1; mp->p_event_manager = libvlc_event_manager_new(mp, instance);