[FFmpeg-devel] [PATCH 7/7] tests: add coverage for libavfilter's format negotiation
Nicolas George
george at nsup.org
Tue Aug 2 19:54:21 EEST 2022
Added coverage for the video part of pick_format().
Signed-off-by: Nicolas George <george at nsup.org>
---
Only video for now, I would like to push before working on audio.
Audio is easier because there are fewer formats.
But audio is also harder because I need to test cases where format
incompatibilities detected in two places for different aspects.
Once I have good coverage, I can reorganise the negotiation process
without risking breaking cases that were previously fixed.
Note: the tests are very fast, since they only init the graph and do not
filter anything.
tests/Makefile | 1 +
tests/fate-run.sh | 4 +
tests/fate/libavfilter.mak | 86 +++++++++++++++++++
tests/ref/fate/libavfilter-negotiation-alpha | 20 +++++
...avfilter-negotiation-alpha-over-chroma-rgb | 20 +++++
...avfilter-negotiation-alpha-over-chroma-yuv | 20 +++++
.../libavfilter-negotiation-avoid-subsample | 20 +++++
.../fate/libavfilter-negotiation-chroma-rgb | 20 +++++
.../fate/libavfilter-negotiation-chroma-yuv | 20 +++++
.../libavfilter-negotiation-chroma-yuv420 | 20 +++++
...ibavfilter-negotiation-chroma1-over-depth1 | 20 +++++
...ilter-negotiation-chroma2-over-colorspace8 | 20 +++++
...libavfilter-negotiation-colorspace-rgb-yuv | 20 +++++
...libavfilter-negotiation-colorspace-yuv-rgb | 20 +++++
...vfilter-negotiation-colorspace8-over-alpha | 20 +++++
.../fate/libavfilter-negotiation-depth-rgb | 20 +++++
.../fate/libavfilter-negotiation-depth-yuv | 20 +++++
...libavfilter-negotiation-depth1-over-depth2 | 20 +++++
.../libavfilter-negotiation-depth2-over-alpha | 20 +++++
.../fate/libavfilter-negotiation-palette-rgb | 20 +++++
.../fate/libavfilter-negotiation-palette-yuv | 20 +++++
21 files changed, 451 insertions(+)
create mode 100644 tests/fate/libavfilter.mak
create mode 100644 tests/ref/fate/libavfilter-negotiation-alpha
create mode 100644 tests/ref/fate/libavfilter-negotiation-alpha-over-chroma-rgb
create mode 100644 tests/ref/fate/libavfilter-negotiation-alpha-over-chroma-yuv
create mode 100644 tests/ref/fate/libavfilter-negotiation-avoid-subsample
create mode 100644 tests/ref/fate/libavfilter-negotiation-chroma-rgb
create mode 100644 tests/ref/fate/libavfilter-negotiation-chroma-yuv
create mode 100644 tests/ref/fate/libavfilter-negotiation-chroma-yuv420
create mode 100644 tests/ref/fate/libavfilter-negotiation-chroma1-over-depth1
create mode 100644 tests/ref/fate/libavfilter-negotiation-chroma2-over-colorspace8
create mode 100644 tests/ref/fate/libavfilter-negotiation-colorspace-rgb-yuv
create mode 100644 tests/ref/fate/libavfilter-negotiation-colorspace-yuv-rgb
create mode 100644 tests/ref/fate/libavfilter-negotiation-colorspace8-over-alpha
create mode 100644 tests/ref/fate/libavfilter-negotiation-depth-rgb
create mode 100644 tests/ref/fate/libavfilter-negotiation-depth-yuv
create mode 100644 tests/ref/fate/libavfilter-negotiation-depth1-over-depth2
create mode 100644 tests/ref/fate/libavfilter-negotiation-depth2-over-alpha
create mode 100644 tests/ref/fate/libavfilter-negotiation-palette-rgb
create mode 100644 tests/ref/fate/libavfilter-negotiation-palette-yuv
diff --git a/tests/Makefile b/tests/Makefile
index d9c509a415..c4e01a26e9 100644
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -202,6 +202,7 @@ include $(SRC_PATH)/tests/fate/imf.mak
include $(SRC_PATH)/tests/fate/indeo.mak
include $(SRC_PATH)/tests/fate/libavcodec.mak
include $(SRC_PATH)/tests/fate/libavdevice.mak
+include $(SRC_PATH)/tests/fate/libavfilter.mak
include $(SRC_PATH)/tests/fate/libavformat.mak
include $(SRC_PATH)/tests/fate/libavutil.mak
include $(SRC_PATH)/tests/fate/libswresample.mak
diff --git a/tests/fate-run.sh b/tests/fate-run.sh
index 4008bcbc16..53dcbb563b 100755
--- a/tests/fate-run.sh
+++ b/tests/fate-run.sh
@@ -571,6 +571,10 @@ venc_data(){
run tools/venc_data_dump${EXECSUF} ${file} ${stream} ${frames} ${threads} ${thread_type}
}
+lavfi_dump(){
+ run ffmpeg${PROGSUF}${EXECSUF} -lavfi_dump -lavfi "$@" -f null -
+}
+
null(){
:
}
diff --git a/tests/fate/libavfilter.mak b/tests/fate/libavfilter.mak
new file mode 100644
index 0000000000..b7d3786942
--- /dev/null
+++ b/tests/fate/libavfilter.mak
@@ -0,0 +1,86 @@
+NEGO_PIXFMT = lavfi_dump testsrc2=d=0,format=$(1),scale,format=$(2)
+
+# avfiltergraph.c : pick_format() → pixdesc.c : get_pix_fmt_score() : losing alpha
+FATE_LIBAVFILTER_NEGOTIATION_VIDEO += fate-libavfilter-negotiation-alpha
+fate-libavfilter-negotiation-alpha: CMD = $(call NEGO_PIXFMT,rgba,yuv444p/yuva444p)
+
+# avfiltergraph.c : pick_format() → pixdesc.c : get_pix_fmt_score() : subsampling
+FATE_LIBAVFILTER_NEGOTIATION_VIDEO += fate-libavfilter-negotiation-avoid-subsample
+fate-libavfilter-negotiation-avoid-subsample: CMD = $(call NEGO_PIXFMT,yuv444p,yuv420p10le/yuva444p10le)
+
+# avfiltergraph.c : pick_format() → pixdesc.c : get_pix_fmt_score() : losing depth (yuv)
+FATE_LIBAVFILTER_NEGOTIATION_VIDEO += fate-libavfilter-negotiation-depth-yuv
+fate-libavfilter-negotiation-depth-yuv: CMD = $(call NEGO_PIXFMT,yuv444p10le,yuv444p9le/yuva444p12le)
+
+# avfiltergraph.c : pick_format() → pixdesc.c : get_pix_fmt_score() : losing depth (rgb)
+FATE_LIBAVFILTER_NEGOTIATION_VIDEO += fate-libavfilter-negotiation-depth-rgb
+fate-libavfilter-negotiation-depth-rgb: CMD = $(call NEGO_PIXFMT,rgb24,rgb555le/rgb48le)
+
+# avfiltergraph.c : pick_format() → pixdesc.c : get_pix_fmt_score() : changing colorspace (yuv → rgb)
+FATE_LIBAVFILTER_NEGOTIATION_VIDEO += fate-libavfilter-negotiation-colorspace-yuv-rgb
+fate-libavfilter-negotiation-colorspace-yuv-rgb: CMD = $(call NEGO_PIXFMT,yuv444p,rgb24/yuv444p9)
+
+# avfiltergraph.c : pick_format() → pixdesc.c : get_pix_fmt_score() : changing colorspace (rgb → yuv)
+FATE_LIBAVFILTER_NEGOTIATION_VIDEO += fate-libavfilter-negotiation-colorspace-rgb-yuv
+fate-libavfilter-negotiation-colorspace-rgb-yuv: CMD = $(call NEGO_PIXFMT,rgb24,yuv444p/rgb0)
+
+# avfiltergraph.c : pick_format() → pixdesc.c : get_pix_fmt_score() : losing chroma (yuv)
+FATE_LIBAVFILTER_NEGOTIATION_VIDEO += fate-libavfilter-negotiation-chroma-yuv
+fate-libavfilter-negotiation-chroma-yuv: CMD = $(call NEGO_PIXFMT,yuv444p,gray8/rgb24)
+
+# avfiltergraph.c : pick_format() → pixdesc.c : get_pix_fmt_score() : losing chroma (rgb)
+FATE_LIBAVFILTER_NEGOTIATION_VIDEO += fate-libavfilter-negotiation-chroma-rgb
+fate-libavfilter-negotiation-chroma-rgb: CMD = $(call NEGO_PIXFMT,rgb24,gray8/yuv444p)
+
+# avfiltergraph.c : pick_format() → pixdesc.c : get_pix_fmt_score() : avoid palette (yuv)
+# FIXME yuv → pal8 always loses depth
+FATE_LIBAVFILTER_NEGOTIATION_VIDEO += fate-libavfilter-negotiation-palette-yuv
+fate-libavfilter-negotiation-palette-yuv: CMD = $(call NEGO_PIXFMT,yuv444p,pal8/rgb24)
+
+# avfiltergraph.c : pick_format() → pixdesc.c : get_pix_fmt_score() : avoid palette (rgb)
+# FIXME rgb → pal8 always loses depth
+FATE_LIBAVFILTER_NEGOTIATION_VIDEO += fate-libavfilter-negotiation-palette-rgb
+fate-libavfilter-negotiation-palette-rgb: CMD = $(call NEGO_PIXFMT,rgb24,pal8/yuv444p)
+
+# avfiltergraph.c : pick_format() → pixdesc.c : get_pix_fmt_score() : yuv420 exception
+FATE_LIBAVFILTER_NEGOTIATION_VIDEO += fate-libavfilter-negotiation-chroma-yuv420
+fate-libavfilter-negotiation-chroma-yuv420: CMD = $(call NEGO_PIXFMT,yuv444p,yuv422p/yuv420p)
+
+# avfiltergraph.c : pick_format() → pixdesc.c : get_pix_fmt_score() : chroma subsampling -1 > depth -1
+FATE_LIBAVFILTER_NEGOTIATION_VIDEO += fate-libavfilter-negotiation-chroma1-over-depth1
+fate-libavfilter-negotiation-chroma1-over-depth1: CMD = $(call NEGO_PIXFMT,yuv444p10le,yuv444p9le/yuv440p10le)
+
+# FIXME depth -1 > chroma subsampling -2 → impossible to test without triggering the exception for 420
+
+# avfiltergraph.c : pick_format() → pixdesc.c : get_pix_fmt_score() : depth -1 > depth -2
+FATE_LIBAVFILTER_NEGOTIATION_VIDEO += fate-libavfilter-negotiation-depth1-over-depth2
+fate-libavfilter-negotiation-depth1-over-depth2: CMD = $(call NEGO_PIXFMT,yuv444p10le,yuv444p/yuv444p9le)
+
+# FIXME chroma subsampling -2 > depth -2 → impossible to test without triggering the exception for 420
+
+# avfiltergraph.c : pick_format() → pixdesc.c : get_pix_fmt_score() : chroma subsampling -2 > colorspace 8
+FATE_LIBAVFILTER_NEGOTIATION_VIDEO += fate-libavfilter-negotiation-chroma2-over-colorspace8
+fate-libavfilter-negotiation-chroma2-over-colorspace8: CMD = $(call NEGO_PIXFMT,yuv444p,rgb24/yuv411p)
+
+# avfiltergraph.c : pick_format() → pixdesc.c : get_pix_fmt_score() : depth -2 > lose alpha
+FATE_LIBAVFILTER_NEGOTIATION_VIDEO += fate-libavfilter-negotiation-depth2-over-alpha
+fate-libavfilter-negotiation-depth2-over-alpha: CMD = $(call NEGO_PIXFMT,yuva444p10le,yuv444p10le/yuva444p)
+
+# avfiltergraph.c : pick_format() → pixdesc.c : get_pix_fmt_score() : colorspace 8 > lose alpha
+FATE_LIBAVFILTER_NEGOTIATION_VIDEO += fate-libavfilter-negotiation-colorspace8-over-alpha
+fate-libavfilter-negotiation-colorspace8-over-alpha: CMD = $(call NEGO_PIXFMT,yuva444p,yuv444p/rgba)
+
+# avfiltergraph.c : pick_format() → pixdesc.c : get_pix_fmt_score() : lose alpha > lose chroma
+FATE_LIBAVFILTER_NEGOTIATION_VIDEO += fate-libavfilter-negotiation-alpha-over-chroma-yuv
+fate-libavfilter-negotiation-alpha-over-chroma-yuv: CMD = $(call NEGO_PIXFMT,yuva444p,gray8a/yuv444p)
+
+# avfiltergraph.c : pick_format() → pixdesc.c : get_pix_fmt_score() : lose alpha > lose chroma
+FATE_LIBAVFILTER_NEGOTIATION_VIDEO += fate-libavfilter-negotiation-alpha-over-chroma-rgb
+fate-libavfilter-negotiation-alpha-over-chroma-rgb: CMD = $(call NEGO_PIXFMT,rgba,gray8a/rgb24)
+
+FATE_LIBAVFILTER_NEGOTIATION-$(call ALLYES, TESTSRC2_FILTER FORMAT_FILTER SCALE_FILTER) += $(FATE_LIBAVFILTER_NEGOTIATION_VIDEO)
+FATE_LIBAVFILTER-yes += $(FATE_LIBAVFILTER_NEGOTIATION-yes)
+
+fate-libavfilter: $(FATE_LIBAVFILTER-yes)
+fate-libavfilter-negotiation: $(FATE_LIBAVFILTER_NEGOTIATION-yes)
+FATE_FFMPEG += $(FATE_LIBAVFILTER-yes)
diff --git a/tests/ref/fate/libavfilter-negotiation-alpha b/tests/ref/fate/libavfilter-negotiation-alpha
new file mode 100644
index 0000000000..00175f65cb
--- /dev/null
+++ b/tests/ref/fate/libavfilter-negotiation-alpha
@@ -0,0 +1,20 @@
+Dump of complex filter graph #0:
+
+Filter: Parsed_testsrc2_0 (testsrc2)
+ out 0: default → Parsed_format_1.0:default [320x240 1:1 rgba]
+
+Filter: Parsed_format_1 (format)
+ in 0: default ← Parsed_testsrc2_0.0:default [320x240 1:1 rgba]
+ out 0: default → Parsed_scale_2.0:default [320x240 1:1 rgba]
+
+Filter: Parsed_scale_2 (scale)
+ in 0: default ← Parsed_format_1.0:default [320x240 1:1 rgba]
+ out 0: default → Parsed_format_3.0:default [320x240 1:1 yuva444p]
+
+Filter: Parsed_format_3 (format)
+ in 0: default ← Parsed_scale_2.0:default [320x240 1:1 yuva444p]
+ out 0: default → out_0_0.0:default [320x240 1:1 yuva444p]
+
+Filter: out_0_0 (buffersink)
+ in 0: default ← Parsed_format_3.0:default [320x240 1:1 yuva444p]
+
diff --git a/tests/ref/fate/libavfilter-negotiation-alpha-over-chroma-rgb b/tests/ref/fate/libavfilter-negotiation-alpha-over-chroma-rgb
new file mode 100644
index 0000000000..38d4670ac4
--- /dev/null
+++ b/tests/ref/fate/libavfilter-negotiation-alpha-over-chroma-rgb
@@ -0,0 +1,20 @@
+Dump of complex filter graph #0:
+
+Filter: Parsed_testsrc2_0 (testsrc2)
+ out 0: default → Parsed_format_1.0:default [320x240 1:1 rgba]
+
+Filter: Parsed_format_1 (format)
+ in 0: default ← Parsed_testsrc2_0.0:default [320x240 1:1 rgba]
+ out 0: default → Parsed_scale_2.0:default [320x240 1:1 rgba]
+
+Filter: Parsed_scale_2 (scale)
+ in 0: default ← Parsed_format_1.0:default [320x240 1:1 rgba]
+ out 0: default → Parsed_format_3.0:default [320x240 1:1 rgb24]
+
+Filter: Parsed_format_3 (format)
+ in 0: default ← Parsed_scale_2.0:default [320x240 1:1 rgb24]
+ out 0: default → out_0_0.0:default [320x240 1:1 rgb24]
+
+Filter: out_0_0 (buffersink)
+ in 0: default ← Parsed_format_3.0:default [320x240 1:1 rgb24]
+
diff --git a/tests/ref/fate/libavfilter-negotiation-alpha-over-chroma-yuv b/tests/ref/fate/libavfilter-negotiation-alpha-over-chroma-yuv
new file mode 100644
index 0000000000..fecb493f88
--- /dev/null
+++ b/tests/ref/fate/libavfilter-negotiation-alpha-over-chroma-yuv
@@ -0,0 +1,20 @@
+Dump of complex filter graph #0:
+
+Filter: Parsed_testsrc2_0 (testsrc2)
+ out 0: default → Parsed_format_1.0:default [320x240 1:1 yuva444p]
+
+Filter: Parsed_format_1 (format)
+ in 0: default ← Parsed_testsrc2_0.0:default [320x240 1:1 yuva444p]
+ out 0: default → Parsed_scale_2.0:default [320x240 1:1 yuva444p]
+
+Filter: Parsed_scale_2 (scale)
+ in 0: default ← Parsed_format_1.0:default [320x240 1:1 yuva444p]
+ out 0: default → Parsed_format_3.0:default [320x240 1:1 yuv444p]
+
+Filter: Parsed_format_3 (format)
+ in 0: default ← Parsed_scale_2.0:default [320x240 1:1 yuv444p]
+ out 0: default → out_0_0.0:default [320x240 1:1 yuv444p]
+
+Filter: out_0_0 (buffersink)
+ in 0: default ← Parsed_format_3.0:default [320x240 1:1 yuv444p]
+
diff --git a/tests/ref/fate/libavfilter-negotiation-avoid-subsample b/tests/ref/fate/libavfilter-negotiation-avoid-subsample
new file mode 100644
index 0000000000..eafb6f04b2
--- /dev/null
+++ b/tests/ref/fate/libavfilter-negotiation-avoid-subsample
@@ -0,0 +1,20 @@
+Dump of complex filter graph #0:
+
+Filter: Parsed_testsrc2_0 (testsrc2)
+ out 0: default → Parsed_format_1.0:default [320x240 1:1 yuv444p]
+
+Filter: Parsed_format_1 (format)
+ in 0: default ← Parsed_testsrc2_0.0:default [320x240 1:1 yuv444p]
+ out 0: default → Parsed_scale_2.0:default [320x240 1:1 yuv444p]
+
+Filter: Parsed_scale_2 (scale)
+ in 0: default ← Parsed_format_1.0:default [320x240 1:1 yuv444p]
+ out 0: default → Parsed_format_3.0:default [320x240 1:1 yuva444p10le]
+
+Filter: Parsed_format_3 (format)
+ in 0: default ← Parsed_scale_2.0:default [320x240 1:1 yuva444p10le]
+ out 0: default → out_0_0.0:default [320x240 1:1 yuva444p10le]
+
+Filter: out_0_0 (buffersink)
+ in 0: default ← Parsed_format_3.0:default [320x240 1:1 yuva444p10le]
+
diff --git a/tests/ref/fate/libavfilter-negotiation-chroma-rgb b/tests/ref/fate/libavfilter-negotiation-chroma-rgb
new file mode 100644
index 0000000000..f317cc85cd
--- /dev/null
+++ b/tests/ref/fate/libavfilter-negotiation-chroma-rgb
@@ -0,0 +1,20 @@
+Dump of complex filter graph #0:
+
+Filter: Parsed_testsrc2_0 (testsrc2)
+ out 0: default → Parsed_format_1.0:default [320x240 1:1 rgb24]
+
+Filter: Parsed_format_1 (format)
+ in 0: default ← Parsed_testsrc2_0.0:default [320x240 1:1 rgb24]
+ out 0: default → Parsed_scale_2.0:default [320x240 1:1 rgb24]
+
+Filter: Parsed_scale_2 (scale)
+ in 0: default ← Parsed_format_1.0:default [320x240 1:1 rgb24]
+ out 0: default → Parsed_format_3.0:default [320x240 1:1 yuv444p]
+
+Filter: Parsed_format_3 (format)
+ in 0: default ← Parsed_scale_2.0:default [320x240 1:1 yuv444p]
+ out 0: default → out_0_0.0:default [320x240 1:1 yuv444p]
+
+Filter: out_0_0 (buffersink)
+ in 0: default ← Parsed_format_3.0:default [320x240 1:1 yuv444p]
+
diff --git a/tests/ref/fate/libavfilter-negotiation-chroma-yuv b/tests/ref/fate/libavfilter-negotiation-chroma-yuv
new file mode 100644
index 0000000000..ff3e54aa84
--- /dev/null
+++ b/tests/ref/fate/libavfilter-negotiation-chroma-yuv
@@ -0,0 +1,20 @@
+Dump of complex filter graph #0:
+
+Filter: Parsed_testsrc2_0 (testsrc2)
+ out 0: default → Parsed_format_1.0:default [320x240 1:1 yuv444p]
+
+Filter: Parsed_format_1 (format)
+ in 0: default ← Parsed_testsrc2_0.0:default [320x240 1:1 yuv444p]
+ out 0: default → Parsed_scale_2.0:default [320x240 1:1 yuv444p]
+
+Filter: Parsed_scale_2 (scale)
+ in 0: default ← Parsed_format_1.0:default [320x240 1:1 yuv444p]
+ out 0: default → Parsed_format_3.0:default [320x240 1:1 rgb24]
+
+Filter: Parsed_format_3 (format)
+ in 0: default ← Parsed_scale_2.0:default [320x240 1:1 rgb24]
+ out 0: default → out_0_0.0:default [320x240 1:1 rgb24]
+
+Filter: out_0_0 (buffersink)
+ in 0: default ← Parsed_format_3.0:default [320x240 1:1 rgb24]
+
diff --git a/tests/ref/fate/libavfilter-negotiation-chroma-yuv420 b/tests/ref/fate/libavfilter-negotiation-chroma-yuv420
new file mode 100644
index 0000000000..f93f15d1b1
--- /dev/null
+++ b/tests/ref/fate/libavfilter-negotiation-chroma-yuv420
@@ -0,0 +1,20 @@
+Dump of complex filter graph #0:
+
+Filter: Parsed_testsrc2_0 (testsrc2)
+ out 0: default → Parsed_format_1.0:default [320x240 1:1 yuv444p]
+
+Filter: Parsed_format_1 (format)
+ in 0: default ← Parsed_testsrc2_0.0:default [320x240 1:1 yuv444p]
+ out 0: default → Parsed_scale_2.0:default [320x240 1:1 yuv444p]
+
+Filter: Parsed_scale_2 (scale)
+ in 0: default ← Parsed_format_1.0:default [320x240 1:1 yuv444p]
+ out 0: default → Parsed_format_3.0:default [320x240 1:1 yuv420p]
+
+Filter: Parsed_format_3 (format)
+ in 0: default ← Parsed_scale_2.0:default [320x240 1:1 yuv420p]
+ out 0: default → out_0_0.0:default [320x240 1:1 yuv420p]
+
+Filter: out_0_0 (buffersink)
+ in 0: default ← Parsed_format_3.0:default [320x240 1:1 yuv420p]
+
diff --git a/tests/ref/fate/libavfilter-negotiation-chroma1-over-depth1 b/tests/ref/fate/libavfilter-negotiation-chroma1-over-depth1
new file mode 100644
index 0000000000..01e3e0df56
--- /dev/null
+++ b/tests/ref/fate/libavfilter-negotiation-chroma1-over-depth1
@@ -0,0 +1,20 @@
+Dump of complex filter graph #0:
+
+Filter: Parsed_testsrc2_0 (testsrc2)
+ out 0: default → Parsed_format_1.0:default [320x240 1:1 yuv444p10le]
+
+Filter: Parsed_format_1 (format)
+ in 0: default ← Parsed_testsrc2_0.0:default [320x240 1:1 yuv444p10le]
+ out 0: default → Parsed_scale_2.0:default [320x240 1:1 yuv444p10le]
+
+Filter: Parsed_scale_2 (scale)
+ in 0: default ← Parsed_format_1.0:default [320x240 1:1 yuv444p10le]
+ out 0: default → Parsed_format_3.0:default [320x240 1:1 yuv440p10le]
+
+Filter: Parsed_format_3 (format)
+ in 0: default ← Parsed_scale_2.0:default [320x240 1:1 yuv440p10le]
+ out 0: default → out_0_0.0:default [320x240 1:1 yuv440p10le]
+
+Filter: out_0_0 (buffersink)
+ in 0: default ← Parsed_format_3.0:default [320x240 1:1 yuv440p10le]
+
diff --git a/tests/ref/fate/libavfilter-negotiation-chroma2-over-colorspace8 b/tests/ref/fate/libavfilter-negotiation-chroma2-over-colorspace8
new file mode 100644
index 0000000000..9c78d1cf94
--- /dev/null
+++ b/tests/ref/fate/libavfilter-negotiation-chroma2-over-colorspace8
@@ -0,0 +1,20 @@
+Dump of complex filter graph #0:
+
+Filter: Parsed_testsrc2_0 (testsrc2)
+ out 0: default → Parsed_format_1.0:default [320x240 1:1 yuv444p]
+
+Filter: Parsed_format_1 (format)
+ in 0: default ← Parsed_testsrc2_0.0:default [320x240 1:1 yuv444p]
+ out 0: default → Parsed_scale_2.0:default [320x240 1:1 yuv444p]
+
+Filter: Parsed_scale_2 (scale)
+ in 0: default ← Parsed_format_1.0:default [320x240 1:1 yuv444p]
+ out 0: default → Parsed_format_3.0:default [320x240 1:1 yuv411p]
+
+Filter: Parsed_format_3 (format)
+ in 0: default ← Parsed_scale_2.0:default [320x240 1:1 yuv411p]
+ out 0: default → out_0_0.0:default [320x240 1:1 yuv411p]
+
+Filter: out_0_0 (buffersink)
+ in 0: default ← Parsed_format_3.0:default [320x240 1:1 yuv411p]
+
diff --git a/tests/ref/fate/libavfilter-negotiation-colorspace-rgb-yuv b/tests/ref/fate/libavfilter-negotiation-colorspace-rgb-yuv
new file mode 100644
index 0000000000..8e69fb572a
--- /dev/null
+++ b/tests/ref/fate/libavfilter-negotiation-colorspace-rgb-yuv
@@ -0,0 +1,20 @@
+Dump of complex filter graph #0:
+
+Filter: Parsed_testsrc2_0 (testsrc2)
+ out 0: default → Parsed_format_1.0:default [320x240 1:1 rgb24]
+
+Filter: Parsed_format_1 (format)
+ in 0: default ← Parsed_testsrc2_0.0:default [320x240 1:1 rgb24]
+ out 0: default → Parsed_scale_2.0:default [320x240 1:1 rgb24]
+
+Filter: Parsed_scale_2 (scale)
+ in 0: default ← Parsed_format_1.0:default [320x240 1:1 rgb24]
+ out 0: default → Parsed_format_3.0:default [320x240 1:1 rgb0]
+
+Filter: Parsed_format_3 (format)
+ in 0: default ← Parsed_scale_2.0:default [320x240 1:1 rgb0]
+ out 0: default → out_0_0.0:default [320x240 1:1 rgb0]
+
+Filter: out_0_0 (buffersink)
+ in 0: default ← Parsed_format_3.0:default [320x240 1:1 rgb0]
+
diff --git a/tests/ref/fate/libavfilter-negotiation-colorspace-yuv-rgb b/tests/ref/fate/libavfilter-negotiation-colorspace-yuv-rgb
new file mode 100644
index 0000000000..00a4b25599
--- /dev/null
+++ b/tests/ref/fate/libavfilter-negotiation-colorspace-yuv-rgb
@@ -0,0 +1,20 @@
+Dump of complex filter graph #0:
+
+Filter: Parsed_testsrc2_0 (testsrc2)
+ out 0: default → Parsed_format_1.0:default [320x240 1:1 yuv444p]
+
+Filter: Parsed_format_1 (format)
+ in 0: default ← Parsed_testsrc2_0.0:default [320x240 1:1 yuv444p]
+ out 0: default → Parsed_scale_2.0:default [320x240 1:1 yuv444p]
+
+Filter: Parsed_scale_2 (scale)
+ in 0: default ← Parsed_format_1.0:default [320x240 1:1 yuv444p]
+ out 0: default → Parsed_format_3.0:default [320x240 1:1 yuv444p9le]
+
+Filter: Parsed_format_3 (format)
+ in 0: default ← Parsed_scale_2.0:default [320x240 1:1 yuv444p9le]
+ out 0: default → out_0_0.0:default [320x240 1:1 yuv444p9le]
+
+Filter: out_0_0 (buffersink)
+ in 0: default ← Parsed_format_3.0:default [320x240 1:1 yuv444p9le]
+
diff --git a/tests/ref/fate/libavfilter-negotiation-colorspace8-over-alpha b/tests/ref/fate/libavfilter-negotiation-colorspace8-over-alpha
new file mode 100644
index 0000000000..7376f40526
--- /dev/null
+++ b/tests/ref/fate/libavfilter-negotiation-colorspace8-over-alpha
@@ -0,0 +1,20 @@
+Dump of complex filter graph #0:
+
+Filter: Parsed_testsrc2_0 (testsrc2)
+ out 0: default → Parsed_format_1.0:default [320x240 1:1 yuva444p]
+
+Filter: Parsed_format_1 (format)
+ in 0: default ← Parsed_testsrc2_0.0:default [320x240 1:1 yuva444p]
+ out 0: default → Parsed_scale_2.0:default [320x240 1:1 yuva444p]
+
+Filter: Parsed_scale_2 (scale)
+ in 0: default ← Parsed_format_1.0:default [320x240 1:1 yuva444p]
+ out 0: default → Parsed_format_3.0:default [320x240 1:1 rgba]
+
+Filter: Parsed_format_3 (format)
+ in 0: default ← Parsed_scale_2.0:default [320x240 1:1 rgba]
+ out 0: default → out_0_0.0:default [320x240 1:1 rgba]
+
+Filter: out_0_0 (buffersink)
+ in 0: default ← Parsed_format_3.0:default [320x240 1:1 rgba]
+
diff --git a/tests/ref/fate/libavfilter-negotiation-depth-rgb b/tests/ref/fate/libavfilter-negotiation-depth-rgb
new file mode 100644
index 0000000000..aa8c9a3a5c
--- /dev/null
+++ b/tests/ref/fate/libavfilter-negotiation-depth-rgb
@@ -0,0 +1,20 @@
+Dump of complex filter graph #0:
+
+Filter: Parsed_testsrc2_0 (testsrc2)
+ out 0: default → Parsed_format_1.0:default [320x240 1:1 rgb24]
+
+Filter: Parsed_format_1 (format)
+ in 0: default ← Parsed_testsrc2_0.0:default [320x240 1:1 rgb24]
+ out 0: default → Parsed_scale_2.0:default [320x240 1:1 rgb24]
+
+Filter: Parsed_scale_2 (scale)
+ in 0: default ← Parsed_format_1.0:default [320x240 1:1 rgb24]
+ out 0: default → Parsed_format_3.0:default [320x240 1:1 rgb48le]
+
+Filter: Parsed_format_3 (format)
+ in 0: default ← Parsed_scale_2.0:default [320x240 1:1 rgb48le]
+ out 0: default → out_0_0.0:default [320x240 1:1 rgb48le]
+
+Filter: out_0_0 (buffersink)
+ in 0: default ← Parsed_format_3.0:default [320x240 1:1 rgb48le]
+
diff --git a/tests/ref/fate/libavfilter-negotiation-depth-yuv b/tests/ref/fate/libavfilter-negotiation-depth-yuv
new file mode 100644
index 0000000000..b4570fbd22
--- /dev/null
+++ b/tests/ref/fate/libavfilter-negotiation-depth-yuv
@@ -0,0 +1,20 @@
+Dump of complex filter graph #0:
+
+Filter: Parsed_testsrc2_0 (testsrc2)
+ out 0: default → Parsed_format_1.0:default [320x240 1:1 yuv444p10le]
+
+Filter: Parsed_format_1 (format)
+ in 0: default ← Parsed_testsrc2_0.0:default [320x240 1:1 yuv444p10le]
+ out 0: default → Parsed_scale_2.0:default [320x240 1:1 yuv444p10le]
+
+Filter: Parsed_scale_2 (scale)
+ in 0: default ← Parsed_format_1.0:default [320x240 1:1 yuv444p10le]
+ out 0: default → Parsed_format_3.0:default [320x240 1:1 yuva444p12le]
+
+Filter: Parsed_format_3 (format)
+ in 0: default ← Parsed_scale_2.0:default [320x240 1:1 yuva444p12le]
+ out 0: default → out_0_0.0:default [320x240 1:1 yuva444p12le]
+
+Filter: out_0_0 (buffersink)
+ in 0: default ← Parsed_format_3.0:default [320x240 1:1 yuva444p12le]
+
diff --git a/tests/ref/fate/libavfilter-negotiation-depth1-over-depth2 b/tests/ref/fate/libavfilter-negotiation-depth1-over-depth2
new file mode 100644
index 0000000000..dc6aff0817
--- /dev/null
+++ b/tests/ref/fate/libavfilter-negotiation-depth1-over-depth2
@@ -0,0 +1,20 @@
+Dump of complex filter graph #0:
+
+Filter: Parsed_testsrc2_0 (testsrc2)
+ out 0: default → Parsed_format_1.0:default [320x240 1:1 yuv444p10le]
+
+Filter: Parsed_format_1 (format)
+ in 0: default ← Parsed_testsrc2_0.0:default [320x240 1:1 yuv444p10le]
+ out 0: default → Parsed_scale_2.0:default [320x240 1:1 yuv444p10le]
+
+Filter: Parsed_scale_2 (scale)
+ in 0: default ← Parsed_format_1.0:default [320x240 1:1 yuv444p10le]
+ out 0: default → Parsed_format_3.0:default [320x240 1:1 yuv444p9le]
+
+Filter: Parsed_format_3 (format)
+ in 0: default ← Parsed_scale_2.0:default [320x240 1:1 yuv444p9le]
+ out 0: default → out_0_0.0:default [320x240 1:1 yuv444p9le]
+
+Filter: out_0_0 (buffersink)
+ in 0: default ← Parsed_format_3.0:default [320x240 1:1 yuv444p9le]
+
diff --git a/tests/ref/fate/libavfilter-negotiation-depth2-over-alpha b/tests/ref/fate/libavfilter-negotiation-depth2-over-alpha
new file mode 100644
index 0000000000..96867239f8
--- /dev/null
+++ b/tests/ref/fate/libavfilter-negotiation-depth2-over-alpha
@@ -0,0 +1,20 @@
+Dump of complex filter graph #0:
+
+Filter: Parsed_testsrc2_0 (testsrc2)
+ out 0: default → Parsed_format_1.0:default [320x240 1:1 yuva444p10le]
+
+Filter: Parsed_format_1 (format)
+ in 0: default ← Parsed_testsrc2_0.0:default [320x240 1:1 yuva444p10le]
+ out 0: default → Parsed_scale_2.0:default [320x240 1:1 yuva444p10le]
+
+Filter: Parsed_scale_2 (scale)
+ in 0: default ← Parsed_format_1.0:default [320x240 1:1 yuva444p10le]
+ out 0: default → Parsed_format_3.0:default [320x240 1:1 yuva444p]
+
+Filter: Parsed_format_3 (format)
+ in 0: default ← Parsed_scale_2.0:default [320x240 1:1 yuva444p]
+ out 0: default → out_0_0.0:default [320x240 1:1 yuva444p]
+
+Filter: out_0_0 (buffersink)
+ in 0: default ← Parsed_format_3.0:default [320x240 1:1 yuva444p]
+
diff --git a/tests/ref/fate/libavfilter-negotiation-palette-rgb b/tests/ref/fate/libavfilter-negotiation-palette-rgb
new file mode 100644
index 0000000000..f317cc85cd
--- /dev/null
+++ b/tests/ref/fate/libavfilter-negotiation-palette-rgb
@@ -0,0 +1,20 @@
+Dump of complex filter graph #0:
+
+Filter: Parsed_testsrc2_0 (testsrc2)
+ out 0: default → Parsed_format_1.0:default [320x240 1:1 rgb24]
+
+Filter: Parsed_format_1 (format)
+ in 0: default ← Parsed_testsrc2_0.0:default [320x240 1:1 rgb24]
+ out 0: default → Parsed_scale_2.0:default [320x240 1:1 rgb24]
+
+Filter: Parsed_scale_2 (scale)
+ in 0: default ← Parsed_format_1.0:default [320x240 1:1 rgb24]
+ out 0: default → Parsed_format_3.0:default [320x240 1:1 yuv444p]
+
+Filter: Parsed_format_3 (format)
+ in 0: default ← Parsed_scale_2.0:default [320x240 1:1 yuv444p]
+ out 0: default → out_0_0.0:default [320x240 1:1 yuv444p]
+
+Filter: out_0_0 (buffersink)
+ in 0: default ← Parsed_format_3.0:default [320x240 1:1 yuv444p]
+
diff --git a/tests/ref/fate/libavfilter-negotiation-palette-yuv b/tests/ref/fate/libavfilter-negotiation-palette-yuv
new file mode 100644
index 0000000000..ff3e54aa84
--- /dev/null
+++ b/tests/ref/fate/libavfilter-negotiation-palette-yuv
@@ -0,0 +1,20 @@
+Dump of complex filter graph #0:
+
+Filter: Parsed_testsrc2_0 (testsrc2)
+ out 0: default → Parsed_format_1.0:default [320x240 1:1 yuv444p]
+
+Filter: Parsed_format_1 (format)
+ in 0: default ← Parsed_testsrc2_0.0:default [320x240 1:1 yuv444p]
+ out 0: default → Parsed_scale_2.0:default [320x240 1:1 yuv444p]
+
+Filter: Parsed_scale_2 (scale)
+ in 0: default ← Parsed_format_1.0:default [320x240 1:1 yuv444p]
+ out 0: default → Parsed_format_3.0:default [320x240 1:1 rgb24]
+
+Filter: Parsed_format_3 (format)
+ in 0: default ← Parsed_scale_2.0:default [320x240 1:1 rgb24]
+ out 0: default → out_0_0.0:default [320x240 1:1 rgb24]
+
+Filter: out_0_0 (buffersink)
+ in 0: default ← Parsed_format_3.0:default [320x240 1:1 rgb24]
+
--
2.35.1
More information about the ffmpeg-devel
mailing list