cbs.mak 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240
  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.
  4. fate-cbs: fate-cbs-av1 fate-cbs-h264 fate-cbs-hevc fate-cbs-mpeg2 fate-cbs-vp9 fate-cbs-vvc
  5. FATE_CBS_DEPS = $(call ALLYES, $(1)_DEMUXER $(2)_PARSER $(3)_METADATA_BSF $(4)_DECODER $(5)_MUXER)
  6. FATE_CBS_NO_DEC_DEPS = $(call ALLYES, $(1)_DEMUXER $(2)_PARSER $(3)_METADATA_BSF $(4)_MUXER)
  7. define FATE_CBS_TEST
  8. # (codec, test_name, sample_file, output_format)
  9. FATE_CBS_$(1) += fate-cbs-$(1)-$(2)
  10. fate-cbs-$(1)-$(2): CMD = md5 -c:v $(3) -i $(TARGET_SAMPLES)/$(4) -c:v copy -y -bsf:v $(1)_metadata -f $(5)
  11. endef
  12. define FATE_CBS_NO_DEC_TEST
  13. # (codec, test_name, sample_file, output_format)
  14. FATE_CBS_$(1) += fate-cbs-$(1)-$(2)
  15. fate-cbs-$(1)-$(2): CMD = md5 -i $(TARGET_SAMPLES)/$(3) -c:v copy -y -bsf:v $(1)_metadata -f $(4)
  16. endef
  17. define FATE_CBS_DISCARD_TEST
  18. # (codec, discard_type, sample_file, output_format)
  19. FATE_CBS_$(1)_DISCARD += fate-cbs-$(1)-discard-$(2)
  20. fate-cbs-$(1)-discard-$(2): CMD = md5 -i $(TARGET_SAMPLES)/$(3) -c:v copy -y -bsf:v filter_units=discard=$(2) -f $(4)
  21. endef
  22. # AV1 read/write
  23. FATE_CBS_AV1_CONFORMANCE_SAMPLES = \
  24. av1-1-b8-02-allintra.ivf \
  25. av1-1-b8-03-sizedown.ivf \
  26. av1-1-b8-03-sizeup.ivf \
  27. av1-1-b8-04-cdfupdate.ivf \
  28. av1-1-b8-05-mv.ivf \
  29. av1-1-b8-06-mfmv.ivf \
  30. av1-1-b8-22-svc-L1T2.ivf \
  31. av1-1-b8-22-svc-L2T1.ivf \
  32. av1-1-b8-22-svc-L2T2.ivf \
  33. av1-1-b8-23-film_grain-50.ivf \
  34. av1-1-b10-23-film_grain-50.ivf
  35. FATE_CBS_AV1_SAMPLES = \
  36. decode_model.ivf \
  37. frames_refs_short_signaling.ivf \
  38. non_uniform_tiling.ivf \
  39. seq_hdr_op_param_info.ivf \
  40. switch_frame.ivf
  41. $(foreach N,$(FATE_CBS_AV1_CONFORMANCE_SAMPLES),$(eval $(call FATE_CBS_TEST,av1,$(basename $(N)),av1,av1-test-vectors/$(N),rawvideo)))
  42. $(foreach N,$(FATE_CBS_AV1_SAMPLES),$(eval $(call FATE_CBS_TEST,av1,$(basename $(N)),av1,av1/$(N),rawvideo)))
  43. FATE_CBS_AV1-$(call FATE_CBS_DEPS, IVF, AV1, AV1, AV1, RAWVIDEO) = $(FATE_CBS_av1)
  44. FATE_SAMPLES_AVCONV += $(FATE_CBS_AV1-yes)
  45. fate-cbs-av1: $(FATE_CBS_AV1-yes)
  46. # H.264 read/write
  47. FATE_CBS_H264_CONFORMANCE_SAMPLES = \
  48. SVA_Base_B.264 \
  49. BASQP1_Sony_C.jsv \
  50. FM1_BT_B.h264 \
  51. CVFC1_Sony_C.jsv \
  52. AUD_MW_E.264 \
  53. CVBS3_Sony_C.jsv \
  54. MR1_BT_A.h264 \
  55. CVWP1_TOSHIBA_E.264 \
  56. CVNLFI1_Sony_C.jsv \
  57. Sharp_MP_PAFF_1r2.jvt \
  58. CVMANL1_TOSHIBA_B.264 \
  59. sp1_bt_a.h264 \
  60. CVSE2_Sony_B.jsv \
  61. CABACI3_Sony_B.jsv
  62. FATE_CBS_H264_SAMPLES = \
  63. sei-1.h264
  64. $(foreach N,$(FATE_CBS_H264_CONFORMANCE_SAMPLES),$(eval $(call FATE_CBS_TEST,h264,$(basename $(N)),h264,h264-conformance/$(N),h264)))
  65. $(foreach N,$(FATE_CBS_H264_SAMPLES),$(eval $(call FATE_CBS_TEST,h264,$(basename $(N)),h264,h264/$(N),h264)))
  66. FATE_CBS_H264-$(call FATE_CBS_DEPS, H264, H264, H264, H264, H264) = $(FATE_CBS_h264)
  67. FATE_CBS_DISCARD_TYPES = \
  68. nonref \
  69. bidir \
  70. nonintra \
  71. nonkey
  72. $(foreach N,$(FATE_CBS_DISCARD_TYPES),$(eval $(call FATE_CBS_DISCARD_TEST,h264,$(N),h264/interlaced_crop.mp4,h264)))
  73. FATE_CBS_H264-$(call ALLYES, MOV_DEMUXER, H264_MUXER, H264_PARSER, FILTER_UNITS_BSF) += $(FATE_CBS_h264_DISCARD)
  74. FATE_H264_REDUNDANT_PPS-$(call REMUX, H264, MOV_DEMUXER H264_REDUNDANT_PPS_BSF \
  75. H264_DECODER H264_PARSER RAWVIDEO_ENCODER) \
  76. += fate-h264_redundant_pps-mov
  77. fate-h264_redundant_pps-mov: CMD = transcode \
  78. mov $(TARGET_SAMPLES)/mov/frag_overlap.mp4 h264 \
  79. "-map 0:v -c copy -bsf h264_redundant_pps"
  80. # This file has changing pic_init_qp_minus26.
  81. FATE_H264_REDUNDANT_PPS-$(call REMUX, H264, H264_PARSER H264_REDUNDANT_PPS_BSF \
  82. H264_DECODER RAWVIDEO_ENCODER) \
  83. += fate-h264_redundant_pps-annexb
  84. fate-h264_redundant_pps-annexb: CMD = transcode \
  85. h264 $(TARGET_SAMPLES)/h264-conformance/CABA3_TOSHIBA_E.264 \
  86. h264 "-map 0:v -c copy -bsf h264_redundant_pps"
  87. # These two tests test that new extradata in packet side data is properly
  88. # modified by h264_redundant_pps. nut is used as destination container
  89. # because it can store extradata updates (in its experimental mode);
  90. # setting -syncpoints none is a hack to use nut version 4.
  91. FATE_H264_REDUNDANT_PPS-$(call REMUX, NUT, MOV_DEMUXER H264_REDUNDANT_PPS_BSF H264_DECODER) \
  92. += fate-h264_redundant_pps-side_data
  93. fate-h264_redundant_pps-side_data: CMD = transcode \
  94. mov $(TARGET_SAMPLES)/h264/thezerotheorem-cut.mp4 nut \
  95. "-map 0:v -c copy -bsf h264_redundant_pps -syncpoints none -strict experimental" "-c copy"
  96. FATE_H264_REDUNDANT_PPS-$(call REMUX, NUT, MOV_DEMUXER H264_REDUNDANT_PPS_BSF \
  97. H264_DECODER SCALE_FILTER RAWVIDEO_ENCODER) \
  98. += fate-h264_redundant_pps-side_data2
  99. fate-h264_redundant_pps-side_data2: CMD = transcode \
  100. mov $(TARGET_SAMPLES)/h264/extradata-reload-multi-stsd.mov nut \
  101. "-map 0:v -c copy -bsf h264_redundant_pps -syncpoints none -strict experimental"
  102. fate-h264_redundant_pps: $(FATE_H264_REDUNDANT_PPS-yes)
  103. FATE_SAMPLES_FFMPEG += $(FATE_CBS_H264-yes) $(FATE_H264_REDUNDANT_PPS-yes)
  104. fate-cbs-h264: $(FATE_CBS_H264-yes) $(FATE_H264_REDUNDANT_PPS-yes)
  105. # H.265 read/write
  106. FATE_CBS_HEVC_SAMPLES = \
  107. STRUCT_A_Samsung_5.bit \
  108. WP_A_Toshiba_3.bit \
  109. SLIST_A_Sony_4.bit \
  110. SLIST_D_Sony_9.bit \
  111. CAINIT_E_SHARP_3.bit \
  112. CAINIT_H_SHARP_3.bit \
  113. TILES_B_Cisco_1.bit \
  114. WPP_A_ericsson_MAIN_2.bit \
  115. WPP_F_ericsson_MAIN_2.bit \
  116. ipcm_E_NEC_2.bit \
  117. NUT_A_ericsson_5.bit \
  118. PICSIZE_A_Bossen_1.bit \
  119. PICSIZE_B_Bossen_1.bit \
  120. RPS_A_docomo_4.bit \
  121. RPS_E_qualcomm_5.bit \
  122. LTRPSPS_A_Qualcomm_1.bit \
  123. RPLM_A_qualcomm_4.bit \
  124. CONFWIN_A_Sony_1.bit \
  125. HRD_A_Fujitsu_2.bit \
  126. SLPPLP_A_VIDYO_2.bit
  127. $(foreach N,$(FATE_CBS_HEVC_SAMPLES),$(eval $(call FATE_CBS_TEST,hevc,$(basename $(N)),hevc,hevc-conformance/$(N),hevc)))
  128. FATE_CBS_HEVC-$(call FATE_CBS_DEPS, HEVC, HEVC, HEVC, HEVC, HEVC) = $(FATE_CBS_hevc)
  129. $(foreach N,$(FATE_CBS_DISCARD_TYPES),$(eval $(call FATE_CBS_DISCARD_TEST,hevc,$(N),hevc-conformance/WPP_A_ericsson_MAIN10_2.bit,hevc)))
  130. FATE_CBS_HEVC-$(call ALLYES, HEVC_DEMUXER, HEVC_MUXER, HEVC_PARSER, FILTER_UNITS_BSF) += $(FATE_CBS_hevc_DISCARD)
  131. FATE_SAMPLES_AVCONV += $(FATE_CBS_HEVC-yes)
  132. fate-cbs-hevc: $(FATE_CBS_HEVC-yes)
  133. # H.266 read/write
  134. FATE_CBS_VVC_SAMPLES = \
  135. APSALF_A_2.bit \
  136. APSLMCS_D_1.bit \
  137. APSMULT_A_4.bit \
  138. AUD_A_3.bit \
  139. BOUNDARY_A_3.bit \
  140. BUMP_A_2.bit \
  141. CodingToolsSets_A_2.bit \
  142. CROP_B_4.bit \
  143. DCI_A_3.bit \
  144. HRD_A_3.bit \
  145. OPI_B_3.bit \
  146. PHSH_B_1.bit \
  147. POC_A_1.bit \
  148. PPS_B_1.bit \
  149. RAP_A_1.bit \
  150. SAO_A_3.bit \
  151. SCALING_A_1.bit \
  152. SLICES_A_3.bit \
  153. SPS_B_1.bit \
  154. STILL_B_1.bit \
  155. SUBPIC_A_3.bit \
  156. TILE_A_2.bit \
  157. VPS_A_3.bit \
  158. WP_A_3.bit \
  159. WPP_A_3.bit \
  160. WRAP_A_4.bit \
  161. $(foreach N,$(FATE_CBS_VVC_SAMPLES),$(eval $(call FATE_CBS_NO_DEC_TEST,vvc,$(basename $(N)),vvc-conformance/$(N),vvc)))
  162. FATE_CBS_VVC-$(call FATE_CBS_NO_DEC_DEPS, HEVC, HEVC, HEVC, HEVC) = $(FATE_CBS_vvc)
  163. FATE_SAMPLES_AVCONV += $(FATE_CBS_VVC-yes)
  164. fate-cbs-vvc: $(FATE_CBS_VVC-yes)
  165. # MPEG-2 read/write
  166. FATE_CBS_MPEG2_SAMPLES = \
  167. hhi_burst_422_short.bits \
  168. sony-ct3.bs \
  169. tcela-6.bits
  170. $(foreach N,$(FATE_CBS_MPEG2_SAMPLES),$(eval $(call FATE_CBS_TEST,mpeg2,$(basename $(N)),mpeg2video,mpeg2/$(N),mpeg2video)))
  171. FATE_CBS_MPEG2-$(call FATE_CBS_DEPS, MPEGVIDEO, MPEGVIDEO, MPEG2, MPEG2VIDEO, MPEG2VIDEO) = $(FATE_CBS_mpeg2)
  172. FATE_SAMPLES_AVCONV += $(FATE_CBS_MPEG2-yes)
  173. fate-cbs-mpeg2: $(FATE_CBS_MPEG2-yes)
  174. # VP9 read/write
  175. FATE_CBS_VP9_SAMPLES = \
  176. vp90-2-03-deltaq.webm \
  177. vp90-2-05-resize.ivf \
  178. vp90-2-06-bilinear.webm \
  179. vp90-2-09-lf_deltas.webm \
  180. vp90-2-10-show-existing-frame.webm \
  181. vp90-2-10-show-existing-frame2.webm \
  182. vp90-2-segmentation-aq-akiyo.webm \
  183. vp90-2-segmentation-sf-akiyo.webm \
  184. vp90-2-tiling-pedestrian.webm \
  185. vp91-2-04-yuv440.webm \
  186. vp91-2-04-yuv444.webm \
  187. vp92-2-20-10bit-yuv420.webm \
  188. vp93-2-20-10bit-yuv422.webm \
  189. vp93-2-20-12bit-yuv444.webm
  190. $(foreach N,$(FATE_CBS_VP9_SAMPLES),$(eval $(call FATE_CBS_TEST,vp9,$(basename $(N)),vp9,vp9-test-vectors/$(N),ivf)))
  191. FATE_CBS_VP9-$(call FATE_CBS_DEPS, IVF, VP9, VP9, VP9, IVF) = $(FATE_CBS_vp9)
  192. FATE_SAMPLES_AVCONV += $(FATE_CBS_VP9-yes)
  193. fate-cbs-vp9: $(FATE_CBS_VP9-yes)