[FFmpeg-devel,v2] avformat/tee: Add FATE tests for tee

Submitted by sebechlebskyjan@gmail.com on Oct. 30, 2016, 6:32 p.m.

Details

Message ID 1477852325-3638-1-git-send-email-sebechlebskyjan@gmail.com
State New
Headers show

Commit Message

sebechlebskyjan@gmail.com Oct. 30, 2016, 6:32 p.m.
From: Jan Sebechlebsky <sebechlebskyjan@gmail.com>

This commit also adds new diff option for fate tests allowing do compare
multiple tuples of files.

Signed-off-by: Jan Sebechlebsky <sebechlebskyjan@gmail.com>
---
 Changes since the last version:
 - fixed out of tree build (previous version refered to SRC_PATH instead of TARGET_PATH,
   thanks to Michael for noticing that)

 tests/Makefile                        |  1 +
 tests/fate-run.sh                     |  7 ++++
 tests/fate/tee-muxer.mak              | 22 ++++++++++
 tests/ref/fate/tee-muxer-h264         |  2 +
 tests/ref/fate/tee-muxer-h264-audio   | 30 +++++++++++++
 tests/ref/fate/tee-muxer-h264-copy    | 47 +++++++++++++++++++++
 tests/ref/fate/tee-muxer-ignorefail   | 79 +++++++++++++++++++++++++++++++++++
 tests/ref/fate/tee-muxer-tstsrc       |  2 +
 tests/ref/fate/tee-muxer-tstsrc-audio | 49 ++++++++++++++++++++++
 9 files changed, 239 insertions(+)
 create mode 100644 tests/fate/tee-muxer.mak
 create mode 100644 tests/ref/fate/tee-muxer-h264
 create mode 100644 tests/ref/fate/tee-muxer-h264-audio
 create mode 100644 tests/ref/fate/tee-muxer-h264-copy
 create mode 100644 tests/ref/fate/tee-muxer-ignorefail
 create mode 100644 tests/ref/fate/tee-muxer-tstsrc
 create mode 100644 tests/ref/fate/tee-muxer-tstsrc-audio

Patch hide | download patch | download mbox

diff --git a/tests/Makefile b/tests/Makefile
index 8e810ff..e23260f 100644
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -164,6 +164,7 @@  include $(SRC_PATH)/tests/fate/real.mak
 include $(SRC_PATH)/tests/fate/screen.mak
 include $(SRC_PATH)/tests/fate/source.mak
 include $(SRC_PATH)/tests/fate/subtitles.mak
+include $(SRC_PATH)/tests/fate/tee-muxer.mak
 include $(SRC_PATH)/tests/fate/utvideo.mak
 include $(SRC_PATH)/tests/fate/video.mak
 include $(SRC_PATH)/tests/fate/voice.mak
diff --git a/tests/fate-run.sh b/tests/fate-run.sh
index c640cc5..9c90ea5 100755
--- a/tests/fate-run.sh
+++ b/tests/fate-run.sh
@@ -73,6 +73,12 @@  oneline(){
     printf '%s\n' "$1" | diff -u -b - "$2"
 }
 
+multidiff(){
+    while read -r ref_file out_file; do
+        diff -u -b "${base}/ref/fate/${ref_file}" "${outdir}/${out_file}" || return $?
+    done <"$1"
+}
+
 run(){
     test "${V:-0}" -gt 0 && echo "$target_exec" $target_path/"$@" >&3
     $target_exec $target_path/"$@"
@@ -350,6 +356,7 @@  if test -e "$ref" || test $cmp = "oneline" || test $cmp = "grep" ; then
     case $cmp in
         diff)   diff -u -b "$ref" "$outfile"            >$cmpfile ;;
         rawdiff)diff -u    "$ref" "$outfile"            >$cmpfile ;;
+        mdiff)  multidiff  "$ref"                       >$cmpfile ;;
         oneoff) oneoff     "$ref" "$outfile"            >$cmpfile ;;
         stddev) stddev     "$ref" "$outfile"            >$cmpfile ;;
         oneline)oneline    "$ref" "$outfile"            >$cmpfile ;;
diff --git a/tests/fate/tee-muxer.mak b/tests/fate/tee-muxer.mak
new file mode 100644
index 0000000..a76cb18
--- /dev/null
+++ b/tests/fate/tee-muxer.mak
@@ -0,0 +1,22 @@ 
+fate-tee-muxer-h264: CMD = ffmpeg -i $(TARGET_SAMPLES)/mkv/1242-small.mkv -vframes 11\
+                           -c:v copy -c:a copy -map v:0 -map a:0 -flags +bitexact\
+                           -fflags +bitexact -fflags +bitexact -f tee\
+			   "[f=framecrc]$(TARGET_PATH)/tests/data/fate/tee-muxer-h264-copy|[f=framecrc:select=1]$(TARGET_PATH)/tests/data/fate/tee-muxer-h264-audio"
+fate-tee-muxer-h264: CMP = mdiff
+FATE-SAMPLES-TEE-MUXER-$(call ALLYES, TEE_MUXER, MATROSKA_DEMUXER, H264_DECODER) += fate-tee-muxer-h264
+
+fate-tee-muxer-ignorefail: CMD = ./ffmpeg  -f lavfi -i "testsrc=s=640x480" -f lavfi -i "sine"\
+			         -t 1 -map 0:v -map 1:a -c:v copy -c:a copy -flags +bitexact -fflags +bitexact -f tee\
+				 "[f=framecrc]$(TARGET_PATH)/tests/data/fate/tee-muxer-ignorefail|[f=framecrc:onfail=ignore]$(TARGET_PATH)/dev/full"
+FATE-TEE-MUXER-$(CONFIG_TEE_MUXER) += fate-tee-muxer-ignorefail
+
+fate-tee-muxer-tstsrc: CMD = ./ffmpeg  -f lavfi -i "testsrc=s=640x480" -f lavfi -i "sine"\
+                             -t 1 -map 0:v -map 1:a -c:v copy -c:a copy -flags +bitexact -fflags +bitexact -f tee\
+			     "[f=framecrc]$(TARGET_PATH)/tests/data/fate/tee-muxer-tstsrc-copy|[f=framecrc:select=1]$(TARGET_PATH)/tests/data/fate/tee-muxer-tstsrc-audio"
+fate-tee-muxer-tstsrc: CMP = mdiff
+FATE-TEE-MUXER-$(CONFIG_TEE_MUXER) += fate-tee-muxer-tstsrc
+
+FATE_SAMPLES_FFMPEG += $(FATE-SAMPLES-TEE-MUXER-yes)
+FATE_FFMPEG += $(FATE-TEE-MUXER-yes)
+
+fate-tee-muxer: $(FATE-TEE-MUXER-yes) $(FATE-SAMPLES-TEE-MUXER-yes)
diff --git a/tests/ref/fate/tee-muxer-h264 b/tests/ref/fate/tee-muxer-h264
new file mode 100644
index 0000000..2a99a6b
--- /dev/null
+++ b/tests/ref/fate/tee-muxer-h264
@@ -0,0 +1,2 @@ 
+tee-muxer-h264-copy  tee-muxer-h264-copy
+tee-muxer-h264-audio tee-muxer-h264-audio
\ No newline at end of file
diff --git a/tests/ref/fate/tee-muxer-h264-audio b/tests/ref/fate/tee-muxer-h264-audio
new file mode 100644
index 0000000..0b42d11
--- /dev/null
+++ b/tests/ref/fate/tee-muxer-h264-audio
@@ -0,0 +1,30 @@ 
+#extradata 0:        2, 0x00b200a1
+#tb 0: 1/1000
+#media_type 0: audio
+#codec_id 0: aac
+#sample_rate 0: 48000
+#channel_layout 0: 3
+0,         42,         42,       21,        6, 0x027e00e8
+0,         63,         63,       21,        6, 0x027e00e8
+0,         84,         84,       21,        6, 0x027e00e8
+0,        105,        105,       21,        6, 0x027e00e8
+0,        127,        127,       21,        6, 0x027e00e8
+0,        148,        148,       21,       24, 0x886f0c1f
+0,        169,        169,       21,      550, 0xf863059c
+0,        190,        190,       22,      596, 0x32d414c1
+0,        213,        213,       21,      247, 0x2d0776c9
+0,        234,        234,       21,      264, 0xf04a7b44
+0,        255,        255,       21,      251, 0xc7628539
+0,        276,        276,       22,      243, 0x99ef768b
+0,        298,        298,       21,      257, 0x233f7ccc
+0,        319,        319,       21,      264, 0x7d9f7bd9
+0,        340,        340,       21,      298, 0x51478f98
+0,        361,        361,       22,      323, 0x419d9938
+0,        383,        383,       21,      309, 0x6219980c
+0,        404,        404,       21,      325, 0x3fb3976f
+0,        425,        425,       21,      325, 0xcd7a9fd6
+0,        446,        446,       22,      359, 0x6edeb91c
+0,        468,        468,       21,      333, 0xb8999fb7
+0,        489,        489,       21,      317, 0xf2589e1a
+0,        510,        510,       21,      319, 0x82ed9572
+0,        531,        531,       22,      473, 0xea54e696
diff --git a/tests/ref/fate/tee-muxer-h264-copy b/tests/ref/fate/tee-muxer-h264-copy
new file mode 100644
index 0000000..0e356ec
--- /dev/null
+++ b/tests/ref/fate/tee-muxer-h264-copy
@@ -0,0 +1,47 @@ 
+#extradata 0:       93, 0xc2a32e14
+#extradata 1:        2, 0x00b200a1
+#tb 0: 1/1000
+#media_type 0: video
+#codec_id 0: h264
+#dimensions 0: 1280x718
+#sar 0: 1/1
+#tb 1: 1/1000
+#media_type 1: audio
+#codec_id 1: aac
+#sample_rate 1: 48000
+#channel_layout 1: 3
+0,          0,         42,       41,     2969, 0xa7016742
+0,         42,         84,       41,      135, 0x33af1a9e, F=0x0
+1,         42,         42,       21,        6, 0x027e00e8
+1,         63,         63,       21,        6, 0x027e00e8
+0,         84,        125,       41,     9196, 0x24d8439f
+1,         84,         84,       21,        6, 0x027e00e8
+1,        105,        105,       21,        6, 0x027e00e8
+0,        125,        167,       41,     4926, 0xd7e2e492, F=0x0
+1,        127,        127,       21,        6, 0x027e00e8
+1,        148,        148,       21,       24, 0x886f0c1f
+0,        167,        209,       41,    11069, 0x44839c66
+1,        169,        169,       21,      550, 0xf863059c
+1,        190,        190,       22,      596, 0x32d414c1
+0,        209,        292,       41,     6143, 0xc25343dd, F=0x0
+1,        213,        213,       21,      247, 0x2d0776c9
+1,        234,        234,       21,      264, 0xf04a7b44
+0,        251,        251,       41,     4197, 0x3b9f74ad, F=0x0
+1,        255,        255,       21,      251, 0xc7628539
+1,        276,        276,       22,      243, 0x99ef768b
+0,        292,        376,       41,    17595, 0x1e502128, F=0x0
+1,        298,        298,       21,      257, 0x233f7ccc
+1,        319,        319,       21,      264, 0x7d9f7bd9
+0,        334,        334,       41,      741, 0xe6b94afc, F=0x0
+1,        340,        340,       21,      298, 0x51478f98
+1,        361,        361,       22,      323, 0x419d9938
+0,        376,        459,       41,    16138, 0xba72f2fe, F=0x0
+1,        383,        383,       21,      309, 0x6219980c
+1,        404,        404,       21,      325, 0x3fb3976f
+0,        417,        417,       41,      322, 0xd6bf790f, F=0x0
+1,        425,        425,       21,      325, 0xcd7a9fd6
+1,        446,        446,       22,      359, 0x6edeb91c
+1,        468,        468,       21,      333, 0xb8999fb7
+1,        489,        489,       21,      317, 0xf2589e1a
+1,        510,        510,       21,      319, 0x82ed9572
+1,        531,        531,       22,      473, 0xea54e696
diff --git a/tests/ref/fate/tee-muxer-ignorefail b/tests/ref/fate/tee-muxer-ignorefail
new file mode 100644
index 0000000..2c57803
--- /dev/null
+++ b/tests/ref/fate/tee-muxer-ignorefail
@@ -0,0 +1,79 @@ 
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 640x480
+#sar 0: 1/1
+#tb 1: 1/44100
+#media_type 1: audio
+#codec_id 1: pcm_s16le
+#sample_rate 1: 44100
+#channel_layout 1: 4
+0,          0,          0,        1,   921600, 0xbac50a6a
+1,          0,          0,     1024,     2048, 0x1ee8f45a
+1,       1024,       1024,     1024,     2048, 0x273ef6ee
+0,          1,          1,        1,   921600, 0x9518a5c6
+1,       2048,       2048,     1024,     2048, 0x0a5f0111
+1,       3072,       3072,     1024,     2048, 0x51be06b8
+0,          2,          2,        1,   921600, 0x6d772b45
+1,       4096,       4096,     1024,     2048, 0x71a1ffcb
+1,       5120,       5120,     1024,     2048, 0x7f64f50f
+0,          3,          3,        1,   921600, 0xd0a99ac9
+1,       6144,       6144,     1024,     2048, 0x70a8fa17
+0,          4,          4,        1,   921600, 0xef2bf424
+1,       7168,       7168,     1024,     2048, 0x0dad072a
+1,       8192,       8192,     1024,     2048, 0x5e810c51
+0,          5,          5,        1,   921600, 0x575c3d5a
+1,       9216,       9216,     1024,     2048, 0xbe5bf462
+1,      10240,      10240,     1024,     2048, 0xbcd9faeb
+0,          6,          6,        1,   921600, 0xa123687b
+1,      11264,      11264,     1024,     2048, 0x0d5bfe9c
+1,      12288,      12288,     1024,     2048, 0x97d80297
+0,          7,          7,        1,   921600, 0x30667ded
+1,      13312,      13312,     1024,     2048, 0xba0f0894
+0,          8,          8,        1,   921600, 0x9c507cf9
+1,      14336,      14336,     1024,     2048, 0xcc22f291
+1,      15360,      15360,     1024,     2048, 0x11a9fa03
+0,          9,          9,        1,   921600, 0x5a8762c3
+1,      16384,      16384,     1024,     2048, 0x9a920378
+1,      17408,      17408,     1024,     2048, 0x901b0525
+0,         10,         10,        1,   921600, 0x5f89340f
+1,      18432,      18432,     1024,     2048, 0x74b2003f
+0,         11,         11,        1,   921600, 0x1f27eee6
+1,      19456,      19456,     1024,     2048, 0xa20ef3ed
+1,      20480,      20480,     1024,     2048, 0x44cef9de
+0,         12,         12,        1,   921600, 0x2bcd941d
+1,      21504,      21504,     1024,     2048, 0x4b2e039b
+1,      22528,      22528,     1024,     2048, 0x198509a1
+0,         13,         13,        1,   921600, 0x2ff6168a
+1,      23552,      23552,     1024,     2048, 0xcab6f9e5
+1,      24576,      24576,     1024,     2048, 0x67f8f608
+0,         14,         14,        1,   921600, 0x46ac8d78
+1,      25600,      25600,     1024,     2048, 0x8d7f03fa
+0,         15,         15,        1,   921600, 0x7d31eef4
+1,      26624,      26624,     1024,     2048, 0x3e1e0566
+1,      27648,      27648,     1024,     2048, 0x2cfe0308
+0,         16,         16,        1,   921600, 0x30794ac7
+1,      28672,      28672,     1024,     2048, 0x1ceaf702
+1,      29696,      29696,     1024,     2048, 0x38a9f3d1
+0,         17,         17,        1,   921600, 0xaa819657
+1,      30720,      30720,     1024,     2048, 0x6c3306b7
+1,      31744,      31744,     1024,     2048, 0x600f0579
+0,         18,         18,        1,   921600, 0x3d8ef1de
+1,      32768,      32768,     1024,     2048, 0x3e5afa28
+0,         19,         19,        1,   921600, 0xd6f94db1
+1,      33792,      33792,     1024,     2048, 0x053ff47a
+1,      34816,      34816,     1024,     2048, 0x0d28fed9
+0,         20,         20,        1,   921600, 0x8a9da938
+1,      35840,      35840,     1024,     2048, 0x279805cc
+1,      36864,      36864,     1024,     2048, 0xb16a0a12
+0,         21,         21,        1,   921600, 0xb74df48b
+1,      37888,      37888,     1024,     2048, 0xb45af340
+0,         22,         22,        1,   921600, 0xb3fc509b
+1,      38912,      38912,     1024,     2048, 0x1834f972
+1,      39936,      39936,     1024,     2048, 0xb5d206ae
+0,         23,         23,        1,   921600, 0xecc1ac22
+1,      40960,      40960,     1024,     2048, 0xc5760375
+1,      41984,      41984,     1024,     2048, 0x503800ce
+0,         24,         24,        1,   921600, 0x3e6207f5
+1,      43008,      43008,     1024,     2048, 0xa3bbf4af
+1,      44032,      44032,     1024,     2048, 0x9012f9d2
diff --git a/tests/ref/fate/tee-muxer-tstsrc b/tests/ref/fate/tee-muxer-tstsrc
new file mode 100644
index 0000000..c1d44a3
--- /dev/null
+++ b/tests/ref/fate/tee-muxer-tstsrc
@@ -0,0 +1,2 @@ 
+tee-muxer-ignorefail   tee-muxer-tstsrc-copy
+tee-muxer-tstsrc-audio tee-muxer-tstsrc-audio
diff --git a/tests/ref/fate/tee-muxer-tstsrc-audio b/tests/ref/fate/tee-muxer-tstsrc-audio
new file mode 100644
index 0000000..720952d
--- /dev/null
+++ b/tests/ref/fate/tee-muxer-tstsrc-audio
@@ -0,0 +1,49 @@ 
+#tb 0: 1/44100
+#media_type 0: audio
+#codec_id 0: pcm_s16le
+#sample_rate 0: 44100
+#channel_layout 0: 4
+0,          0,          0,     1024,     2048, 0x1ee8f45a
+0,       1024,       1024,     1024,     2048, 0x273ef6ee
+0,       2048,       2048,     1024,     2048, 0x0a5f0111
+0,       3072,       3072,     1024,     2048, 0x51be06b8
+0,       4096,       4096,     1024,     2048, 0x71a1ffcb
+0,       5120,       5120,     1024,     2048, 0x7f64f50f
+0,       6144,       6144,     1024,     2048, 0x70a8fa17
+0,       7168,       7168,     1024,     2048, 0x0dad072a
+0,       8192,       8192,     1024,     2048, 0x5e810c51
+0,       9216,       9216,     1024,     2048, 0xbe5bf462
+0,      10240,      10240,     1024,     2048, 0xbcd9faeb
+0,      11264,      11264,     1024,     2048, 0x0d5bfe9c
+0,      12288,      12288,     1024,     2048, 0x97d80297
+0,      13312,      13312,     1024,     2048, 0xba0f0894
+0,      14336,      14336,     1024,     2048, 0xcc22f291
+0,      15360,      15360,     1024,     2048, 0x11a9fa03
+0,      16384,      16384,     1024,     2048, 0x9a920378
+0,      17408,      17408,     1024,     2048, 0x901b0525
+0,      18432,      18432,     1024,     2048, 0x74b2003f
+0,      19456,      19456,     1024,     2048, 0xa20ef3ed
+0,      20480,      20480,     1024,     2048, 0x44cef9de
+0,      21504,      21504,     1024,     2048, 0x4b2e039b
+0,      22528,      22528,     1024,     2048, 0x198509a1
+0,      23552,      23552,     1024,     2048, 0xcab6f9e5
+0,      24576,      24576,     1024,     2048, 0x67f8f608
+0,      25600,      25600,     1024,     2048, 0x8d7f03fa
+0,      26624,      26624,     1024,     2048, 0x3e1e0566
+0,      27648,      27648,     1024,     2048, 0x2cfe0308
+0,      28672,      28672,     1024,     2048, 0x1ceaf702
+0,      29696,      29696,     1024,     2048, 0x38a9f3d1
+0,      30720,      30720,     1024,     2048, 0x6c3306b7
+0,      31744,      31744,     1024,     2048, 0x600f0579
+0,      32768,      32768,     1024,     2048, 0x3e5afa28
+0,      33792,      33792,     1024,     2048, 0x053ff47a
+0,      34816,      34816,     1024,     2048, 0x0d28fed9
+0,      35840,      35840,     1024,     2048, 0x279805cc
+0,      36864,      36864,     1024,     2048, 0xb16a0a12
+0,      37888,      37888,     1024,     2048, 0xb45af340
+0,      38912,      38912,     1024,     2048, 0x1834f972
+0,      39936,      39936,     1024,     2048, 0xb5d206ae
+0,      40960,      40960,     1024,     2048, 0xc5760375
+0,      41984,      41984,     1024,     2048, 0x503800ce
+0,      43008,      43008,     1024,     2048, 0xa3bbf4af
+0,      44032,      44032,     1024,     2048, 0x9012f9d2