[FFmpeg-devel] [PATCH] lavf/formats: more logical testing of inputs and outputs.

Andreas Rheinhardt andreas.rheinhardt at gmail.com
Sun Aug 23 22:28:57 EEST 2020


Nicolas George:
> ff_set_common_formats() is currently only called after
> graph_check_validity(), guaranteeing that inputs and outputs
> are connected.
> If we want to support configuring partially-connected graphs,
> we will have a lot of redesign to do anyway.
> 
> Fix CID 1466262 / 1466263.
> 
> Signed-off-by: Nicolas George <george at nsup.org>
> ---
>  libavfilter/formats.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/libavfilter/formats.c b/libavfilter/formats.c
> index d2edf832e9..dbf9250cda 100644
> --- a/libavfilter/formats.c
> +++ b/libavfilter/formats.c
> @@ -606,8 +606,8 @@ int ff_set_common_formats(AVFilterContext *ctx, AVFilterFormats *formats)
>  int ff_default_query_formats(AVFilterContext *ctx)
>  {
>      int ret;
> -    enum AVMediaType type = ctx->inputs  && ctx->inputs [0] ? ctx->inputs [0]->type :
> -                            ctx->outputs && ctx->outputs[0] ? ctx->outputs[0]->type :
> +    enum AVMediaType type = ctx->nb_inputs  ? ctx->inputs [0]->type :
> +                            ctx->nb_outputs ? ctx->outputs[0]->type :
>                              AVMEDIA_TYPE_VIDEO;
>  
>      ret = ff_set_common_formats(ctx, ff_all_formats(type));
> 
IIRC lavf = libavformat, lavfi = libavfilter. But I might be wrong.

The change itself is ok; I wondered whether I should send a patch for
this, but I dislike patches designed to make an analyzer happy. But
given that it is possible for ctx->inputs to be different from NULL even
if ctx->nb_inputs is zero (namely if ctx->inputs =
av_malloc_array(ctx->nb_inputs, sizeof...) has been used) the new check
is more correct and not only for Coverity.
Notice that these issues are actually not new: They are the same as
1452428 and 1452429 and 242ba4d74cc95aa78528e4496de7cc63816a877b just
made Coverity detect this as new issues.

- Andreas


More information about the ffmpeg-devel mailing list