[FFmpeg-devel] [PATCH] FATE: Add test for libavfilter/scale2ref

Kevin Mark kmark937 at gmail.com
Sun Jun 4 10:53:31 EEST 2017


This new FATE test for the scale2ref filter makes use of the recently
added scale2ref-specific variables to maintain the aspect ratio of a
test input.

Filtergraph explanation:
[main] has an AR of 4:3. [ref] has an AR of 16:9.
640 / 4 = 160. So the new width for [main] is 160.
160 / ((320 / 240) * (1 / 1)) = 160 / (4 / 3) = 120. So the new
height for [main] is 120.
160 / 120 = 4 / 3 so [main]'s aspect ratio has been maintained while
using [ref]'s width as a reference point.

[ref] is nullsink'd since it is left unchanged by scale2ref (and so
shouldn't need to be tested).

If we were to use "iw/4:-1" in place of "iw/4:ow/mdar":
640 / 4 = 160. So the new width for [main] would be 160.
360 / 4 = 90. So the new height for [main] would be 90.
160 / 90 = 16 / 9 so [main] now has the same aspect ratio as [ref]
which is probably what you do not want.

This is currently the only test for scale2ref.

Signed-off-by: Kevin Mark <kmark937 at gmail.com>
---
 tests/fate/filter-video.mak                 |  4 ++++
 tests/filtergraphs/scale2ref_keep_aspect    |  5 +++++
 tests/ref/fate/filter-scale2ref_keep_aspect | 14 ++++++++++++++
 3 files changed, 23 insertions(+)
 create mode 100644 tests/filtergraphs/scale2ref_keep_aspect
 create mode 100644 tests/ref/fate/filter-scale2ref_keep_aspect

diff --git a/tests/fate/filter-video.mak b/tests/fate/filter-video.mak
index 1ca29e8d32..53fc7a6528 100644
--- a/tests/fate/filter-video.mak
+++ b/tests/fate/filter-video.mak
@@ -413,6 +413,10 @@ fate-filter-scale200: CMD = video_filter "scale=w=200:h=200"
 FATE_FILTER_VSYNTH-$(CONFIG_SCALE_FILTER) += fate-filter-scale500
 fate-filter-scale500: CMD = video_filter "scale=w=500:h=500"
 
+FATE_FILTER_VSYNTH-$(CONFIG_SCALE2REF_FILTER) += fate-filter-scale2ref_keep_aspect
+fate-filter-scale2ref_keep_aspect: tests/data/filtergraphs/scale2ref_keep_aspect
+fate-filter-scale2ref_keep_aspect: CMD = framemd5 -frames:v 5 -filter_complex_script $(TARGET_PATH)/tests/data/filtergraphs/scale2ref_keep_aspect -map "[main]"
+
 FATE_FILTER_VSYNTH-$(CONFIG_SCALE_FILTER) += fate-filter-scalechroma
 fate-filter-scalechroma: tests/data/vsynth1.yuv
 fate-filter-scalechroma: CMD = framecrc -flags bitexact -s 352x288 -pix_fmt yuv444p -i tests/data/vsynth1.yuv -pix_fmt yuv420p -sws_flags +bitexact -vf scale=out_v_chr_pos=33:out_h_chr_pos=151
diff --git a/tests/filtergraphs/scale2ref_keep_aspect b/tests/filtergraphs/scale2ref_keep_aspect
new file mode 100644
index 0000000000..f407460ec7
--- /dev/null
+++ b/tests/filtergraphs/scale2ref_keep_aspect
@@ -0,0 +1,5 @@
+sws_flags=+accurate_rnd+bitexact;
+testsrc=size=320x240 [main];
+testsrc=size=640x360 [ref];
+[main][ref] scale2ref=iw/4:ow/mdar [main][ref];
+[ref] nullsink
diff --git a/tests/ref/fate/filter-scale2ref_keep_aspect b/tests/ref/fate/filter-scale2ref_keep_aspect
new file mode 100644
index 0000000000..ca03277446
--- /dev/null
+++ b/tests/ref/fate/filter-scale2ref_keep_aspect
@@ -0,0 +1,14 @@
+#format: frame checksums
+#version: 2
+#hash: MD5
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 160x120
+#sar 0: 4/3
+#stream#, dts,        pts, duration,     size, hash
+0,          0,          0,        1,    57600, 9a19c23dc3a557786840d0098606d5f1
+0,          1,          1,        1,    57600, e6fbdabaf1bb0d28afc648ed4d27e9f0
+0,          2,          2,        1,    57600, 52924ed0a751214c50fb2e7a626c8cc5
+0,          3,          3,        1,    57600, 67d5fd6ee71793f1cf8794d1c27afdce
+0,          4,          4,        1,    57600, 85f7775f7b01afd369fc8919dc759d30
-- 
2.13.0



More information about the ffmpeg-devel mailing list