[vlc-devel] [PATCH 5/5] libvlc: player: use vlc_player
Thomas Guillem
thomas at gllm.fr
Thu May 9 18:51:09 CEST 2019
On Thu, May 9, 2019, at 18:49, Rémi Denis-Courmont wrote:
> Le torstaina 9. toukokuuta 2019, 18.56.58 EEST Romain Vimont a écrit :
> > Implement the old libvlc player API using the new vlc_player.
> > ---
> > lib/audio.c | 95 +--
> > lib/media_player.c | 1518 +++++++++++++++--------------------
> > lib/media_player_internal.h | 21 +-
> > lib/video.c | 266 ++----
> > 4 files changed, 763 insertions(+), 1137 deletions(-)
> >
> > diff --git a/lib/audio.c b/lib/audio.c
> > index 751584d0f1..f5e4493138 100644
> > --- a/lib/audio.c
> > +++ b/lib/audio.c
> > @@ -50,7 +50,7 @@ static audio_output_t *GetAOut( libvlc_media_player_t *mp
> > ) {
> > assert( mp != NULL );
> >
> > - audio_output_t *p_aout = input_resource_HoldAout( mp->input.p_resource
> > ); + audio_output_t *p_aout = vlc_player_aout_Hold(mp->player);
> > if( p_aout == NULL )
> > libvlc_printerr( "No active audio output" );
> > return p_aout;
> > @@ -131,14 +131,6 @@ int libvlc_audio_output_set( libvlc_media_player_t *mp,
> > const char *psz_name ) var_SetString( mp, "aout", value );
> > free( value );
> >
> > - /* 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;
> > }
> >
> > @@ -340,16 +332,13 @@ int libvlc_audio_set_volume( libvlc_media_player_t
> > *mp, int volume )
> > ***************************************************************************
> > **/ int libvlc_audio_get_track_count( libvlc_media_player_t *p_mi )
> > {
> > - input_thread_t *p_input_thread = libvlc_get_input_thread( p_mi );
> > - int i_track_count;
> > + vlc_player_t *player = p_mi->player;
> > + vlc_player_Lock(player);
> >
> > - if( !p_input_thread )
> > - return -1;
> > + int ret = vlc_player_GetTrackCount(p_mi->player, AUDIO_ES);
> >
> > - i_track_count = var_CountChoices( p_input_thread, "audio-es" );
> > -
> > - input_Release(p_input_thread);
> > - return i_track_count;
> > + vlc_player_Unlock(player);
> > + return ret;
> > }
>
> Application should (still) be allowed to call this, and most* other functions
> further down the patch, from within event callbacks. But this leads to
> deadlock or abort depending on build type.
>
> * Exceptions exist such _stop(), which would necessarily deadlock.
Not anymore, stop is asynchronous. Only player_release can block.
>
> --
> 雷米‧德尼-库尔蒙
> http://www.remlab.net/
>
>
>
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel
More information about the vlc-devel
mailing list