Imported Upstream version 6.1
[platform/upstream/ffmpeg.git] / tests / fate / cbs.mak
index 18efa96..802b035 100644 (file)
@@ -1,10 +1,11 @@
-# Read/write tests: this uses the codec metadata filter - with no
+# Read/write tests: By default, this uses the codec metadata filters - with no
 # arguments, it decomposes the stream fully and then recomposes it
 # without making any changes.
 
-fate-cbs: fate-cbs-av1 fate-cbs-h264 fate-cbs-hevc fate-cbs-mpeg2 fate-cbs-vp9
+fate-cbs: fate-cbs-av1 fate-cbs-h264 fate-cbs-hevc fate-cbs-mpeg2 fate-cbs-vp9 fate-cbs-vvc
 
 FATE_CBS_DEPS = $(call ALLYES, $(1)_DEMUXER $(2)_PARSER $(3)_METADATA_BSF $(4)_DECODER $(5)_MUXER)
+FATE_CBS_NO_DEC_DEPS = $(call ALLYES, $(1)_DEMUXER $(2)_PARSER $(3)_METADATA_BSF $(4)_MUXER)
 
 define FATE_CBS_TEST
 # (codec, test_name, sample_file, output_format)
@@ -12,6 +13,18 @@ FATE_CBS_$(1) += fate-cbs-$(1)-$(2)
 fate-cbs-$(1)-$(2): CMD = md5 -c:v $(3) -i $(TARGET_SAMPLES)/$(4) -c:v copy -y -bsf:v $(1)_metadata -f $(5)
 endef
 
+define FATE_CBS_NO_DEC_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 -y -bsf:v $(1)_metadata -f $(4)
+endef
+
+define FATE_CBS_DISCARD_TEST
+# (codec, discard_type, sample_file, output_format)
+FATE_CBS_$(1)_DISCARD += fate-cbs-$(1)-discard-$(2)
+fate-cbs-$(1)-discard-$(2): CMD = md5 -i $(TARGET_SAMPLES)/$(3) -c:v copy -y -bsf:v filter_units=discard=$(2) -f $(4)
+endef
+
 # AV1 read/write
 
 FATE_CBS_AV1_CONFORMANCE_SAMPLES = \
@@ -66,8 +79,55 @@ $(foreach N,$(FATE_CBS_H264_CONFORMANCE_SAMPLES),$(eval $(call FATE_CBS_TEST,h26
 $(foreach N,$(FATE_CBS_H264_SAMPLES),$(eval $(call FATE_CBS_TEST,h264,$(basename $(N)),h264,h264/$(N),h264)))
 
 FATE_CBS_H264-$(call FATE_CBS_DEPS, H264, H264, H264, H264, H264) = $(FATE_CBS_h264)
-FATE_SAMPLES_AVCONV += $(FATE_CBS_H264-yes)
-fate-cbs-h264: $(FATE_CBS_H264-yes)
+
+FATE_CBS_DISCARD_TYPES = \
+    nonref   \
+    bidir    \
+    nonintra \
+    nonkey
+
+$(foreach N,$(FATE_CBS_DISCARD_TYPES),$(eval $(call FATE_CBS_DISCARD_TEST,h264,$(N),h264/interlaced_crop.mp4,h264)))
+
+FATE_CBS_H264-$(call ALLYES, MOV_DEMUXER, H264_MUXER, H264_PARSER, FILTER_UNITS_BSF) += $(FATE_CBS_h264_DISCARD)
+
+
+FATE_H264_REDUNDANT_PPS-$(call REMUX, H264, MOV_DEMUXER H264_REDUNDANT_PPS_BSF   \
+                                      H264_DECODER H264_PARSER RAWVIDEO_ENCODER) \
+                                      += fate-h264_redundant_pps-mov
+fate-h264_redundant_pps-mov: CMD = transcode \
+        mov $(TARGET_SAMPLES)/mov/frag_overlap.mp4 h264 \
+        "-map 0:v -c copy -bsf h264_redundant_pps"
+
+# This file has changing pic_init_qp_minus26.
+FATE_H264_REDUNDANT_PPS-$(call REMUX, H264, H264_PARSER H264_REDUNDANT_PPS_BSF \
+                                      H264_DECODER RAWVIDEO_ENCODER) \
+                                      += fate-h264_redundant_pps-annexb
+fate-h264_redundant_pps-annexb: CMD = transcode \
+        h264 $(TARGET_SAMPLES)/h264-conformance/CABA3_TOSHIBA_E.264 \
+        h264 "-map 0:v -c copy -bsf h264_redundant_pps"
+
+# These two tests test that new extradata in packet side data is properly
+# modified by h264_redundant_pps. nut is used as destination container
+# because it can store extradata updates (in its experimental mode);
+# setting -syncpoints none is a hack to use nut version 4.
+FATE_H264_REDUNDANT_PPS-$(call REMUX, NUT, MOV_DEMUXER H264_REDUNDANT_PPS_BSF H264_DECODER) \
+                        += fate-h264_redundant_pps-side_data
+fate-h264_redundant_pps-side_data: CMD = transcode \
+        mov $(TARGET_SAMPLES)/h264/thezerotheorem-cut.mp4 nut \
+        "-map 0:v -c copy -bsf h264_redundant_pps -syncpoints none -strict experimental" "-c copy"
+
+FATE_H264_REDUNDANT_PPS-$(call REMUX, NUT, MOV_DEMUXER H264_REDUNDANT_PPS_BSF \
+                                      H264_DECODER SCALE_FILTER RAWVIDEO_ENCODER) \
+                                      += fate-h264_redundant_pps-side_data2
+fate-h264_redundant_pps-side_data2: CMD = transcode \
+        mov $(TARGET_SAMPLES)/h264/extradata-reload-multi-stsd.mov nut \
+        "-map 0:v -c copy -bsf h264_redundant_pps -syncpoints none -strict experimental"
+
+fate-h264_redundant_pps: $(FATE_H264_REDUNDANT_PPS-yes)
+
+
+FATE_SAMPLES_FFMPEG += $(FATE_CBS_H264-yes) $(FATE_H264_REDUNDANT_PPS-yes)
+fate-cbs-h264: $(FATE_CBS_H264-yes) $(FATE_H264_REDUNDANT_PPS-yes)
 
 # H.265 read/write
 
@@ -96,9 +156,52 @@ FATE_CBS_HEVC_SAMPLES =       \
 $(foreach N,$(FATE_CBS_HEVC_SAMPLES),$(eval $(call FATE_CBS_TEST,hevc,$(basename $(N)),hevc,hevc-conformance/$(N),hevc)))
 
 FATE_CBS_HEVC-$(call FATE_CBS_DEPS, HEVC, HEVC, HEVC, HEVC, HEVC) = $(FATE_CBS_hevc)
+
+$(foreach N,$(FATE_CBS_DISCARD_TYPES),$(eval $(call FATE_CBS_DISCARD_TEST,hevc,$(N),hevc-conformance/WPP_A_ericsson_MAIN10_2.bit,hevc)))
+
+FATE_CBS_HEVC-$(call ALLYES, HEVC_DEMUXER, HEVC_MUXER, HEVC_PARSER, FILTER_UNITS_BSF) += $(FATE_CBS_hevc_DISCARD)
+
 FATE_SAMPLES_AVCONV += $(FATE_CBS_HEVC-yes)
 fate-cbs-hevc: $(FATE_CBS_HEVC-yes)
 
+# H.266 read/write
+
+FATE_CBS_VVC_SAMPLES =        \
+    APSALF_A_2.bit            \
+    APSLMCS_D_1.bit           \
+    APSMULT_A_4.bit           \
+    AUD_A_3.bit               \
+    BOUNDARY_A_3.bit          \
+    BUMP_A_2.bit              \
+    CodingToolsSets_A_2.bit   \
+    CROP_B_4.bit              \
+    DCI_A_3.bit               \
+    HRD_A_3.bit               \
+    OPI_B_3.bit               \
+    PHSH_B_1.bit              \
+    POC_A_1.bit               \
+    PPS_B_1.bit               \
+    RAP_A_1.bit               \
+    SAO_A_3.bit               \
+    SCALING_A_1.bit           \
+    SLICES_A_3.bit            \
+    SPS_B_1.bit               \
+    STILL_B_1.bit             \
+    SUBPIC_A_3.bit            \
+    TILE_A_2.bit              \
+    VPS_A_3.bit               \
+    WP_A_3.bit                \
+    WPP_A_3.bit               \
+    WRAP_A_4.bit              \
+
+
+$(foreach N,$(FATE_CBS_VVC_SAMPLES),$(eval $(call FATE_CBS_NO_DEC_TEST,vvc,$(basename $(N)),vvc-conformance/$(N),vvc)))
+
+FATE_CBS_VVC-$(call FATE_CBS_NO_DEC_DEPS, HEVC, HEVC, HEVC, HEVC) = $(FATE_CBS_vvc)
+
+FATE_SAMPLES_AVCONV += $(FATE_CBS_VVC-yes)
+fate-cbs-vvc: $(FATE_CBS_VVC-yes)
+
 # MPEG-2 read/write
 
 FATE_CBS_MPEG2_SAMPLES =     \