[vlc-devel] [RFC PATCH 1/3] options: add stream-cache

Thomas Guillem thomas at gllm.fr
Wed Oct 21 15:38:19 CEST 2015



On Tue, Oct 20, 2015, at 21:43, Rémi Denis-Courmont wrote:
> On Tuesday 20 October 2015 20:27:05 Thomas Guillem wrote:
> > Maybe, we could use stream-filter option instead ?
> > ---
> >  src/input/access.c  | 10 ++++++++++
> >  src/input/var.c     |  1 +
> >  src/libvlc-module.c |  6 ++++++
> >  3 files changed, 17 insertions(+)
> > 
> > diff --git a/src/input/access.c b/src/input/access.c
> > index 18b8357..a6f5cd6 100644
> > --- a/src/input/access.c
> > +++ b/src/input/access.c
> > @@ -380,6 +380,15 @@ stream_t *stream_AccessNew(vlc_object_t *parent,
> > input_thread_t *input, cachename = NULL;
> >      }
> > 
> > +    char *cache_option = var_GetNonEmptyString(parent, "stream-cache");
> 
> I am not sure if/why this is needed, but in any case, I suspect this does
> not 
> work properly with(in) stream_UrlNew().

This is needed by the input_stream test case but it can also be useful
for users/dev who want to choose between prefetch, cache_read or 0
cache.

I'll send a new patch that works properly.

> 
> > +    if (cache_option != NULL)
> > +    {
> > +        if (strcmp(cache_option, "none") == 0)
> > +            cachename = NULL;
> > +        else
> > +            cachename = cache_option;
> > +    }
> > +
> >      if (sys->access->pf_readdir != NULL)
> >          s->pf_readdir = AStreamReadDir;
> >      else
> > @@ -391,6 +400,7 @@ stream_t *stream_AccessNew(vlc_object_t *parent,
> > input_thread_t *input,
> > 
> >      if (cachename != NULL)
> >          s = stream_FilterChainNew(s, cachename);
> > +    free(cache_option);
> >      return s;
> >  error:
> >      free(sys);
> > diff --git a/src/input/var.c b/src/input/var.c
> > index 47f4b88..a82b16c 100644
> > --- a/src/input/var.c
> > +++ b/src/input/var.c
> > @@ -497,6 +497,7 @@ void input_ConfigVarInit ( input_thread_t *p_input )
> >      var_Create( p_input, "access", VLC_VAR_STRING | VLC_VAR_DOINHERIT );
> >      var_Create( p_input, "demux", VLC_VAR_STRING | VLC_VAR_DOINHERIT );
> >      var_Create( p_input, "stream-filter", VLC_VAR_STRING |
> > VLC_VAR_DOINHERIT ); +    var_Create( p_input, "stream-cache",
> > VLC_VAR_STRING | VLC_VAR_DOINHERIT );
> > 
> >      /* Meta */
> >      var_Create( p_input, "meta-title", VLC_VAR_STRING | VLC_VAR_DOINHERIT
> > ); diff --git a/src/libvlc-module.c b/src/libvlc-module.c
> > index a13093d..0e95ae5 100644
> > --- a/src/libvlc-module.c
> > +++ b/src/libvlc-module.c
> > @@ -988,6 +988,10 @@ static const char *const ppsz_prefres[] = {
> >  #define STREAM_FILTER_LONGTEXT N_( \
> >      "Stream filters are used to modify the stream that is being read. " )
> > 
> > +#define STREAM_CACHE_TEXT N_("Stream cache filter module")
> > +#define STREAM_CACHE_LONGTEXT N_( \
> > +    "Stream cache filters are used to cache the stream that is being read.
> > " ) +
> >  #define DEMUX_TEXT N_("Demux module")
> >  #define DEMUX_LONGTEXT N_( \
> >      "Demultiplexers are used to separate the \"elementary\" streams " \
> > @@ -1871,6 +1875,8 @@ vlc_module_begin ()
> >      set_subcategory( SUBCAT_INPUT_STREAM_FILTER )
> >      add_module_list( "stream-filter", "stream_filter", NULL,
> >                       STREAM_FILTER_TEXT, STREAM_FILTER_LONGTEXT, false )
> > +    add_module_list( "stream-cache", "stream_cache", NULL,
> > +                     STREAM_CACHE_TEXT, STREAM_CACHE_LONGTEXT, false )
> > 
> > 
> >  /* Stream output options */
> 
> -- 
> Rémi Denis-Courmont
> 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