aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin Mark <kmark937@gmail.com>2017-06-04 03:53:31 -0400
committerMichael Niedermayer <michael@niedermayer.cc>2017-06-05 01:50:25 +0200
commit4af496473a0684b798d5712d8c96357e9b036b43 (patch)
tree52f8c00e6a08beab55254e0387329ea766c1934d
parent46b865ea9f86cbd12e1bf701913263c7932cccb0 (diff)
downloadffmpeg-4af496473a0684b798d5712d8c96357e9b036b43.tar.gz
FATE: Add test for libavfilter/scale2ref
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@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
-rw-r--r--tests/fate/filter-video.mak4
-rw-r--r--tests/filtergraphs/scale2ref_keep_aspect5
-rw-r--r--tests/ref/fate/filter-scale2ref_keep_aspect14
3 files changed, 23 insertions, 0 deletions
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