Browse Source

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)
Mark Thompson 7 years ago
parent
commit
809b0402dc

+ 1 - 0
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

+ 79 - 0
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)

+ 1 - 0
tests/ref/fate/cbs-h264-AUD_MW_E

@@ -0,0 +1 @@
+9b8884667eda0b9853bec631458686ce

+ 1 - 0
tests/ref/fate/cbs-h264-BASQP1_Sony_C

@@ -0,0 +1 @@
+00c52ae60bf9a41ae1145fbf5fea9838

+ 1 - 0
tests/ref/fate/cbs-h264-CABACI3_Sony_B

@@ -0,0 +1 @@
+2d94c80b858aec880530bad47afe3668

+ 1 - 0
tests/ref/fate/cbs-h264-CVBS3_Sony_C

@@ -0,0 +1 @@
+59ff1df9b25e80277cad4ad99e634df6

+ 1 - 0
tests/ref/fate/cbs-h264-CVFC1_Sony_C

@@ -0,0 +1 @@
+669f4f3d3ae35fa5a6f5c94e48776dcf

+ 1 - 0
tests/ref/fate/cbs-h264-CVMANL1_TOSHIBA_B

@@ -0,0 +1 @@
+0c1d9694df747cc4697caf866bd3051a

+ 1 - 0
tests/ref/fate/cbs-h264-CVNLFI1_Sony_C

@@ -0,0 +1 @@
+7817d89bd749bc617a225978958a3af0

+ 1 - 0
tests/ref/fate/cbs-h264-CVSE2_Sony_B

@@ -0,0 +1 @@
+ca8bdba497bd2f3b97c50d59692eb537

Some files were not shown because too many files changed in this diff