1 # Read/write tests: By default, this uses the codec metadata filters - with no
2 # arguments, it decomposes the stream fully and then recomposes it
3 # without making any changes.
5 fate-cbs: fate-cbs-av1 fate-cbs-h264 fate-cbs-hevc fate-cbs-mpeg2 fate-cbs-vp9 fate-cbs-vvc
7 FATE_CBS_DEPS = $(call ALLYES, $(1)_DEMUXER $(2)_PARSER $(3)_METADATA_BSF $(4)_DECODER $(5)_MUXER)
8 FATE_CBS_NO_DEC_DEPS = $(call ALLYES, $(1)_DEMUXER $(2)_PARSER $(3)_METADATA_BSF $(4)_MUXER)
11 # (codec, test_name, sample_file, output_format)
12 FATE_CBS_$(1) += fate-cbs-$(1)-$(2)
13 fate-cbs-$(1)-$(2): CMD = md5 -c:v $(3) -i $(TARGET_SAMPLES)/$(4) -c:v copy -y -bsf:v $(1)_metadata -f $(5)
16 define FATE_CBS_NO_DEC_TEST
17 # (codec, test_name, sample_file, output_format)
18 FATE_CBS_$(1) += fate-cbs-$(1)-$(2)
19 fate-cbs-$(1)-$(2): CMD = md5 -i $(TARGET_SAMPLES)/$(3) -c:v copy -y -bsf:v $(1)_metadata -f $(4)
22 define FATE_CBS_DISCARD_TEST
23 # (codec, discard_type, sample_file, output_format)
24 FATE_CBS_$(1)_DISCARD += fate-cbs-$(1)-discard-$(2)
25 fate-cbs-$(1)-discard-$(2): CMD = md5 -i $(TARGET_SAMPLES)/$(3) -c:v copy -y -bsf:v filter_units=discard=$(2) -f $(4)
30 FATE_CBS_AV1_CONFORMANCE_SAMPLES = \
31 av1-1-b8-02-allintra.ivf \
32 av1-1-b8-03-sizedown.ivf \
33 av1-1-b8-03-sizeup.ivf \
34 av1-1-b8-04-cdfupdate.ivf \
36 av1-1-b8-06-mfmv.ivf \
37 av1-1-b8-22-svc-L1T2.ivf \
38 av1-1-b8-22-svc-L2T1.ivf \
39 av1-1-b8-22-svc-L2T2.ivf \
40 av1-1-b8-23-film_grain-50.ivf \
41 av1-1-b10-23-film_grain-50.ivf
43 FATE_CBS_AV1_SAMPLES = \
45 frames_refs_short_signaling.ivf \
46 non_uniform_tiling.ivf \
47 seq_hdr_op_param_info.ivf \
50 $(foreach N,$(FATE_CBS_AV1_CONFORMANCE_SAMPLES),$(eval $(call FATE_CBS_TEST,av1,$(basename $(N)),av1,av1-test-vectors/$(N),rawvideo)))
51 $(foreach N,$(FATE_CBS_AV1_SAMPLES),$(eval $(call FATE_CBS_TEST,av1,$(basename $(N)),av1,av1/$(N),rawvideo)))
53 FATE_CBS_AV1-$(call FATE_CBS_DEPS, IVF, AV1, AV1, AV1, RAWVIDEO) = $(FATE_CBS_av1)
54 FATE_SAMPLES_AVCONV += $(FATE_CBS_AV1-yes)
55 fate-cbs-av1: $(FATE_CBS_AV1-yes)
59 FATE_CBS_H264_CONFORMANCE_SAMPLES = \
69 Sharp_MP_PAFF_1r2.jvt \
70 CVMANL1_TOSHIBA_B.264 \
75 FATE_CBS_H264_SAMPLES = \
78 $(foreach N,$(FATE_CBS_H264_CONFORMANCE_SAMPLES),$(eval $(call FATE_CBS_TEST,h264,$(basename $(N)),h264,h264-conformance/$(N),h264)))
79 $(foreach N,$(FATE_CBS_H264_SAMPLES),$(eval $(call FATE_CBS_TEST,h264,$(basename $(N)),h264,h264/$(N),h264)))
81 FATE_CBS_H264-$(call FATE_CBS_DEPS, H264, H264, H264, H264, H264) = $(FATE_CBS_h264)
83 FATE_CBS_DISCARD_TYPES = \
89 $(foreach N,$(FATE_CBS_DISCARD_TYPES),$(eval $(call FATE_CBS_DISCARD_TEST,h264,$(N),h264/interlaced_crop.mp4,h264)))
91 FATE_CBS_H264-$(call ALLYES, MOV_DEMUXER, H264_MUXER, H264_PARSER, FILTER_UNITS_BSF) += $(FATE_CBS_h264_DISCARD)
94 FATE_H264_REDUNDANT_PPS-$(call REMUX, H264, MOV_DEMUXER H264_REDUNDANT_PPS_BSF \
95 H264_DECODER H264_PARSER RAWVIDEO_ENCODER) \
96 += fate-h264_redundant_pps-mov
97 fate-h264_redundant_pps-mov: CMD = transcode \
98 mov $(TARGET_SAMPLES)/mov/frag_overlap.mp4 h264 \
99 "-map 0:v -c copy -bsf h264_redundant_pps"
101 # This file has changing pic_init_qp_minus26.
102 FATE_H264_REDUNDANT_PPS-$(call REMUX, H264, H264_PARSER H264_REDUNDANT_PPS_BSF \
103 H264_DECODER RAWVIDEO_ENCODER) \
104 += fate-h264_redundant_pps-annexb
105 fate-h264_redundant_pps-annexb: CMD = transcode \
106 h264 $(TARGET_SAMPLES)/h264-conformance/CABA3_TOSHIBA_E.264 \
107 h264 "-map 0:v -c copy -bsf h264_redundant_pps"
109 # These two tests test that new extradata in packet side data is properly
110 # modified by h264_redundant_pps. nut is used as destination container
111 # because it can store extradata updates (in its experimental mode);
112 # setting -syncpoints none is a hack to use nut version 4.
113 FATE_H264_REDUNDANT_PPS-$(call REMUX, NUT, MOV_DEMUXER H264_REDUNDANT_PPS_BSF H264_DECODER) \
114 += fate-h264_redundant_pps-side_data
115 fate-h264_redundant_pps-side_data: CMD = transcode \
116 mov $(TARGET_SAMPLES)/h264/thezerotheorem-cut.mp4 nut \
117 "-map 0:v -c copy -bsf h264_redundant_pps -syncpoints none -strict experimental" "-c copy"
119 FATE_H264_REDUNDANT_PPS-$(call REMUX, NUT, MOV_DEMUXER H264_REDUNDANT_PPS_BSF \
120 H264_DECODER SCALE_FILTER RAWVIDEO_ENCODER) \
121 += fate-h264_redundant_pps-side_data2
122 fate-h264_redundant_pps-side_data2: CMD = transcode \
123 mov $(TARGET_SAMPLES)/h264/extradata-reload-multi-stsd.mov nut \
124 "-map 0:v -c copy -bsf h264_redundant_pps -syncpoints none -strict experimental"
126 fate-h264_redundant_pps: $(FATE_H264_REDUNDANT_PPS-yes)
129 FATE_SAMPLES_FFMPEG += $(FATE_CBS_H264-yes) $(FATE_H264_REDUNDANT_PPS-yes)
130 fate-cbs-h264: $(FATE_CBS_H264-yes) $(FATE_H264_REDUNDANT_PPS-yes)
134 FATE_CBS_HEVC_SAMPLES = \
135 STRUCT_A_Samsung_5.bit \
139 CAINIT_E_SHARP_3.bit \
140 CAINIT_H_SHARP_3.bit \
141 TILES_B_Cisco_1.bit \
142 WPP_A_ericsson_MAIN_2.bit \
143 WPP_F_ericsson_MAIN_2.bit \
145 NUT_A_ericsson_5.bit \
146 PICSIZE_A_Bossen_1.bit \
147 PICSIZE_B_Bossen_1.bit \
149 RPS_E_qualcomm_5.bit \
150 LTRPSPS_A_Qualcomm_1.bit \
151 RPLM_A_qualcomm_4.bit \
152 CONFWIN_A_Sony_1.bit \
153 HRD_A_Fujitsu_2.bit \
156 $(foreach N,$(FATE_CBS_HEVC_SAMPLES),$(eval $(call FATE_CBS_TEST,hevc,$(basename $(N)),hevc,hevc-conformance/$(N),hevc)))
158 FATE_CBS_HEVC-$(call FATE_CBS_DEPS, HEVC, HEVC, HEVC, HEVC, HEVC) = $(FATE_CBS_hevc)
160 $(foreach N,$(FATE_CBS_DISCARD_TYPES),$(eval $(call FATE_CBS_DISCARD_TEST,hevc,$(N),hevc-conformance/WPP_A_ericsson_MAIN10_2.bit,hevc)))
162 FATE_CBS_HEVC-$(call ALLYES, HEVC_DEMUXER, HEVC_MUXER, HEVC_PARSER, FILTER_UNITS_BSF) += $(FATE_CBS_hevc_DISCARD)
164 FATE_SAMPLES_AVCONV += $(FATE_CBS_HEVC-yes)
165 fate-cbs-hevc: $(FATE_CBS_HEVC-yes)
169 FATE_CBS_VVC_SAMPLES = \
176 CodingToolsSets_A_2.bit \
198 $(foreach N,$(FATE_CBS_VVC_SAMPLES),$(eval $(call FATE_CBS_NO_DEC_TEST,vvc,$(basename $(N)),vvc-conformance/$(N),vvc)))
200 FATE_CBS_VVC-$(call FATE_CBS_NO_DEC_DEPS, HEVC, HEVC, HEVC, HEVC) = $(FATE_CBS_vvc)
202 FATE_SAMPLES_AVCONV += $(FATE_CBS_VVC-yes)
203 fate-cbs-vvc: $(FATE_CBS_VVC-yes)
207 FATE_CBS_MPEG2_SAMPLES = \
208 hhi_burst_422_short.bits \
212 $(foreach N,$(FATE_CBS_MPEG2_SAMPLES),$(eval $(call FATE_CBS_TEST,mpeg2,$(basename $(N)),mpeg2video,mpeg2/$(N),mpeg2video)))
214 FATE_CBS_MPEG2-$(call FATE_CBS_DEPS, MPEGVIDEO, MPEGVIDEO, MPEG2, MPEG2VIDEO, MPEG2VIDEO) = $(FATE_CBS_mpeg2)
215 FATE_SAMPLES_AVCONV += $(FATE_CBS_MPEG2-yes)
216 fate-cbs-mpeg2: $(FATE_CBS_MPEG2-yes)
220 FATE_CBS_VP9_SAMPLES = \
221 vp90-2-03-deltaq.webm \
222 vp90-2-05-resize.ivf \
223 vp90-2-06-bilinear.webm \
224 vp90-2-09-lf_deltas.webm \
225 vp90-2-10-show-existing-frame.webm \
226 vp90-2-10-show-existing-frame2.webm \
227 vp90-2-segmentation-aq-akiyo.webm \
228 vp90-2-segmentation-sf-akiyo.webm \
229 vp90-2-tiling-pedestrian.webm \
230 vp91-2-04-yuv440.webm \
231 vp91-2-04-yuv444.webm \
232 vp92-2-20-10bit-yuv420.webm \
233 vp93-2-20-10bit-yuv422.webm \
234 vp93-2-20-12bit-yuv444.webm
236 $(foreach N,$(FATE_CBS_VP9_SAMPLES),$(eval $(call FATE_CBS_TEST,vp9,$(basename $(N)),vp9,vp9-test-vectors/$(N),ivf)))
238 FATE_CBS_VP9-$(call FATE_CBS_DEPS, IVF, VP9, VP9, VP9, IVF) = $(FATE_CBS_vp9)
239 FATE_SAMPLES_AVCONV += $(FATE_CBS_VP9-yes)
240 fate-cbs-vp9: $(FATE_CBS_VP9-yes)