hevc.mak 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264
  1. HEVC_SAMPLES_8BIT = \
  2. AMP_A_Samsung_4 \
  3. AMP_A_Samsung_6 \
  4. AMP_B_Samsung_4 \
  5. AMP_B_Samsung_6 \
  6. AMP_D_Hisilicon \
  7. AMP_E_Hisilicon \
  8. AMP_F_Hisilicon_3 \
  9. AMVP_A_MTK_4 \
  10. AMVP_B_MTK_4 \
  11. AMVP_C_Samsung_4 \
  12. AMVP_C_Samsung_6 \
  13. BUMPING_A_ericsson_1 \
  14. CAINIT_A_SHARP_4 \
  15. CAINIT_B_SHARP_4 \
  16. CAINIT_C_SHARP_3 \
  17. CAINIT_D_SHARP_3 \
  18. CAINIT_E_SHARP_3 \
  19. CAINIT_F_SHARP_3 \
  20. CAINIT_G_SHARP_3 \
  21. CAINIT_H_SHARP_3 \
  22. CIP_A_Panasonic_3 \
  23. cip_B_NEC_3 \
  24. CIP_C_Panasonic_2 \
  25. CONFWIN_A_Sony_1 \
  26. DBLK_A_SONY_3 \
  27. DBLK_B_SONY_3 \
  28. DBLK_C_SONY_3 \
  29. DBLK_D_VIXS_2 \
  30. DBLK_E_VIXS_2 \
  31. DBLK_F_VIXS_2 \
  32. DBLK_G_VIXS_2 \
  33. DELTAQP_A_BRCM_4 \
  34. DELTAQP_B_SONY_3 \
  35. DELTAQP_C_SONY_3 \
  36. DSLICE_A_HHI_5 \
  37. DSLICE_B_HHI_5 \
  38. DSLICE_C_HHI_5 \
  39. ENTP_A_Qualcomm_1 \
  40. ENTP_B_Qualcomm_1 \
  41. ENTP_C_Qualcomm_1 \
  42. EXT_A_ericsson_4 \
  43. FILLER_A_Sony_1 \
  44. HRD_A_Fujitsu_2 \
  45. HRD_A_Fujitsu_3 \
  46. INITQP_A_Sony_1 \
  47. ipcm_A_NEC_3 \
  48. ipcm_B_NEC_3 \
  49. ipcm_C_NEC_3 \
  50. ipcm_D_NEC_3 \
  51. ipcm_E_NEC_2 \
  52. IPRED_A_docomo_2 \
  53. IPRED_B_Nokia_3 \
  54. IPRED_C_Mitsubishi_3 \
  55. LS_A_Orange_2 \
  56. LS_B_ORANGE_4 \
  57. LTRPSPS_A_Qualcomm_1 \
  58. MAXBINS_A_TI_4 \
  59. MAXBINS_B_TI_4 \
  60. MAXBINS_C_TI_4 \
  61. MERGE_A_TI_3 \
  62. MERGE_B_TI_3 \
  63. MERGE_C_TI_3 \
  64. MERGE_D_TI_3 \
  65. MERGE_E_TI_3 \
  66. MERGE_F_MTK_4 \
  67. MERGE_G_HHI_4 \
  68. MVCLIP_A_qualcomm_3 \
  69. MVDL1ZERO_A_docomo_3 \
  70. MVEDGE_A_qualcomm_3 \
  71. NoOutPrior_A_Qualcomm_1 \
  72. NoOutPrior_B_Qualcomm_1 \
  73. NUT_A_ericsson_5 \
  74. OPFLAG_A_Qualcomm_1 \
  75. OPFLAG_B_Qualcomm_1 \
  76. OPFLAG_C_Qualcomm_1 \
  77. PICSIZE_A_Bossen_1 \
  78. PICSIZE_B_Bossen_1 \
  79. PICSIZE_C_Bossen_1 \
  80. PICSIZE_D_Bossen_1 \
  81. PMERGE_A_TI_3 \
  82. PMERGE_B_TI_3 \
  83. PMERGE_C_TI_3 \
  84. PMERGE_D_TI_3 \
  85. PMERGE_E_TI_3 \
  86. POC_A_Bossen_3 \
  87. PPS_A_qualcomm_7 \
  88. PS_A_VIDYO_3 \
  89. PS_B_VIDYO_3 \
  90. RAP_A_docomo_4 \
  91. RAP_B_Bossen_1 \
  92. RPLM_A_qualcomm_4 \
  93. RPLM_B_qualcomm_4 \
  94. RPS_A_docomo_4 \
  95. RPS_B_qualcomm_5 \
  96. RPS_C_ericsson_5 \
  97. RPS_D_ericsson_6 \
  98. RPS_E_qualcomm_5 \
  99. RPS_F_docomo_1 \
  100. RQT_A_HHI_4 \
  101. RQT_B_HHI_4 \
  102. RQT_C_HHI_4 \
  103. RQT_D_HHI_4 \
  104. RQT_E_HHI_4 \
  105. RQT_F_HHI_4 \
  106. RQT_G_HHI_4 \
  107. SAO_A_MediaTek_4 \
  108. SAO_B_MediaTek_5 \
  109. SAO_C_Samsung_4 \
  110. SAO_C_Samsung_5 \
  111. SAO_D_Samsung_4 \
  112. SAO_D_Samsung_5 \
  113. SAO_E_Canon_4 \
  114. SAO_F_Canon_3 \
  115. SAO_G_Canon_3 \
  116. SDH_A_Orange_3 \
  117. SLICES_A_Rovi_3 \
  118. SLIST_A_Sony_4 \
  119. SLIST_B_Sony_8 \
  120. SLIST_C_Sony_3 \
  121. SLIST_D_Sony_9 \
  122. SLPPLP_A_VIDYO_1 \
  123. SLPPLP_A_VIDYO_2 \
  124. STRUCT_A_Samsung_5 \
  125. STRUCT_B_Samsung_4 \
  126. STRUCT_B_Samsung_6 \
  127. TILES_A_Cisco_2 \
  128. TILES_B_Cisco_1 \
  129. TMVP_A_MS_3 \
  130. TSCL_A_VIDYO_5 \
  131. TSCL_B_VIDYO_4 \
  132. TSKIP_A_MS_3 \
  133. TUSIZE_A_Samsung_1 \
  134. VPSID_A_VIDYO_1 \
  135. VPSID_A_VIDYO_2 \
  136. WP_A_Toshiba_3 \
  137. WP_B_Toshiba_3 \
  138. WPP_A_ericsson_MAIN_2 \
  139. WPP_B_ericsson_MAIN_2 \
  140. WPP_C_ericsson_MAIN_2 \
  141. WPP_D_ericsson_MAIN_2 \
  142. WPP_E_ericsson_MAIN_2 \
  143. WPP_F_ericsson_MAIN_2 \
  144. WPP_HIGH_TP_444_8BIT_RExt_Apple_2 \
  145. HEVC_SAMPLES_10BIT = \
  146. DBLK_A_MAIN10_VIXS_3 \
  147. WP_A_MAIN10_Toshiba_3 \
  148. WP_MAIN10_B_Toshiba_3 \
  149. WPP_A_ericsson_MAIN10_2 \
  150. WPP_B_ericsson_MAIN10_2 \
  151. WPP_C_ericsson_MAIN10_2 \
  152. WPP_D_ericsson_MAIN10_2 \
  153. WPP_E_ericsson_MAIN10_2 \
  154. WPP_F_ericsson_MAIN10_2 \
  155. INITQP_B_Sony_1 \
  156. HEVC_SAMPLES_422_10BIT = \
  157. ADJUST_IPRED_ANGLE_A_RExt_Mitsubishi_1 \
  158. IPCM_A_RExt_NEC \
  159. HEVC_SAMPLES_422_10BIN_LARGE = \
  160. Main_422_10_B_RExt_Sony_1 \
  161. HEVC_SAMPLES_422_10BIN = \
  162. Main_422_10_A_RExt_Sony_1 \
  163. $(if $(CONFIG_LARGE_TESTS), $(HEVC_SAMPLES_422_10BIN_LARGE))
  164. HEVC_SAMPLES_444_8BIT = \
  165. QMATRIX_A_RExt_Sony_1 \
  166. HEVC_SAMPLES_444_12BIT_LARGE = \
  167. SAO_A_RExt_MediaTek_1 \
  168. HEVC_SAMPLES_444_12BIT = \
  169. IPCM_B_RExt_NEC \
  170. PERSIST_RPARAM_A_RExt_Sony_1\
  171. PERSIST_RPARAM_A_RExt_Sony_3\
  172. $(if $(CONFIG_LARGE_TESTS), $(HEVC_SAMPLES_444_12BIT_LARGE))
  173. FATE_HEVC_VARS := 8BIT 10BIT 422_10BIT 422_10BIN 444_8BIT 444_12BIT
  174. $(foreach VAR,$(FATE_HEVC_VARS), $(eval HEVC_TESTS_$(VAR) := $(addprefix fate-hevc-conformance-, $(HEVC_SAMPLES_$(VAR)))))
  175. # equivalent bitstreams
  176. # AMP_D_Hisilicon_3 -- AMP_D_Hisilicon
  177. # AMP_E_Hisilicon_3 -- AMP_E_Hisilicon
  178. # MVDL1ZERO_A_docomo_4 -- MVDL1ZERO_A_docomo_3
  179. # RAP_A_docomo_5 -- RAP_A_docomo_4
  180. # RAP_B_bossen_2 -- RAP_B_bossen_1
  181. # RPS_A_docomo_5 -- RPS_A_docomo_4
  182. # RPS_F_docomo_2 -- RPS_F_docomo_1
  183. # do not pass:
  184. # TSUNEQBD_A_MAIN10_Technicolor_2.bit (segfault mix 9-10bits)
  185. # PERSIST_RPARAM_A_RExt_Sony_1 (rext)
  186. $(HEVC_TESTS_8BIT): SCALE_OPTS := -pix_fmt yuv420p
  187. $(HEVC_TESTS_444_8BIT): SCALE_OPTS := -pix_fmt yuv444p
  188. $(HEVC_TESTS_10BIT): SCALE_OPTS := -pix_fmt yuv420p10le -vf scale
  189. $(HEVC_TESTS_422_10BIT) $(HEVC_TESTS_422_10BIN): SCALE_OPTS := -pix_fmt yuv422p10le -vf scale
  190. $(HEVC_TESTS_444_12BIT): SCALE_OPTS := -pix_fmt yuv444p12le -vf scale
  191. fate-hevc-conformance-%: CMD = framecrc -i $(TARGET_SAMPLES)/hevc-conformance/$(subst fate-hevc-conformance-,,$(@)).bit $(SCALE_OPTS)
  192. $(HEVC_TESTS_422_10BIN): CMD = framecrc -i $(TARGET_SAMPLES)/hevc-conformance/$(subst fate-hevc-conformance-,,$(@)).bin $(SCALE_OPTS)
  193. FATE_HEVC-$(call FRAMECRC, HEVC, HEVC, HEVC_PARSER) += $(HEVC_TESTS_8BIT) $(HEVC_TESTS_444_8BIT)
  194. FATE_HEVC-$(call FRAMECRC, HEVC, HEVC, HEVC_PARSER SCALE_FILTER) += \
  195. $(HEVC_TESTS_10BIT) \
  196. $(HEVC_TESTS_422_10BIT) \
  197. $(HEVC_TESTS_422_10BIN) \
  198. $(HEVC_TESTS_444_12BIT) \
  199. fate-hevc-paramchange-yuv420p-yuv420p10: CMD = framecrc -i $(TARGET_SAMPLES)/hevc/paramchange_yuv420p_yuv420p10.hevc -fps_mode passthrough -sws_flags area+accurate_rnd+bitexact
  200. FATE_HEVC-$(call FRAMECRC, HEVC, HEVC, HEVC_PARSER SCALE_FILTER LARGE_TESTS) += fate-hevc-paramchange-yuv420p-yuv420p10
  201. tests/data/hevc-mp4.mov: TAG = GEN
  202. tests/data/hevc-mp4.mov: ffmpeg$(PROGSSUF)$(EXESUF) | tests/data
  203. $(M)$(TARGET_EXEC) $(TARGET_PATH)/$< -nostdin \
  204. -i $(TARGET_SAMPLES)/hevc-conformance/WPP_A_ericsson_MAIN10_2.bit -c copy -flags +bitexact $(TARGET_PATH)/$@ -y 2>/dev/null
  205. FATE_HEVC-$(call ALLYES, HEVC_DEMUXER MOV_DEMUXER HEVC_PARSER HEVC_MP4TOANNEXB_BSF MOV_MUXER HEVC_MUXER) += fate-hevc-bsf-mp4toannexb
  206. fate-hevc-bsf-mp4toannexb: tests/data/hevc-mp4.mov
  207. fate-hevc-bsf-mp4toannexb: CMD = md5 -i $(TARGET_PATH)/tests/data/hevc-mp4.mov -c:v copy -fflags +bitexact -f hevc
  208. fate-hevc-bsf-mp4toannexb: CMP = oneline
  209. fate-hevc-bsf-mp4toannexb: REF = 73019329ed7f81c24f9af67c34c640c0
  210. fate-hevc-skiploopfilter: CMD = framemd5 -skip_loop_filter nokey -i $(TARGET_SAMPLES)/hevc-conformance/SAO_D_Samsung_5.bit -sws_flags bitexact
  211. FATE_HEVC-$(call FRAMEMD5, HEVC, HEVC, HEVC_PARSER) += fate-hevc-skiploopfilter
  212. # this sample has two stsd entries and needs to reload extradata
  213. FATE_HEVC-$(call FRAMEMD5, MOV, HEVC, SCALE_FILTER) += fate-hevc-extradata-reload
  214. fate-hevc-extradata-reload: CMD = framemd5 -i $(TARGET_SAMPLES)/hevc/extradata-reload-multi-stsd.mov -sws_flags bitexact
  215. fate-hevc-paired-fields: CMD = probeframes -show_entries frame=interlaced_frame,top_field_first $(TARGET_SAMPLES)/hevc/paired_fields.hevc
  216. FATE_HEVC_FFPROBE-$(call DEMDEC, HEVC, HEVC) += fate-hevc-paired-fields
  217. fate-hevc-monochrome-crop: CMD = probeframes -show_entries frame=width,height:stream=width,height $(TARGET_SAMPLES)/hevc/hevc-monochrome.hevc
  218. FATE_HEVC_FFPROBE-$(call PARSERDEMDEC, HEVC, HEVC, HEVC) += fate-hevc-monochrome-crop
  219. fate-hevc-afd-tc-sei: CMD = run ffprobe$(PROGSSUF)$(EXESUF) -bitexact -show_entries frame_side_data_list -select_streams v $(TARGET_SAMPLES)/mpegts/loewe.ts
  220. FATE_HEVC_FFPROBE-$(call PARSERDEMDEC, HEVC, HEVC, HEVC) += fate-hevc-afd-tc-sei
  221. fate-hevc-hdr10-plus-metadata: CMD = probeframes -show_entries frame=side_data_list $(TARGET_SAMPLES)/hevc/hdr10_plus_h265_sample.hevc
  222. FATE_HEVC_FFPROBE-$(call DEMDEC, HEVC, HEVC) += fate-hevc-hdr10-plus-metadata
  223. fate-hevc-hdr-vivid-metadata: CMD = probeframes -show_entries frame=side_data_list $(TARGET_SAMPLES)/hevc/hdr_vivid_h265_sample.hevc
  224. FATE_HEVC_FFPROBE-$(call PARSERDEMDEC, HEVC, HEVC, HEVC) += fate-hevc-hdr-vivid-metadata
  225. fate-hevc-dv-rpu: CMD = probeframes -show_entries frame=side_data_list -select_streams 0 -read_intervals "%+\#2" $(TARGET_SAMPLES)/hevc/dv84.mov
  226. FATE_HEVC_FFPROBE-$(call DEMDEC, MOV, HEVC) += fate-hevc-dv-rpu
  227. fate-hevc-two-first-slice: CMD = threads=2 framemd5 -i $(TARGET_SAMPLES)/hevc/two_first_slice.mp4 -sws_flags bitexact -t 00:02.00 -an
  228. FATE_HEVC-$(call FRAMEMD5, MOV, HEVC) += fate-hevc-two-first-slice
  229. fate-hevc-cabac-tudepth: CMD = framecrc -i $(TARGET_SAMPLES)/hevc/cbf_cr_cb_TUDepth_4_circle.h265 -pix_fmt yuv444p
  230. FATE_HEVC-$(call FRAMECRC, HEVC, HEVC) += fate-hevc-cabac-tudepth
  231. fate-hevc-small422chroma: CMD = framecrc -i $(TARGET_SAMPLES)/hevc/food.hevc -pix_fmt yuv422p10le -vf scale
  232. FATE_HEVC-$(call FRAMECRC, HEVC, HEVC, HEVC_PARSER SCALE_FILTER) += fate-hevc-small422chroma
  233. FATE_SAMPLES_AVCONV += $(FATE_HEVC-yes)
  234. FATE_SAMPLES_FFPROBE += $(FATE_HEVC_FFPROBE-yes)
  235. fate-hevc: $(FATE_HEVC-yes) $(FATE_HEVC_FFPROBE-yes)