[vlc-devel] [PATCH] input: export decode fifo size to options

Tzu-Jung Lee roylee17 at gmail.com
Sun Jul 28 09:27:10 CEST 2013


Err, I was trying to sent the patch '--in-reply-to' the following thread.

    [vlc-devel] [PATCH] decoder: Increase fifo size up to 250 Mb/s

So here I point back to the thread for reference.

Roy

On Sun, Jul 28, 2013 at 3:23 PM, Tzu-Jung Lee <roylee17 at gmail.com> wrote:
> Signed-off-by: Tzu-Jung Lee <tjlee at ambarella.com>
> ---
>
> I'm wondering does this patch help?
> (help message can be revised during merged, if it's going to be.)
>
>  src/input/decoder.c |  9 ++++-----
>  src/libvlc-module.c | 15 ++++++++++++++-
>  2 files changed, 18 insertions(+), 6 deletions(-)
>
> diff --git a/src/input/decoder.c b/src/input/decoder.c
> index b1b038c..f9a583c 100644
> --- a/src/input/decoder.c
> +++ b/src/input/decoder.c
> @@ -290,6 +290,9 @@ static decoder_t *decoder_New( vlc_object_t *p_parent, input_thread_t *p_input,
>      p_dec->p_owner->p_clock = p_clock;
>      assert( p_dec->fmt_out.i_cat != UNKNOWN_ES );
>
> +    p_dec->p_owner->i_fifo_size = var_InheritInteger( p_dec, "decoder-fifo" );
> +
> +    msg_Dbg( p_dec, "decoder-fifo: 0x%x bytes", p_dec->p_owner->i_fifo_size );
>      if( p_dec->fmt_out.i_cat == AUDIO_ES )
>          i_priority = VLC_THREAD_PRIORITY_AUDIO;
>      else
> @@ -393,11 +396,7 @@ void input_DecoderDecode( decoder_t *p_dec, block_t *p_block, bool b_do_pace )
>          if( !p_owner->b_buffering )
>              block_FifoPace( p_owner->p_fifo, 10, SIZE_MAX );
>      }
> -#ifdef __arm__
> -    else if( block_FifoSize( p_owner->p_fifo ) > 50*1024*1024 /* 50 MiB */ )
> -#else
> -    else if( block_FifoSize( p_owner->p_fifo ) > 400*1024*1024 /* 400 MiB, ie ~ 50mb/s for 60s */ )
> -#endif
> +    else if( block_FifoSize( p_owner->p_fifo ) > p_owner->i_fifo_size)
>      {
>          /* FIXME: ideally we would check the time amount of data
>           * in the FIFO instead of its size. */
> diff --git a/src/libvlc-module.c b/src/libvlc-module.c
> index 94faf8e..a29df0c 100644
> --- a/src/libvlc-module.c
> +++ b/src/libvlc-module.c
> @@ -634,6 +634,11 @@ static const char *const ppsz_prefres[] = {
>  #define RUN_TIME_LONGTEXT N_( \
>      "The stream will run this duration (in seconds)." )
>
> +#define DECODER_FIFO_TEXT N_("Decode fifo size (in bytes)")
> +#define DECODER_FIFO_LONGTEXT N_( \
> +    "This changes the fifo size of decoder, which is default to 50 MB " \
> +    "for ARM, and 400 MB for other platforms" )
> +
>  #define INPUT_FAST_SEEK_TEXT N_("Fast seek")
>  #define INPUT_FAST_SEEK_LONGTEXT N_( \
>      "Favor speed over precision while seeking" )
> @@ -1715,9 +1720,17 @@ vlc_module_begin ()
>      add_bool( "input-fast-seek", false,
>                INPUT_FAST_SEEK_TEXT, INPUT_FAST_SEEK_LONGTEXT, false )
>          change_safe ()
> +#ifdef __arm__
> +    /* 50 MiB */
> +    add_integer( "decoder-fifo", 50, DECODER_FIFO_TEXT,
> +                 DECODER_FIFO_LONGTEXT, false )
> +#else
> +    /* 400 MiB, ie ~ 50mb/s for 60s */ )
> +    add_integer( "decoder-fifo", 400, DECODER_FIFO_TEXT,
> +                 DECODER_FIFO_LONGTEXT, false )
> +#endif
>      add_float( "rate", 1.,
>                 INPUT_RATE_TEXT, INPUT_RATE_LONGTEXT, false )
> -
>      add_string( "input-list", NULL,
>                   INPUT_LIST_TEXT, INPUT_LIST_LONGTEXT, true )
>      add_string( "input-slave", NULL,
> --
> 1.8.3.2
>



More information about the vlc-devel mailing list