1HEVC_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 145HEVC_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 157HEVC_SAMPLES_422_10BIT = \ 158 ADJUST_IPRED_ANGLE_A_RExt_Mitsubishi_1 \ 159 IPCM_A_RExt_NEC \ 160 161HEVC_SAMPLES_422_10BIN_LARGE = \ 162 Main_422_10_B_RExt_Sony_1 \ 163 164HEVC_SAMPLES_422_10BIN = \ 165 Main_422_10_A_RExt_Sony_1 \ 166 $(if $(CONFIG_LARGE_TESTS), $(HEVC_SAMPLES_422_10BIN_LARGE)) 167 168HEVC_SAMPLES_444_8BIT = \ 169 QMATRIX_A_RExt_Sony_1 \ 170 171HEVC_SAMPLES_444_12BIT_LARGE = \ 172 SAO_A_RExt_MediaTek_1 \ 173 174HEVC_SAMPLES_444_12BIT = \ 175 IPCM_B_RExt_NEC \ 176 PERSIST_RPARAM_A_RExt_Sony_1\ 177 PERSIST_RPARAM_A_RExt_Sony_3\ 178 $(if $(CONFIG_LARGE_TESTS), $(HEVC_SAMPLES_444_12BIT_LARGE)) 179 180FATE_HEVC_VARS := 8BIT 10BIT 422_10BIT 422_10BIN 444_8BIT 444_12BIT 181$(foreach VAR,$(FATE_HEVC_VARS), $(eval HEVC_TESTS_$(VAR) := $(addprefix fate-hevc-conformance-, $(HEVC_SAMPLES_$(VAR))))) 182 183# equivalent bitstreams 184# AMP_D_Hisilicon_3 -- AMP_D_Hisilicon 185# AMP_E_Hisilicon_3 -- AMP_E_Hisilicon 186# MVDL1ZERO_A_docomo_4 -- MVDL1ZERO_A_docomo_3 187# RAP_A_docomo_5 -- RAP_A_docomo_4 188# RAP_B_bossen_2 -- RAP_B_bossen_1 189# RPS_A_docomo_5 -- RPS_A_docomo_4 190# RPS_F_docomo_2 -- RPS_F_docomo_1 191 192# do not pass: 193# TSUNEQBD_A_MAIN10_Technicolor_2.bit (segfault mix 9-10bits) 194# PERSIST_RPARAM_A_RExt_Sony_1 (rext) 195 196 197$(HEVC_TESTS_8BIT): SCALE_OPTS := -pix_fmt yuv420p 198$(HEVC_TESTS_444_8BIT): SCALE_OPTS := -pix_fmt yuv444p 199$(HEVC_TESTS_10BIT): SCALE_OPTS := -pix_fmt yuv420p10le -vf scale 200$(HEVC_TESTS_422_10BIT) $(HEVC_TESTS_422_10BIN): SCALE_OPTS := -pix_fmt yuv422p10le -vf scale 201$(HEVC_TESTS_444_12BIT): SCALE_OPTS := -pix_fmt yuv444p12le -vf scale 202fate-hevc-conformance-%: CMD = framecrc -flags unaligned -i $(TARGET_SAMPLES)/hevc-conformance/$(subst fate-hevc-conformance-,,$(@)).bit $(SCALE_OPTS) 203$(HEVC_TESTS_422_10BIN): CMD = framecrc -flags unaligned -i $(TARGET_SAMPLES)/hevc-conformance/$(subst fate-hevc-conformance-,,$(@)).bin $(SCALE_OPTS) 204 205FATE_HEVC-$(call FRAMECRC, HEVC, HEVC, HEVC_PARSER) += $(HEVC_TESTS_8BIT) $(HEVC_TESTS_444_8BIT) 206FATE_HEVC-$(call FRAMECRC, HEVC, HEVC, HEVC_PARSER SCALE_FILTER) += \ 207 $(HEVC_TESTS_10BIT) \ 208 $(HEVC_TESTS_422_10BIT) \ 209 $(HEVC_TESTS_422_10BIN) \ 210 $(HEVC_TESTS_444_12BIT) \ 211 212fate-hevc-paramchange-yuv420p-yuv420p10: CMD = framecrc -vsync passthrough -i $(TARGET_SAMPLES)/hevc/paramchange_yuv420p_yuv420p10.hevc -sws_flags area+accurate_rnd+bitexact 213FATE_HEVC-$(call FRAMECRC, HEVC, HEVC, HEVC_PARSER SCALE_FILTER LARGE_TESTS) += fate-hevc-paramchange-yuv420p-yuv420p10 214 215tests/data/hevc-mp4.mov: TAG = GEN 216tests/data/hevc-mp4.mov: ffmpeg$(PROGSSUF)$(EXESUF) | tests/data 217 $(M)$(TARGET_EXEC) $(TARGET_PATH)/$< -nostdin \ 218 -i $(TARGET_SAMPLES)/hevc-conformance/WPP_A_ericsson_MAIN10_2.bit -c copy -flags +bitexact $(TARGET_PATH)/$@ -y 2>/dev/null 219 220FATE_HEVC-$(call ALLYES, HEVC_DEMUXER MOV_DEMUXER HEVC_PARSER HEVC_MP4TOANNEXB_BSF MOV_MUXER HEVC_MUXER) += fate-hevc-bsf-mp4toannexb 221fate-hevc-bsf-mp4toannexb: tests/data/hevc-mp4.mov 222fate-hevc-bsf-mp4toannexb: CMD = md5 -i $(TARGET_PATH)/tests/data/hevc-mp4.mov -c:v copy -fflags +bitexact -f hevc 223fate-hevc-bsf-mp4toannexb: CMP = oneline 224fate-hevc-bsf-mp4toannexb: REF = 1873662a3af1848c37e4eb25722c8df9 225 226fate-hevc-skiploopfilter: CMD = framemd5 -skip_loop_filter nokey -i $(TARGET_SAMPLES)/hevc-conformance/SAO_D_Samsung_5.bit -sws_flags bitexact 227FATE_HEVC-$(call FRAMEMD5, HEVC, HEVC, HEVC_PARSER) += fate-hevc-skiploopfilter 228 229# this sample has two stsd entries and needs to reload extradata 230FATE_HEVC-$(call FRAMEMD5, MOV, HEVC, SCALE_FILTER) += fate-hevc-extradata-reload 231fate-hevc-extradata-reload: CMD = framemd5 -i $(TARGET_SAMPLES)/hevc/extradata-reload-multi-stsd.mov -sws_flags bitexact 232 233fate-hevc-paired-fields: CMD = probeframes -show_entries frame=interlaced_frame,top_field_first $(TARGET_SAMPLES)/hevc/paired_fields.hevc 234FATE_HEVC_FFPROBE-$(call DEMDEC, HEVC, HEVC) += fate-hevc-paired-fields 235 236fate-hevc-monochrome-crop: CMD = probeframes -show_entries frame=width,height:stream=width,height $(TARGET_SAMPLES)/hevc/hevc-monochrome.hevc 237FATE_HEVC_FFPROBE-$(call PARSERDEMDEC, HEVC, HEVC, HEVC) += fate-hevc-monochrome-crop 238 239fate-hevc-hdr10-plus-metadata: CMD = probeframes -show_entries frame=side_data_list $(TARGET_SAMPLES)/hevc/hdr10_plus_h265_sample.hevc 240FATE_HEVC_FFPROBE-$(call DEMDEC, HEVC, HEVC) += fate-hevc-hdr10-plus-metadata 241 242fate-hevc-hdr-vivid-metadata: CMD = probeframes -show_entries frame=side_data_list $(TARGET_SAMPLES)/hevc/hdr_vivid_h265_sample.hevc 243FATE_HEVC_FFPROBE-$(call PARSERDEMDEC, HEVC, HEVC, HEVC) += fate-hevc-hdr-vivid-metadata 244 245fate-hevc-dv-rpu: CMD = probeframes -show_entries frame=side_data_list -select_streams 0 -read_intervals "%+\#2" $(TARGET_SAMPLES)/hevc/dv84.mov 246FATE_HEVC_FFPROBE-$(call DEMDEC, MOV, HEVC) += fate-hevc-dv-rpu 247 248fate-hevc-two-first-slice: CMD = threads=2 framemd5 -i $(TARGET_SAMPLES)/hevc/two_first_slice.mp4 -sws_flags bitexact -t 00:02.00 -an 249FATE_HEVC-$(call FRAMEMD5, MOV, HEVC) += fate-hevc-two-first-slice 250 251fate-hevc-cabac-tudepth: CMD = framecrc -flags unaligned -i $(TARGET_SAMPLES)/hevc/cbf_cr_cb_TUDepth_4_circle.h265 -pix_fmt yuv444p 252FATE_HEVC-$(call FRAMECRC, HEVC, HEVC) += fate-hevc-cabac-tudepth 253 254fate-hevc-small422chroma: CMD = framecrc -flags unaligned -i $(TARGET_SAMPLES)/hevc/food.hevc -pix_fmt yuv422p10le -vf scale 255FATE_HEVC-$(call FRAMECRC, HEVC, HEVC, HEVC_PARSER SCALE_FILTER) += fate-hevc-small422chroma 256 257FATE_SAMPLES_AVCONV += $(FATE_HEVC-yes) 258FATE_SAMPLES_FFPROBE += $(FATE_HEVC_FFPROBE-yes) 259 260fate-hevc: $(FATE_HEVC-yes) $(FATE_HEVC_FFPROBE-yes) 261