[vlc-devel] [PATCH] intf: use new playlist

Thomas Guillem thomas at gllm.fr
Fri Mar 8 09:20:26 CET 2019


The goal is this patch was to kill the old playlist_t dependency.
But your last version added it back:

int intf_Create( playlist_t *playlist, const char *chain );

As a transition, intf_Create should use a libvlc_instance_t.
Then we switch intf modules one by one to the new playlist and we can finally remove playlist_t.


On Mon, Dec 3, 2018, at 14:37, Victorien Le Couviour--Tuffet wrote:
> ---
> missed a review:
>     ret = vlc_playlist_InsertOne(...);
> instead of:
>     if (vlc_playlist_InsertOne(...) == VLC_SUCCESS)
>         ret = 0;
> 
>  src/interface/interface.c | 39 +++++++++++++++++++--------------------
>  1 file changed, 19 insertions(+), 20 deletions(-)
> 
> diff --git a/src/interface/interface.c b/src/interface/interface.c
> index 0f47e06fd8..b09d2a1968 100644
> --- a/src/interface/interface.c
> +++ b/src/interface/interface.c
> @@ -43,6 +43,7 @@
>  #include <vlc_modules.h>
>  #include <vlc_interface.h>
>  #include <vlc_playlist_legacy.h>
> +#include <vlc_playlist.h>
>  #include "libvlc.h"
>  #include "playlist_legacy/playlist_internal.h"
>  #include "../lib/libvlc_internal.h"
> @@ -155,17 +156,13 @@ vlc_intf_GetMainPlaylist(intf_thread_t *intf)
>  /**
>   * Inserts an item in the playlist.
>   *
> - * This function is used during initialization. Unlike playlist_Add() and
> - * variants, it inserts an item to the beginning of the playlist. That is
> - * meant to compensate for the reverse parsing order of the command line.
> - *
> - * @note This function may <b>not</b> be called at the same time as
> - * intf_DestroyAll().
> + * This function is used during initialization. It inserts an item to the
> + * beginning of the playlist. That is meant to compensate for the reverse
> + * parsing order of the command line.
>   */
>  int intf_InsertItem(libvlc_int_t *libvlc, const char *mrl, unsigned optc,
>                      const char *const *optv, unsigned flags)
>  {
> -    playlist_t *playlist = intf_GetPlaylist(libvlc);
>      input_item_t *item = input_item_New(mrl, NULL);
>  
>      if (unlikely(item == NULL))
> @@ -175,11 +172,10 @@ int intf_InsertItem(libvlc_int_t *libvlc, const 
> char *mrl, unsigned optc,
>  
>      if (input_item_AddOptions(item, optc, optv, flags) == VLC_SUCCESS)
>      {
> -        playlist_Lock(playlist);
> -        if (playlist_NodeAddInput(playlist, item, playlist->p_playing,
> -                                  0) != NULL)
> -            ret = 0;
> -        playlist_Unlock(playlist);
> +        vlc_playlist_t *playlist = libvlc_priv(libvlc)->main_playlist;
> +        vlc_playlist_Lock(playlist);
> +        ret = vlc_playlist_InsertOne(playlist, 0, item);
> +        vlc_playlist_Unlock(playlist);
>      }
>      input_item_Release(item);
>      return ret;
> @@ -187,14 +183,17 @@ int intf_InsertItem(libvlc_int_t *libvlc, const 
> char *mrl, unsigned optc,
>  
>  void libvlc_InternalPlay(libvlc_int_t *libvlc)
>  {
> -    playlist_t *pl;
> -
> -    vlc_mutex_lock(&lock);
> -    pl = libvlc_priv(libvlc)->playlist;
> -    vlc_mutex_unlock(&lock);
> -
> -    if (pl != NULL && var_GetBool(pl, "playlist-autostart"))
> -        playlist_Control(pl, PLAYLIST_PLAY, false);
> +    if (!var_InheritBool(VLC_OBJECT(libvlc), "playlist-autostart"))
> +        return;
> +    vlc_playlist_t *playlist = libvlc_priv(libvlc)->main_playlist;
> +    vlc_playlist_Lock(playlist);
> +    if (vlc_playlist_Count(playlist) > 0)
> +    {
> +        if (vlc_playlist_GetCurrentIndex(playlist) < 0)
> +            vlc_playlist_GoTo(playlist, 0);
> +        vlc_playlist_Start(playlist);
> +    }
> +    vlc_playlist_Unlock(playlist);
>  }
>  
>  /**
> -- 
> 2.19.2
> 
> _______________________________________________
> 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