aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Thompson <sw@jkqxz.net>2017-08-15 18:14:32 +0100
committerMark Thompson <sw@jkqxz.net>2017-10-17 20:56:30 +0100
commit809b0402dc916b876dfdd6bb9c88f171cf3e77c0 (patch)
treea01784d0d3e7bddd86a86a6df59eb4348ebc1157
parentd8928ad6b6e899c409129c8e16b225c09a8a5abb (diff)
downloadffmpeg-809b0402dc916b876dfdd6bb9c88f171cf3e77c0.tar.gz
cbs: Add some read/write tests
Use the appropriate metadata filter for each codec - in the absence of any options to modify the stream, the output bitstream should be identical to the input (though the output file may differ in padding). All tests use conformance bitstreams, the MPEG-2 streams are newly added from the conformance test streams <http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_IEC_13818-4_2004_Conformance_Testing/Video/> (cherry picked from commit 3cae7f8b9baaf43789490b676d8f5825f2e1bc2c) (cherry picked from commit fbd63170bcbc5cad8965edad7c357f6eb4132250)
-rw-r--r--tests/Makefile1
-rw-r--r--tests/fate/cbs.mak79
-rw-r--r--tests/ref/fate/cbs-h264-AUD_MW_E1
-rw-r--r--tests/ref/fate/cbs-h264-BASQP1_Sony_C1
-rw-r--r--tests/ref/fate/cbs-h264-CABACI3_Sony_B1
-rw-r--r--tests/ref/fate/cbs-h264-CVBS3_Sony_C1
-rw-r--r--tests/ref/fate/cbs-h264-CVFC1_Sony_C1
-rw-r--r--tests/ref/fate/cbs-h264-CVMANL1_TOSHIBA_B1
-rw-r--r--tests/ref/fate/cbs-h264-CVNLFI1_Sony_C1
-rw-r--r--tests/ref/fate/cbs-h264-CVSE2_Sony_B1
-rw-r--r--tests/ref/fate/cbs-h264-CVWP1_TOSHIBA_E1
-rw-r--r--tests/ref/fate/cbs-h264-FM1_BT_B1
-rw-r--r--tests/ref/fate/cbs-h264-MR1_BT_A1
-rw-r--r--tests/ref/fate/cbs-h264-SVA_Base_B1
-rw-r--r--tests/ref/fate/cbs-h264-Sharp_MP_PAFF_1r21
-rw-r--r--tests/ref/fate/cbs-h264-sp1_bt_a1
-rw-r--r--tests/ref/fate/cbs-hevc-CAINIT_E_SHARP_31
-rw-r--r--tests/ref/fate/cbs-hevc-CAINIT_H_SHARP_31
-rw-r--r--tests/ref/fate/cbs-hevc-CONFWIN_A_Sony_11
-rw-r--r--tests/ref/fate/cbs-hevc-HRD_A_Fujitsu_21
-rw-r--r--tests/ref/fate/cbs-hevc-LTRPSPS_A_Qualcomm_11
-rw-r--r--tests/ref/fate/cbs-hevc-NUT_A_ericsson_51
-rw-r--r--tests/ref/fate/cbs-hevc-PICSIZE_A_Bossen_11
-rw-r--r--tests/ref/fate/cbs-hevc-PICSIZE_B_Bossen_11
-rw-r--r--tests/ref/fate/cbs-hevc-RPLM_A_qualcomm_41
-rw-r--r--tests/ref/fate/cbs-hevc-RPS_A_docomo_41
-rw-r--r--tests/ref/fate/cbs-hevc-RPS_E_qualcomm_51
-rw-r--r--tests/ref/fate/cbs-hevc-SLIST_A_Sony_41
-rw-r--r--tests/ref/fate/cbs-hevc-SLIST_D_Sony_91
-rw-r--r--tests/ref/fate/cbs-hevc-STRUCT_A_Samsung_51
-rw-r--r--tests/ref/fate/cbs-hevc-TILES_B_Cisco_11
-rw-r--r--tests/ref/fate/cbs-hevc-WPP_A_ericsson_MAIN_21
-rw-r--r--tests/ref/fate/cbs-hevc-WPP_F_ericsson_MAIN_21
-rw-r--r--tests/ref/fate/cbs-hevc-WP_A_Toshiba_31
-rw-r--r--tests/ref/fate/cbs-hevc-ipcm_E_NEC_21
-rw-r--r--tests/ref/fate/cbs-mpeg2-hhi_burst_422_short1
-rw-r--r--tests/ref/fate/cbs-mpeg2-sony-ct31
-rw-r--r--tests/ref/fate/cbs-mpeg2-tcela-61
38 files changed, 116 insertions, 0 deletions
diff --git a/tests/Makefile b/tests/Makefile
index 656c2c59c5..fd3713fe81 100644
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -115,6 +115,7 @@ include $(SRC_PATH)/tests/fate/audio.mak
include $(SRC_PATH)/tests/fate/bmp.mak
include $(SRC_PATH)/tests/fate/build.mak
include $(SRC_PATH)/tests/fate/canopus.mak
+include $(SRC_PATH)/tests/fate/cbs.mak
include $(SRC_PATH)/tests/fate/cdxl.mak
include $(SRC_PATH)/tests/fate/checkasm.mak
include $(SRC_PATH)/tests/fate/concatdec.mak
diff --git a/tests/fate/cbs.mak b/tests/fate/cbs.mak
new file mode 100644
index 0000000000..fc5967e6f3
--- /dev/null
+++ b/tests/fate/cbs.mak
@@ -0,0 +1,79 @@
+# Read/write tests: this uses the codec metadata filter - with no
+# arguments, it decomposes the stream fully and then recomposes it
+# without making any changes.
+
+fate-cbs: fate-cbs-h264 fate-cbs-hevc fate-cbs-mpeg2
+
+FATE_CBS_DEPS = $(call ALLYES, $(1)_DEMUXER $(1)_PARSER $(2)_METADATA_BSF $(3)_DECODER $(3)_MUXER)
+
+define FATE_CBS_TEST
+# (codec, test_name, sample_file, output_format)
+FATE_CBS_$(1) += fate-cbs-$(1)-$(2)
+fate-cbs-$(1)-$(2): CMD = md5 -i $(TARGET_SAMPLES)/$(3) -c:v copy -bsf:v $(1)_metadata -f $(4)
+endef
+
+# H.264 read/write
+
+FATE_CBS_H264_SAMPLES = \
+ SVA_Base_B.264 \
+ BASQP1_Sony_C.jsv \
+ FM1_BT_B.h264 \
+ CVFC1_Sony_C.jsv \
+ AUD_MW_E.264 \
+ CVBS3_Sony_C.jsv \
+ MR1_BT_A.h264 \
+ CVWP1_TOSHIBA_E.264 \
+ CVNLFI1_Sony_C.jsv \
+ Sharp_MP_PAFF_1r2.jvt \
+ CVMANL1_TOSHIBA_B.264 \
+ sp1_bt_a.h264 \
+ CVSE2_Sony_B.jsv \
+ CABACI3_Sony_B.jsv
+
+$(foreach N,$(FATE_CBS_H264_SAMPLES),$(eval $(call FATE_CBS_TEST,h264,$(basename $(N)),h264-conformance/$(N),h264)))
+
+FATE_CBS_H264-$(call FATE_CBS_DEPS, H264, H264, H264) = $(FATE_CBS_h264)
+FATE_SAMPLES_AVCONV += $(FATE_CBS_H264-yes)
+fate-cbs-h264: $(FATE_CBS_H264-yes)
+
+# H.265 read/write
+
+FATE_CBS_HEVC_SAMPLES = \
+ STRUCT_A_Samsung_5.bit \
+ WP_A_Toshiba_3.bit \
+ SLIST_A_Sony_4.bit \
+ SLIST_D_Sony_9.bit \
+ CAINIT_E_SHARP_3.bit \
+ CAINIT_H_SHARP_3.bit \
+ TILES_B_Cisco_1.bit \
+ WPP_A_ericsson_MAIN_2.bit \
+ WPP_F_ericsson_MAIN_2.bit \
+ ipcm_E_NEC_2.bit \
+ NUT_A_ericsson_5.bit \
+ PICSIZE_A_Bossen_1.bit \
+ PICSIZE_B_Bossen_1.bit \
+ RPS_A_docomo_4.bit \
+ RPS_E_qualcomm_5.bit \
+ LTRPSPS_A_Qualcomm_1.bit \
+ RPLM_A_qualcomm_4.bit \
+ CONFWIN_A_Sony_1.bit \
+ HRD_A_Fujitsu_2.bit
+
+$(foreach N,$(FATE_CBS_HEVC_SAMPLES),$(eval $(call FATE_CBS_TEST,hevc,$(basename $(N)),hevc-conformance/$(N),hevc)))
+
+FATE_CBS_HEVC-$(call FATE_CBS_DEPS, HEVC, HEVC, HEVC) = $(FATE_CBS_hevc)
+FATE_SAMPLES_AVCONV += $(FATE_CBS_HEVC-yes)
+fate-cbs-hevc: $(FATE_CBS_HEVC-yes)
+
+# MPEG-2 read/write
+
+FATE_CBS_MPEG2_SAMPLES = \
+ hhi_burst_422_short.bits \
+ sony-ct3.bs \
+ tcela-6.bits
+
+$(foreach N,$(FATE_CBS_MPEG2_SAMPLES),$(eval $(call FATE_CBS_TEST,mpeg2,$(basename $(N)),mpeg2/$(N),mpeg2video)))
+
+FATE_CBS_MPEG2-$(call FATE_CBS_DEPS, MPEGVIDEO, MPEG2, MPEG2VIDEO) = $(FATE_CBS_mpeg2)
+FATE_SAMPLES_AVCONV += $(FATE_CBS_MPEG2-yes)
+fate-cbs-mpeg2: $(FATE_CBS_MPEG2-yes)
diff --git a/tests/ref/fate/cbs-h264-AUD_MW_E b/tests/ref/fate/cbs-h264-AUD_MW_E
new file mode 100644
index 0000000000..f204792416
--- /dev/null
+++ b/tests/ref/fate/cbs-h264-AUD_MW_E
@@ -0,0 +1 @@
+9b8884667eda0b9853bec631458686ce
diff --git a/tests/ref/fate/cbs-h264-BASQP1_Sony_C b/tests/ref/fate/cbs-h264-BASQP1_Sony_C
new file mode 100644
index 0000000000..c2185c770b
--- /dev/null
+++ b/tests/ref/fate/cbs-h264-BASQP1_Sony_C
@@ -0,0 +1 @@
+00c52ae60bf9a41ae1145fbf5fea9838
diff --git a/tests/ref/fate/cbs-h264-CABACI3_Sony_B b/tests/ref/fate/cbs-h264-CABACI3_Sony_B
new file mode 100644
index 0000000000..59aeb72155
--- /dev/null
+++ b/tests/ref/fate/cbs-h264-CABACI3_Sony_B
@@ -0,0 +1 @@
+2d94c80b858aec880530bad47afe3668
diff --git a/tests/ref/fate/cbs-h264-CVBS3_Sony_C b/tests/ref/fate/cbs-h264-CVBS3_Sony_C
new file mode 100644
index 0000000000..55f5e0b50e
--- /dev/null
+++ b/tests/ref/fate/cbs-h264-CVBS3_Sony_C
@@ -0,0 +1 @@
+59ff1df9b25e80277cad4ad99e634df6
diff --git a/tests/ref/fate/cbs-h264-CVFC1_Sony_C b/tests/ref/fate/cbs-h264-CVFC1_Sony_C
new file mode 100644
index 0000000000..98004cf63c
--- /dev/null
+++ b/tests/ref/fate/cbs-h264-CVFC1_Sony_C
@@ -0,0 +1 @@
+669f4f3d3ae35fa5a6f5c94e48776dcf
diff --git a/tests/ref/fate/cbs-h264-CVMANL1_TOSHIBA_B b/tests/ref/fate/cbs-h264-CVMANL1_TOSHIBA_B
new file mode 100644
index 0000000000..14aa45300d
--- /dev/null
+++ b/tests/ref/fate/cbs-h264-CVMANL1_TOSHIBA_B
@@ -0,0 +1 @@
+0c1d9694df747cc4697caf866bd3051a
diff --git a/tests/ref/fate/cbs-h264-CVNLFI1_Sony_C b/tests/ref/fate/cbs-h264-CVNLFI1_Sony_C
new file mode 100644
index 0000000000..d5f5ad1931
--- /dev/null
+++ b/tests/ref/fate/cbs-h264-CVNLFI1_Sony_C
@@ -0,0 +1 @@
+7817d89bd749bc617a225978958a3af0
diff --git a/tests/ref/fate/cbs-h264-CVSE2_Sony_B b/tests/ref/fate/cbs-h264-CVSE2_Sony_B
new file mode 100644
index 0000000000..7845723edd
--- /dev/null
+++ b/tests/ref/fate/cbs-h264-CVSE2_Sony_B
@@ -0,0 +1 @@
+ca8bdba497bd2f3b97c50d59692eb537
diff --git a/tests/ref/fate/cbs-h264-CVWP1_TOSHIBA_E b/tests/ref/fate/cbs-h264-CVWP1_TOSHIBA_E
new file mode 100644
index 0000000000..4cb9c475fc
--- /dev/null
+++ b/tests/ref/fate/cbs-h264-CVWP1_TOSHIBA_E
@@ -0,0 +1 @@
+01290611165b8d8ccba8468f3dae4c4d
diff --git a/tests/ref/fate/cbs-h264-FM1_BT_B b/tests/ref/fate/cbs-h264-FM1_BT_B
new file mode 100644
index 0000000000..862de950de
--- /dev/null
+++ b/tests/ref/fate/cbs-h264-FM1_BT_B
@@ -0,0 +1 @@
+f7d5474ec576eea3f70d83a26a641a60
diff --git a/tests/ref/fate/cbs-h264-MR1_BT_A b/tests/ref/fate/cbs-h264-MR1_BT_A
new file mode 100644
index 0000000000..0532652e6c
--- /dev/null
+++ b/tests/ref/fate/cbs-h264-MR1_BT_A
@@ -0,0 +1 @@
+699d37e66764ddb3b4265c299ca77dcd
diff --git a/tests/ref/fate/cbs-h264-SVA_Base_B b/tests/ref/fate/cbs-h264-SVA_Base_B
new file mode 100644
index 0000000000..a591b811b1
--- /dev/null
+++ b/tests/ref/fate/cbs-h264-SVA_Base_B
@@ -0,0 +1 @@
+443e55dd5f63dccf9a62acbb48451b08
diff --git a/tests/ref/fate/cbs-h264-Sharp_MP_PAFF_1r2 b/tests/ref/fate/cbs-h264-Sharp_MP_PAFF_1r2
new file mode 100644
index 0000000000..cc7d63931c
--- /dev/null
+++ b/tests/ref/fate/cbs-h264-Sharp_MP_PAFF_1r2
@@ -0,0 +1 @@
+fd01840ed6b086c3118b7c53c86d01f5
diff --git a/tests/ref/fate/cbs-h264-sp1_bt_a b/tests/ref/fate/cbs-h264-sp1_bt_a
new file mode 100644
index 0000000000..388c53aa5e
--- /dev/null
+++ b/tests/ref/fate/cbs-h264-sp1_bt_a
@@ -0,0 +1 @@
+8405c5583d31d7015ed401b34b4ec93c
diff --git a/tests/ref/fate/cbs-hevc-CAINIT_E_SHARP_3 b/tests/ref/fate/cbs-hevc-CAINIT_E_SHARP_3
new file mode 100644
index 0000000000..53af86aaa4
--- /dev/null
+++ b/tests/ref/fate/cbs-hevc-CAINIT_E_SHARP_3
@@ -0,0 +1 @@
+44d1c0b80828af779d942cc20dde4ea4
diff --git a/tests/ref/fate/cbs-hevc-CAINIT_H_SHARP_3 b/tests/ref/fate/cbs-hevc-CAINIT_H_SHARP_3
new file mode 100644
index 0000000000..5e127d7894
--- /dev/null
+++ b/tests/ref/fate/cbs-hevc-CAINIT_H_SHARP_3
@@ -0,0 +1 @@
+ae9311dfcaf65bb8de9c4fcf23ce0871
diff --git a/tests/ref/fate/cbs-hevc-CONFWIN_A_Sony_1 b/tests/ref/fate/cbs-hevc-CONFWIN_A_Sony_1
new file mode 100644
index 0000000000..00445155d0
--- /dev/null
+++ b/tests/ref/fate/cbs-hevc-CONFWIN_A_Sony_1
@@ -0,0 +1 @@
+dce8104b2addbdd601eb280a88e18583
diff --git a/tests/ref/fate/cbs-hevc-HRD_A_Fujitsu_2 b/tests/ref/fate/cbs-hevc-HRD_A_Fujitsu_2
new file mode 100644
index 0000000000..b9c90ae3c3
--- /dev/null
+++ b/tests/ref/fate/cbs-hevc-HRD_A_Fujitsu_2
@@ -0,0 +1 @@
+716a90051f028c90daeb86b3825af36d
diff --git a/tests/ref/fate/cbs-hevc-LTRPSPS_A_Qualcomm_1 b/tests/ref/fate/cbs-hevc-LTRPSPS_A_Qualcomm_1
new file mode 100644
index 0000000000..21dfa5763a
--- /dev/null
+++ b/tests/ref/fate/cbs-hevc-LTRPSPS_A_Qualcomm_1
@@ -0,0 +1 @@
+11b599202a4d25693123bea8bb003e54
diff --git a/tests/ref/fate/cbs-hevc-NUT_A_ericsson_5 b/tests/ref/fate/cbs-hevc-NUT_A_ericsson_5
new file mode 100644
index 0000000000..32e58affe7
--- /dev/null
+++ b/tests/ref/fate/cbs-hevc-NUT_A_ericsson_5
@@ -0,0 +1 @@
+25cf94dfa2e0334eeedbfa9a8ed1c4b2
diff --git a/tests/ref/fate/cbs-hevc-PICSIZE_A_Bossen_1 b/tests/ref/fate/cbs-hevc-PICSIZE_A_Bossen_1
new file mode 100644
index 0000000000..cc18004920
--- /dev/null
+++ b/tests/ref/fate/cbs-hevc-PICSIZE_A_Bossen_1
@@ -0,0 +1 @@
+e87fbd90c297d401738db928e3e04dd4
diff --git a/tests/ref/fate/cbs-hevc-PICSIZE_B_Bossen_1 b/tests/ref/fate/cbs-hevc-PICSIZE_B_Bossen_1
new file mode 100644
index 0000000000..5495cec6c3
--- /dev/null
+++ b/tests/ref/fate/cbs-hevc-PICSIZE_B_Bossen_1
@@ -0,0 +1 @@
+4993d49d6f2f532dfc683a9d26c1e313
diff --git a/tests/ref/fate/cbs-hevc-RPLM_A_qualcomm_4 b/tests/ref/fate/cbs-hevc-RPLM_A_qualcomm_4
new file mode 100644
index 0000000000..c68d615cbf
--- /dev/null
+++ b/tests/ref/fate/cbs-hevc-RPLM_A_qualcomm_4
@@ -0,0 +1 @@
+f5d2633eefcd95e189faf4302d270457
diff --git a/tests/ref/fate/cbs-hevc-RPS_A_docomo_4 b/tests/ref/fate/cbs-hevc-RPS_A_docomo_4
new file mode 100644
index 0000000000..772d16a192
--- /dev/null
+++ b/tests/ref/fate/cbs-hevc-RPS_A_docomo_4
@@ -0,0 +1 @@
+97bd4fefd8cd95584f586027e244f283
diff --git a/tests/ref/fate/cbs-hevc-RPS_E_qualcomm_5 b/tests/ref/fate/cbs-hevc-RPS_E_qualcomm_5
new file mode 100644
index 0000000000..faef7da0d9
--- /dev/null
+++ b/tests/ref/fate/cbs-hevc-RPS_E_qualcomm_5
@@ -0,0 +1 @@
+b2528ef681729176ccb38a77be93a0de
diff --git a/tests/ref/fate/cbs-hevc-SLIST_A_Sony_4 b/tests/ref/fate/cbs-hevc-SLIST_A_Sony_4
new file mode 100644
index 0000000000..23b2e324d1
--- /dev/null
+++ b/tests/ref/fate/cbs-hevc-SLIST_A_Sony_4
@@ -0,0 +1 @@
+72cf53bbc967c9679e21a6d3203edb07
diff --git a/tests/ref/fate/cbs-hevc-SLIST_D_Sony_9 b/tests/ref/fate/cbs-hevc-SLIST_D_Sony_9
new file mode 100644
index 0000000000..4cea86dba6
--- /dev/null
+++ b/tests/ref/fate/cbs-hevc-SLIST_D_Sony_9
@@ -0,0 +1 @@
+59a22d715e30748492da5e0b9d421909
diff --git a/tests/ref/fate/cbs-hevc-STRUCT_A_Samsung_5 b/tests/ref/fate/cbs-hevc-STRUCT_A_Samsung_5
new file mode 100644
index 0000000000..6a4508b0c5
--- /dev/null
+++ b/tests/ref/fate/cbs-hevc-STRUCT_A_Samsung_5
@@ -0,0 +1 @@
+647eb851b935fd3bc6a98ce5ce45dbc7
diff --git a/tests/ref/fate/cbs-hevc-TILES_B_Cisco_1 b/tests/ref/fate/cbs-hevc-TILES_B_Cisco_1
new file mode 100644
index 0000000000..d767e26d68
--- /dev/null
+++ b/tests/ref/fate/cbs-hevc-TILES_B_Cisco_1
@@ -0,0 +1 @@
+85a114def19cefbd0fb0daf8370d711c
diff --git a/tests/ref/fate/cbs-hevc-WPP_A_ericsson_MAIN_2 b/tests/ref/fate/cbs-hevc-WPP_A_ericsson_MAIN_2
new file mode 100644
index 0000000000..fe6928fc8b
--- /dev/null
+++ b/tests/ref/fate/cbs-hevc-WPP_A_ericsson_MAIN_2
@@ -0,0 +1 @@
+de7d440b556eea827953e6d12aeb4023
diff --git a/tests/ref/fate/cbs-hevc-WPP_F_ericsson_MAIN_2 b/tests/ref/fate/cbs-hevc-WPP_F_ericsson_MAIN_2
new file mode 100644
index 0000000000..08aee566f1
--- /dev/null
+++ b/tests/ref/fate/cbs-hevc-WPP_F_ericsson_MAIN_2
@@ -0,0 +1 @@
+f197136f1fb3242c3422a48470dd7d35
diff --git a/tests/ref/fate/cbs-hevc-WP_A_Toshiba_3 b/tests/ref/fate/cbs-hevc-WP_A_Toshiba_3
new file mode 100644
index 0000000000..b868c438f8
--- /dev/null
+++ b/tests/ref/fate/cbs-hevc-WP_A_Toshiba_3
@@ -0,0 +1 @@
+158312a1a35ef4b20cb4aeee48549c03
diff --git a/tests/ref/fate/cbs-hevc-ipcm_E_NEC_2 b/tests/ref/fate/cbs-hevc-ipcm_E_NEC_2
new file mode 100644
index 0000000000..cc68b6fb49
--- /dev/null
+++ b/tests/ref/fate/cbs-hevc-ipcm_E_NEC_2
@@ -0,0 +1 @@
+2e1f9c95364cfac2aa6e6ee3a52c43c4
diff --git a/tests/ref/fate/cbs-mpeg2-hhi_burst_422_short b/tests/ref/fate/cbs-mpeg2-hhi_burst_422_short
new file mode 100644
index 0000000000..c319fba7b3
--- /dev/null
+++ b/tests/ref/fate/cbs-mpeg2-hhi_burst_422_short
@@ -0,0 +1 @@
+e0c2fdd9baeba0c5ba5839a8cd7a72d3
diff --git a/tests/ref/fate/cbs-mpeg2-sony-ct3 b/tests/ref/fate/cbs-mpeg2-sony-ct3
new file mode 100644
index 0000000000..b5b4b12f07
--- /dev/null
+++ b/tests/ref/fate/cbs-mpeg2-sony-ct3
@@ -0,0 +1 @@
+b1e15a09cfffbad801810af0928736ab
diff --git a/tests/ref/fate/cbs-mpeg2-tcela-6 b/tests/ref/fate/cbs-mpeg2-tcela-6
new file mode 100644
index 0000000000..530369d672
--- /dev/null
+++ b/tests/ref/fate/cbs-mpeg2-tcela-6
@@ -0,0 +1 @@
+771b6756a63793e05b74e645794908a2