[vlc-devel] [PATCH] input: don't wait data to create sout input

Thomas Guillem thomas at gllm.fr
Tue Jan 30 08:49:12 CET 2018



On Mon, Jan 29, 2018, at 23:02, Francois Cartegnie wrote:
> No sout mux buffer parameters is sufficient
> as spu can arrive really late.
> ---
>  src/input/decoder.c | 20 ++++++++++++++++++--
>  1 file changed, 18 insertions(+), 2 deletions(-)
> 
> diff --git a/src/input/decoder.c b/src/input/decoder.c
> index 0d3df97934..6a9a4fcb06 100644
> --- a/src/input/decoder.c
> +++ b/src/input/decoder.c
> @@ -1953,8 +1953,24 @@ decoder_t *input_DecoderNew( input_thread_t *p_input,
>                               es_format_t *fmt, input_clock_t *p_clock,
>                               sout_instance_t *p_sout  )
>  {
> -    return decoder_New( VLC_OBJECT(p_input), p_input, fmt, p_clock,
> -                        input_priv(p_input)->p_resource, p_sout );
> +    decoder_t *p_dec = decoder_New( VLC_OBJECT(p_input), p_input, fmt, p_clock,
> +                                    input_priv(p_input)->p_resource, p_sout );
> +#ifdef ENABLE_SOUT
> +    /* Do not delay sout creation for SPU or DATA. */
> +    if( p_dec && p_sout && fmt->b_packetized &&
> +        (fmt->i_cat != VIDEO_ES && fmt->i_cat != AUDIO_ES) )
> +    {
> +        decoder_owner_sys_t *p_owner = p_dec->p_owner;
> +        p_owner->p_sout_input = sout_InputNew( p_owner->p_sout, fmt );
> +        if( p_owner->p_sout_input == NULL )
> +        {
> +            msg_Err( p_dec, "cannot create sout input (%4.4s)",
> +                     (char *)&fmt->i_codec );
> +            p_owner->error = true;
> +        }
> +    }
> +#endif
> +    return p_dec;

The p_sout_input is not locked but it should be read and write from the DecoderThread.


>  }
>  
>  /**
> -- 
> 2.14.3
> 
> _______________________________________________
> 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