[vlc-devel] [PATCH 1/9] core: force the output to b_packetized when a packetizer is opened successfully

Rémi Denis-Courmont remi at remlab.net
Wed Jul 12 17:26:59 CEST 2017


On mercredi 12 juillet 2017 16:54:04 EEST Steve Lhomme wrote:
> ---
>  src/input/decoder.c | 7 +++++--
>  src/input/demux.c   | 2 ++
>  2 files changed, 7 insertions(+), 2 deletions(-)
> 
> diff --git a/src/input/decoder.c b/src/input/decoder.c
> index b292658b38..5a976bf111 100644
> --- a/src/input/decoder.c
> +++ b/src/input/decoder.c
> @@ -187,8 +187,9 @@ static int LoadDecoder( decoder_t *p_dec, bool
> b_packetizer, es_format_Clean( &p_dec->fmt_in );
>          return -1;
>      }
> -    else
> -        return 0;
> +    if (b_packetizer)
> +        p_dec->fmt_out.b_packetized = true;
> +    return 0;
>  }
> 
>  /**
> @@ -1916,6 +1917,8 @@ static decoder_t *decoder_New( vlc_object_t *p_parent,
> input_thread_t *p_input, return NULL;
>      }
> 
> +    if ( p_sout != NULL )
> +        p_dec->fmt_out.b_packetized = true;
>      p_dec->p_owner->p_clock = p_clock;
>      assert( p_dec->fmt_out.i_cat != UNKNOWN_ES );
> 
> diff --git a/src/input/demux.c b/src/input/demux.c
> index 109a386775..f1c6657799 100644
> --- a/src/input/demux.c
> +++ b/src/input/demux.c
> @@ -530,6 +530,8 @@ decoder_t *demux_PacketizerNew( demux_t *p_demux,
> es_format_t *p_fmt, const char return NULL;
>      }
> 
> +    p_packetizer->fmt_out.b_packetized = true;
> +
>      return p_packetizer;
>  }

Modifying the output format after the module is loaded violates the memory 
model (if the plugin is threaded or asynchronous). I don't know if we care for 
packetizers, but that seems like a bad idea/practice.

-- 
Rémi Denis-Courmont


More information about the vlc-devel mailing list