[FFmpeg-devel] FATE coverage for format negotiation

Nicolas George george at nsup.org
Mon Aug 23 00:42:18 EEST 2021


Hi.

Apparently, we have almost coverage for cases where the format
negotiation in libavfilter is not straightforward.

Disabling swap_samplerates() and swap_channel_layouts() (in
libavfilter/avfiltergraph.c) does not cause any test to fail.

(Disabling swap_sample_fmts() is expected to change nothing because it
is completely overridden by the logic in pick_format().)

Setting ref=NULL in the video branch of pick_format() causes the
following tests to fail:

fate-filter-alphaextract_alphamerge_yuv
fate-filter-histogram-levels
fate-filter-vectorscope_color
fate-filter-vectorscope_color2
fate-filter-vectorscope_color3
fate-filter-vectorscope_color4
fate-filter-vectorscope_gray
fate-filter-vectorscope_xy

In the audio branch:

fate-filter-adelay
fate-filter-channelmap-one-int
fate-filter-channelmap-one-str
fate-filter-channelsplit
fate-filter-hls-append
fate-filter-hls
fate-filter-join

So that makes a little coverage, but not really intentional.

I will be adding a way to observe the negotiation to implement tests.

If somebody wants to help libavfilter move forward, and in particular
open the way for subtitles filters, finding simple graphs where swap_*()
and the logic in pick_format() makes a difference would be a very useful
task.

See the long documentation for AVFilterNegotiation in
libavfilter/formats.h for explanations of what these functions do. In
short, when there are several possible formats on the output of a
filter but the input is already determined, they chose the one that is
most similar.

Regards,

-- 
  Nicolas George
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20210822/df0ec4c1/attachment.sig>


More information about the ffmpeg-devel mailing list