| 1 | use nihav_core::codecs::RegisteredDecoders; |
| 2 | use nihav_core::demuxers::RegisteredDemuxers; |
| 3 | use nihav_codec_support::test::dec_video::*; |
| 4 | use nihav_commonfmt::generic_register_all_demuxers; |
| 5 | use crate::itu_register_all_decoders; |
| 6 | |
| 7 | use super::raw_demux::RawH264DemuxerCreator; |
| 8 | |
| 9 | const PREFIX: &str = "assets/ITU/h264-conformance/"; |
| 10 | |
| 11 | fn test_files(names: &[(&str, [u32; 4])]) { |
| 12 | let mut dmx_reg = RegisteredDemuxers::new(); |
| 13 | dmx_reg.add_demuxer(&RawH264DemuxerCreator{}); |
| 14 | generic_register_all_demuxers(&mut dmx_reg); |
| 15 | let mut dec_reg = RegisteredDecoders::new(); |
| 16 | itu_register_all_decoders(&mut dec_reg); |
| 17 | |
| 18 | for (name, hash) in names.iter() { |
| 19 | let test_name = format!("{}{}", PREFIX, name); |
| 20 | println!("Testing {}", test_name); |
| 21 | test_decoding("rawh264", "h264", &test_name, None, &dmx_reg, &dec_reg, ExpectedTestResult::MD5(*hash)); |
| 22 | } |
| 23 | } |
| 24 | |
| 25 | const GENERAL_TEST_STREAMS: &[(&str, [u32; 4])] = &[ |
| 26 | ("NL1_Sony_D.jsv", [0xD4BB8D98, 0x0C1377EE, 0x45515763, 0xAE7989FD]), |
| 27 | ("SVA_NL1_B.264", [0xB5626983, 0xAC087749, 0x7FFF9A4B, 0x10D2F1D4]), |
| 28 | ("NL2_Sony_H.jsv", [0x48D8380C, 0xDB7EFF52, 0x116C1AAD, 0xDBC583F5]), |
| 29 | ("SVA_NL2_E.264", [0xB47E932D, 0x43628801, 0x3B8453D9, 0xA1D0F60D]), |
| 30 | ("BA1_Sony_D.jsv", [0x114D1CF9, 0x4A2FCAFF, 0xDA0CF1B4, 0x9964BF3D]), |
| 31 | ("SVA_BA1_B.264", [0xDAB92AA2, 0x145AB44A, 0xBAB2BEB2, 0x868DD326]), |
| 32 | ("BA2_Sony_F.jsv", [0x124D2830, 0x7B057028, 0x12A374CF, 0xC9AAD615]), |
| 33 | ("SVA_BA2_D.264", [0x66130B14, 0x295574BF, 0x35B725A8, 0xEADED3AE]), |
| 34 | ("BA_MW_D.264", [0x7D5D351A, 0xD0616402, 0x94BF43A4, 0x3150FBCA]), |
| 35 | ("BANM_MW_D.264", [0xE637D38E, 0xD004DF35, 0x40218E3D, 0x84B43E42]), |
| 36 | ("BA1_FT_C.264", [0x8598CFC0, 0x6EDE33D4, 0xF24D8552, 0x28E5C8BB]), |
| 37 | ("NLMQ1_JVC_C.264", [0xFFCABB64, 0x192CED39, 0x90872B46, 0x70AF05EB]), |
| 38 | ("NLMQ2_JVC_C.264", [0x90B70FBA, 0xA5CA679E, 0xC9BF5E01, 0x1DDBA8F9]), |
| 39 | ("BAMQ1_JVC_C.264", [0x2F4F0B86, 0xC76F0356, 0x491CE56D, 0x6331E885]), |
| 40 | ("BAMQ2_JVC_C.264", [0xE3F5D5B0, 0x774B5537, 0x0745F2D0, 0x4F009575]), |
| 41 | ("SVA_Base_B.264", [0x97F3F1F5, 0xB4034C8A, 0xBC29EF43, 0xE752005C]), |
| 42 | ("SVA_FM1_E.264", [0x079F354D, 0xAC1204EE, 0x1C31DCAE, 0xD421E99C]), |
| 43 | ("BASQP1_Sony_C.jsv", [0x630F0900, 0x8D248A40, 0xC3E04F7E, 0x43351EC6]), |
| 44 | /*"FM1_BT_B.h264", |
| 45 | "FM2_SVA_C.264", |
| 46 | "FM1_FT_E.264",*/ //special slice modes |
| 47 | ("CI_MW_D.264", [0x0EB95292, 0xAD9FC21C, 0x89D93F8B, 0x049E451A]), |
| 48 | ("SVA_CL1_E.264", [0x5723A151, 0x8DE9FADC, 0xA7499C5B, 0xA34DA7C4]), |
| 49 | ("CI1_FT_B.264", [0x16F329D0, 0x196938FD, 0xB1AB2402, 0x5B208CFD]), |
| 50 | ("CVFC1_Sony_C.jsv", [0x4A8F8461, 0xD42A83C5, 0x126C4E5E, 0x5B2060D6]), |
| 51 | ("AUD_MW_E.264", [0xE96FE505, 0x4DE0329A, 0x8868D060, 0x03375CDB]), |
| 52 | ("MIDR_MW_D.264", [0xD87BFF88, 0xB2C5B96C, 0xCB291EF6, 0x8A45BBC2]), |
| 53 | ("NRF_MW_E.264", [0xA8635615, 0xB50C5A16, 0xDECC555A, 0x3C6C81C8]), |
| 54 | ("MPS_MW_A.264", [0x88BB5A51, 0x3BD7F3CC, 0x8190C7C0, 0x3688AB22]), |
| 55 | ("CVBS3_Sony_C.jsv", [0xC7794005, 0xC8DA6D8D, 0xEB435ECE, 0x07908055]), |
| 56 | ("BA3_SVA_C.264", [0xBF1AE77A, 0x094AA1E7, 0x5316BE72, 0x5B46EF1B]), |
| 57 | ("SL1_SVA_B.264", [0xA44D8BAF, 0x7290B175, 0xC59A308D, 0x5C0D1E4C]), |
| 58 | ("NL3_SVA_E.264", [0x428B0604, 0xFF02E0A0, 0x0DA08577, 0xDA0EEB76]), |
| 59 | ("cvmp_mot_frm0_full_B.26l", [0x9F43ED02, 0xC0C322E8, 0x9FCAB584, 0xC9B31EC4]), |
| 60 | // no direct mention |
| 61 | //"FM2_SVA_B.264", //special slice mode |
| 62 | ]; |
| 63 | #[test] |
| 64 | fn test_h264_general() { |
| 65 | test_files(GENERAL_TEST_STREAMS); |
| 66 | } |
| 67 | |
| 68 | const I_PCM_TEST_STREAMS: &[(&str, [u32; 4])] = &[ |
| 69 | ("CVPCMNL1_SVA_C.264", [0x5C1FD0F6, 0x8E875200, 0x711FEBF1, 0xD683E58F]), |
| 70 | ("CVPCMNL2_SVA_C.264", [0xAF1F1DBE, 0x1DD6569C, 0xB02271F0, 0x53217D88]), |
| 71 | ]; |
| 72 | #[test] |
| 73 | fn test_h264_ipcm() { |
| 74 | test_files(I_PCM_TEST_STREAMS); |
| 75 | } |
| 76 | |
| 77 | const MMCO_TEST_STREAMS: &[(&str, [u32; 4])] = &[ |
| 78 | ("MR1_BT_A.h264", [0x0402E92F, 0xD2F61B66, 0xCD1FC641, 0x07A73A1D]), |
| 79 | ("MR2_TANDBERG_E.264", [0x60A8C721, 0xFC5E83F7, 0xCA83FDAF, 0x4AD1509F]), |
| 80 | ("MR3_TANDBERG_B.264", [0x040200B1, 0xC35A2D5A, 0xB07FDFD5, 0xBC5FD5C2]), |
| 81 | ("MR4_TANDBERG_C.264", [0x82ADC86A, 0x9F682F8A, 0x45A68C7C, 0xAAF5E116]), |
| 82 | ("MR5_TANDBERG_C.264", [0x3570D5C6, 0xA4FD9C71, 0x55AC43D9, 0xF806C46D]), |
| 83 | ("MR1_MW_A.264", [0x479C6F4E, 0x73FEA343, 0x69F72425, 0x72EAD53C]), |
| 84 | ("MR2_MW_A.264", [0xE1E93E65, 0x96AF2EFD, 0x0E7D0FE5, 0x94D5BE85]), |
| 85 | /*"MR6_BT_B.h264", |
| 86 | "MR7_BT_B.h264", |
| 87 | "MR8_BT_B.h264",*/ // interlaced coding |
| 88 | ("HCBP1_HHI_A.264", [0x2AD73C01, 0x57EA7763, 0x0F0BDE82, 0x17E27DC2]), |
| 89 | ("HCBP2_HHI_A.264", [0x93F3C560, 0x42519B03, 0x1A4F03B1, 0xFD2C3A84]), |
| 90 | ]; |
| 91 | #[test] |
| 92 | fn test_h264_mmco() { |
| 93 | test_files(MMCO_TEST_STREAMS); |
| 94 | } |
| 95 | |
| 96 | const WP_TEST_STREAMS: &[(&str, [u32; 4])] = &[ |
| 97 | ("CVWP5_TOSHIBA_E.264", [0x9663DA55, 0xE5EF516C, 0x8BF0CA0B, 0xCC0ABBB8]), |
| 98 | ("CVWP1_TOSHIBA_E.264", [0xE8868CA5, 0xE934AD77, 0x9132CDB3, 0xC71BE000]), |
| 99 | ("CVWP2_TOSHIBA_E.264", [0xD06C81B6, 0x31FD4381, 0xF5AFB345, 0x4AF650AC]), |
| 100 | ("CVWP3_TOSHIBA_E.264", [0x909A1FC8, 0x63D649CC, 0x4F091CBB, 0x058ADA78]), |
| 101 | ]; |
| 102 | #[test] |
| 103 | fn test_h264_wp() { |
| 104 | test_files(WP_TEST_STREAMS); |
| 105 | } |
| 106 | |
| 107 | /*const FIELD_CODING_TEST_STREAMS: &[(&str, [u32; 4])] = &[ |
| 108 | "CVNLFI1_Sony_C.jsv", |
| 109 | "CVNLFI2_Sony_H.jsv", |
| 110 | "Sharp_MP_Field_1_B.jvt", |
| 111 | "Sharp_MP_Field_2_B.jvt", |
| 112 | "Sharp_MP_Field_3_B.jvt", |
| 113 | "CVFI1_Sony_D.jsv", |
| 114 | "CVFI2_Sony_H.jsv", |
| 115 | "FI1_Sony_E.jsv", |
| 116 | "CVFI1_SVA_C.264", |
| 117 | "CVFI2_SVA_C.264", |
| 118 | "cvmp_mot_fld0_full_B.26l", |
| 119 | "CVMP_MOT_FLD_L30_B.26l", |
| 120 | ]; |
| 121 | #[test] |
| 122 | fn test_h264_field() { |
| 123 | test_files(FIELD_CODING_TEST_STREAMS); |
| 124 | }*/ |
| 125 | |
| 126 | /*const FRAME_FIELD_CODING_TEST_STREAMS: &[(&str, [u32; 4])] = &[ |
| 127 | "Sharp_MP_PAFF_1r2.jvt", |
| 128 | "CVPA1_TOSHIBA_B.264", |
| 129 | "cvmp_mot_picaff0_full_B.26l", |
| 130 | ]; |
| 131 | #[test] |
| 132 | fn test_h264_frame_field() { |
| 133 | test_files(FRAME_FIELD_CODING_TEST_STREAMS); |
| 134 | }*/ |
| 135 | |
| 136 | /*const MBAFF_TEST_STREAMS: &[(&str, [u32; 4])] = &[ |
| 137 | "CVMANL1_TOSHIBA_B.264", |
| 138 | "CVMANL2_TOSHIBA_B.264", |
| 139 | "CVMA1_Sony_D.jsv", |
| 140 | "CVMA1_TOSHIBA_B.264", |
| 141 | "CVMAQP2_Sony_G.jsv", |
| 142 | "CVMAQP3_Sony_D.jsv", |
| 143 | "CVMAPAQP3_Sony_E.jsv", |
| 144 | "cvmp_mot_mbaff0_full_B.26l", |
| 145 | "CVMP_MOT_FRM_L31_B.26l", |
| 146 | ]; |
| 147 | #[test] |
| 148 | fn test_h264_mbaff() { |
| 149 | test_files(MBAFF_CODING_TEST_STREAMS); |
| 150 | }*/ |
| 151 | |
| 152 | /*const S_PICTURE_TEST_STREAMS: &[(&str, [u32; 4])] = &[ |
| 153 | "sp1_bt_a.h264", |
| 154 | "sp2_bt_b.h264", |
| 155 | ]; |
| 156 | #[test] |
| 157 | fn test_h264_s_picture() { |
| 158 | test_files(S_PICTURE_TEST_STREAMS); |
| 159 | }*/ |
| 160 | |
| 161 | const LONG_SEQUENCE_TEST_STREAMS: &[(&str, [u32; 4])] = &[ |
| 162 | ("LS_SVA_D.264", [0x9C53BE4B, 0x1DEDCD45, 0x98D30293, 0xF01C7BFE]), |
| 163 | ]; |
| 164 | #[test] |
| 165 | fn test_h264_long_sequence() { |
| 166 | test_files(LONG_SEQUENCE_TEST_STREAMS); |
| 167 | } |
| 168 | |
| 169 | const SEI_VUI_TEST_STREAMS: &[(&str, [u32; 4])] = &[ |
| 170 | ("CVSE2_Sony_B.jsv", [0xDD660FB4, 0x07FEB42E, 0xCD3AF06B, 0x42FDA90D]), |
| 171 | ("CVSE3_Sony_H.jsv", [0x14DBB021, 0x2CC75879, 0xAA2C6282, 0x14FD2FFE]), |
| 172 | ("CVSEFDFT3_Sony_E.jsv", [0xABEDFA7A, 0xAAAADE32, 0xE5E5CF35, 0x9A0DE4EA]), |
| 173 | ]; |
| 174 | #[test] |
| 175 | fn test_h264_sei_vui() { |
| 176 | test_files(SEI_VUI_TEST_STREAMS); |
| 177 | } |
| 178 | |
| 179 | const CABAC_TEST_STREAMS: &[(&str, [u32; 4])] = &[ |
| 180 | ("CANL1_TOSHIBA_G.264", [0xAFA07274, 0x6B16BD96, 0xF3152B45, 0xE2F2881E]), |
| 181 | ("CANL1_Sony_E.jsv", [0x27F1D5D3, 0x89E110FC, 0x320788BF, 0x78006DB0]), |
| 182 | ("CANL2_Sony_E.jsv", [0x3A28438E, 0x3E0795DE, 0xAED795FC, 0xFEFBC833]), |
| 183 | ("CANL3_Sony_C.jsv", [0xFE2DC3CB, 0xA055044C, 0x739911B0, 0xE6AA66BA]), |
| 184 | ("CANL1_SVA_B.264", [0xB02DEFCB, 0x741C0E98, 0x2313C574, 0x9F2008ED]), |
| 185 | ("CANL2_SVA_B.264", [0xB02DEFCB, 0x741C0E98, 0x2313C574, 0x9F2008ED]), |
| 186 | ("CANL3_SVA_B.264", [0x04A6DE98, 0x4EF88D1B, 0x8C1B26FC, 0x8F33A425]), |
| 187 | ("CANL4_SVA_B.264", [0x19cee0ac, 0xcfbebacc, 0x57aa4cf0, 0x3e4ef26d]), |
| 188 | ("CABA1_Sony_D.jsv", [0x24B155A4, 0x00DC10D1, 0x1D45A3AA, 0xDF61AE25]), |
| 189 | ("CABA2_Sony_E.jsv", [0x3731F0F1, 0xACE3AD91, 0x76093A7B, 0x46347CEA]), |
| 190 | ("CABA3_Sony_C.jsv", [0x873A96BF, 0x9359056B, 0x3BF8D878, 0x469B0106]), |
| 191 | ("CABA3_TOSHIBA_E.264", [0x13651D01, 0xC5B533E6, 0xB7AA132B, 0xAE7669ED]), |
| 192 | ("CABA1_SVA_B.264", [0x2F5CABD5, 0xBB4954C0, 0x386CAFD8, 0xA9AA782A]), |
| 193 | ("CABA2_SVA_B.264", [0x6D4277A7, 0xFC70ED1F, 0xBE3C5F10, 0xB0A70671]), |
| 194 | ("CABA3_SVA_B.264", [0x0F6066DD, 0xFAED6801, 0x8B3FEE8C, 0xFE8A2E1D]), |
| 195 | ("camp_mot_frm0_full.26l", [0x22D837CA, 0x60037CC6, 0xA73AF607, 0x969E5422]), |
| 196 | ]; |
| 197 | #[test] |
| 198 | fn test_h264_cabac() { |
| 199 | test_files(CABAC_TEST_STREAMS); |
| 200 | } |
| 201 | |
| 202 | const CABAC_INIT_TEST_STREAMS: &[(&str, [u32; 4])] = &[ |
| 203 | ("CABACI3_Sony_B.jsv", [0x5AFF6524, 0xAE5642C9, 0xE26D44CC, 0xE5BFBF02]), |
| 204 | ]; |
| 205 | #[test] |
| 206 | fn test_h264_cabac_init() { |
| 207 | test_files(CABAC_INIT_TEST_STREAMS); |
| 208 | } |
| 209 | |
| 210 | const CABAC_MB_QPTEST_STREAMS: &[(&str, [u32; 4])] = &[ |
| 211 | ("CAQP1_Sony_B.jsv", [0xCAC07EAA, 0xBD141764, 0xD64CF9DE, 0x0230A92E]), |
| 212 | ("CACQP3_Sony_D.jsv", [0x9E3036F3, 0x79705C9C, 0x32E37D44, 0xF66E5B3A]), |
| 213 | ]; |
| 214 | #[test] |
| 215 | fn test_h264_cabac_mb_qp() { |
| 216 | test_files(CABAC_MB_QPTEST_STREAMS); |
| 217 | } |
| 218 | |
| 219 | const CABAC_SLICE_TEST_STREAMS: &[(&str, [u32; 4])] = &[ |
| 220 | ("CABAST3_Sony_E.jsv", [0xDDA7F376, 0xA040B262, 0x79F6C7FB, 0x04E078BA]), |
| 221 | ("CABASTBR3_Sony_B.jsv", [0xE3A61D43, 0xCED165BC, 0xB9A745E0, 0x52F9A2A6]), |
| 222 | ]; |
| 223 | #[test] |
| 224 | fn test_h264_cabac_slice() { |
| 225 | test_files(CABAC_SLICE_TEST_STREAMS); |
| 226 | } |
| 227 | |
| 228 | const CABAC_I_PCM_TEST_STREAMS: &[(&str, [u32; 4])] = &[ |
| 229 | ("CAPCMNL1_Sand_E.264", [0xEE9968EE, 0xEFE935F0, 0x45C6B70B, 0xE51691EB]), |
| 230 | ("CAPCM1_Sand_E.264", [0xCA073CA1, 0x06E70D5C, 0xD51F6748, 0x5846A5B1]), |
| 231 | ("CAPM3_Sony_D.jsv", [0xEA5C66FB, 0xD81D8A80, 0xFC876482, 0xF6A2DEC7]), |
| 232 | ]; |
| 233 | #[test] |
| 234 | fn test_h264_cabac_ipcm() { |
| 235 | test_files(CABAC_I_PCM_TEST_STREAMS); |
| 236 | } |
| 237 | |
| 238 | const CABAC_MMCO_TEST_STREAMS: &[(&str, [u32; 4])] = &[ |
| 239 | /*"MR9_BT_B.h264",*/ //MBAFF |
| 240 | ("HCMP1_HHI_A.264", [0x18486B98, 0xA55E03D3, 0x8F57EF2B, 0x031FA660]), |
| 241 | ]; |
| 242 | #[test] |
| 243 | fn test_h264_cabac_mmco() { |
| 244 | test_files(CABAC_MMCO_TEST_STREAMS); |
| 245 | } |
| 246 | |
| 247 | const CABAC_WP_TEST_STREAMS: &[(&str, [u32; 4])] = &[ |
| 248 | ("CAWP1_TOSHIBA_E.264", [0x87946607, 0xD1D774C2, 0xDA8EC863, 0x2710C84A]), |
| 249 | ("CAWP5_TOSHIBA_E.264", [0x9663DA55, 0xE5EF516C, 0x8BF0CA0B, 0xCC0ABBB8]), |
| 250 | ]; |
| 251 | #[test] |
| 252 | fn test_h264_cabac_wp() { |
| 253 | test_files(CABAC_WP_TEST_STREAMS); |
| 254 | } |
| 255 | |
| 256 | /*const CABAC_FIELD_TEST_STREAMS: &[(&str, [u32; 4])] = &[ |
| 257 | "CABREF3_Sand_D.264", |
| 258 | "CAFI1_SVA_C.264", |
| 259 | "camp_mot_fld0_full.26l", |
| 260 | ]; |
| 261 | #[test] |
| 262 | fn test_h264_cabac_field_() { |
| 263 | test_files(CABAC_FIELD_TEST_STREAMS); |
| 264 | }*/ |
| 265 | |
| 266 | /*const CABAC_FIELD_FRAME_TEST_STREAMS: &[(&str, [u32; 4])] = &[ |
| 267 | "Sharp_MP_PAFF_2.jvt", |
| 268 | "CAPA1_TOSHIBA_B.264", |
| 269 | "camp_mot_picaff0_full.26l", |
| 270 | ]; |
| 271 | #[test] |
| 272 | fn test_h264_cabac_field_frame() { |
| 273 | test_files(CABAC_FIELD_FRAMETEST_STREAMS); |
| 274 | }*/ |
| 275 | |
| 276 | /*const CABAC_MBAFF_TEST_STREAMS: &[(&str, [u32; 4])] = &[ |
| 277 | "CAMANL1_TOSHIBA_B.264", |
| 278 | "CAMANL2_TOSHIBA_B.264", |
| 279 | "CANLMA2_Sony_C.jsv", |
| 280 | "CANLMA3_Sony_C.jsv", |
| 281 | "CAMA1_Sony_C.jsv", |
| 282 | "CAMA1_TOSHIBA_B.264", |
| 283 | "CAMANL3_Sand_E.264", |
| 284 | "CAMA3_Sand_E.264", |
| 285 | "CAMASL3_Sony_B.jsv", |
| 286 | "CAMACI3_Sony_C.jsv", |
| 287 | "camp_mot_mbaff0_full.26l", |
| 288 | "CAMP_MOT_MBAFF_L30.26l", |
| 289 | "CAMP_MOT_MBAFF_L31.26l", |
| 290 | "CAPAMA3_Sand_F.264", |
| 291 | "cama1_vtc_c.avc", |
| 292 | "cama2_vtc_b.avc", |
| 293 | "cama3_vtc_b.avc", |
| 294 | ]; |
| 295 | #[test] |
| 296 | fn test_h264_cabac_mbaff() { |
| 297 | test_files(CABAC_MBAFF_TEST_STREAMS); |
| 298 | }*/ |
| 299 | |
| 300 | /*const CABAC_CAVLC_TEST_STREAMS: &[(&str, [u32; 4])] = &[ |
| 301 | "CVCANLMA2_Sony_C.jsv", |
| 302 | ]; |
| 303 | #[test] |
| 304 | fn test_h264_cabac_cavlc() { |
| 305 | test_files(CABAC_CAVLC_TEST_STREAMS); |
| 306 | }*/ // contains MBAFF |
| 307 | |
| 308 | const CABAC_PRED_BW_TEST_STREAMS: &[(&str, [u32; 4])] = &[ |
| 309 | ("src19td.IBP.264", [0x45C0D420, 0x524779D5, 0xF5D8F8D1, 0xFB02218B]), |
| 310 | ]; |
| 311 | #[test] |
| 312 | fn test_h264_cabac_pred_bw() { |
| 313 | test_files(CABAC_PRED_BW_TEST_STREAMS); |
| 314 | } |
| 315 | |
| 316 | const FREXT_420_8_TEST_STREAMS: &[(&str, [u32; 4])] = &[ |
| 317 | ("FRext/FRExt1_Panasonic.avc", [0x2383599D, 0xA01FAE95, 0xCEE2C970, 0xD88CFA93]), |
| 318 | ("FRext/FRExt3_Panasonic.avc", [0x3C85643C, 0xE98FD834, 0xA1DA2600, 0x0307F1AF]), |
| 319 | ("FRext/HCAFR1_HHI.264", [0xB5B74CA7, 0xBA23DFA4, 0xEF89E066, 0x299EC511]), |
| 320 | //("FRext/HCAFF1_HHI.264", [0;4]), //PAFF |
| 321 | //("FRext/HCAMFF1_HHI.264", [0;4]), //MBAFF |
| 322 | //("FRext/FRExt2_Panasonic.avc", [0;4]), //PAFF |
| 323 | //("FRext/FRExt4_Panasonic.avc", [0;4]), //MBAFF |
| 324 | ("FRext/HPCANL_BRCM_C.264", [0x8B11529D, 0x9FF96CB8, 0xACC7EDCD, 0x81EDB1E6]), |
| 325 | ("FRext/HPCA_BRCM_C.264", [0xC38BCFE1, 0xC5A6A1BF, 0x54F08947, 0x23943FAE]), |
| 326 | /*("FRext/HPCAFLNL_BRCM_C.264", [0;4]), //PAFF |
| 327 | ("FRext/HPCAFL_BRCM_C.264", [0;4]),*/ |
| 328 | ("FRext/HCAFR2_HHI.264", [0x0CBD7BBF, 0xE29B3C53, 0x64CF3F10, 0x34B1FF5A]), |
| 329 | ("FRext/HCAFR3_HHI.264", [0x5842BBA0, 0x6C01267B, 0xB093FD66, 0xD36CBA66]), |
| 330 | ("FRext/HCAFR4_HHI.264", [0x6E80B189, 0xAAE83055, 0x6F51F4EE, 0xC3BEE5C8]), |
| 331 | ("FRext/HPCADQ_BRCM_B.264", [0x976A176F, 0x89296F2B, 0x14F2141D, 0x74D684BB]), |
| 332 | ("FRext/HPCALQ_BRCM_B.264", [0x976A176F, 0x89296F2B, 0x14F2141D, 0x74D684BB]), |
| 333 | //("FRext/HPCAMAPALQ_BRCM_B.264", [0;4]), //MBAFF |
| 334 | ("FRext/HPCV_BRCM_A.264", [0xEB0EBC5D, 0xA5996EE1, 0x5F6B290F, 0x4F372F21]), |
| 335 | ("FRext/HPCVNL_BRCM_A.264", [0x441E6C4F, 0x861B69E6, 0xC007EEFB, 0x820D6494]), |
| 336 | /*("FRext/HPCVFL_BRCM_A.264", [0;4]), //PAFF |
| 337 | ("FRext/HPCVFLNL_BRCM_A.264", [0;4]),*/ |
| 338 | //("FRext/HPCVMOLQ_BRCM_B.264", [0;4]), //grayscale |
| 339 | //("FRext/HPCAMOLQ_BRCM_B.264", [0;4]), //grayscale |
| 340 | ("FRext/HPCAQ2LQ_BRCM_B.264", [0xEF0F86EC, 0x8C1C79BA, 0xFA5DFB57, 0x85C2C4FC]), |
| 341 | ("FRext/Freh1_B.264", [0x852901B5, 0xC0F54669, 0xD32B9487, 0x40A2BAD9]), |
| 342 | ("FRext/Freh2_B.264", [0x28432234, 0x311A2C63, 0x6FE630A8, 0x007AA51E]), |
| 343 | ("FRext/freh3.264", [0x94A77E3E, 0xAE7391C7, 0x555071A9, 0xFD67FB69]), |
| 344 | //("FRext/freh4.264", [0;4]), //PAFF |
| 345 | //("FRext/freh5.264", [0;4]), //MBAFF |
| 346 | //("FRext/freh6.264", [0;4]), //PAFF |
| 347 | //("FRext/Freh7_B.264", [0;4]), //PAFF |
| 348 | ("FRext/freh8.264", [0x300C9E08, 0xED69F361, 0xF46A3BF5, 0x79D37EF1]), |
| 349 | ("FRext/freh9.264", [0x8B3C12A3, 0xC244D147, 0xD71A4F0E, 0x7109393D]), |
| 350 | //("FRext/freh10.264", [0;4]), //PAFF |
| 351 | //("FRext/freh11.264", [0;4]), //PAFF |
| 352 | ("FRext/Freh12_B.264", [0x73DEE4EE, 0x216B40CB, 0xF7647E2B, 0xCD2BBBD3]), |
| 353 | /*("FRext/FREXT01_JVC_D.264", [0;4]), //MBAFF |
| 354 | ("FRext/FREXT02_JVC_C.264", [0;4]),*/ |
| 355 | ("FRext/FRExt_MMCO4_Sony_B.264", [0xD4048185, 0xA358D7E7, 0x95EA950D, 0x27C66788]), |
| 356 | |
| 357 | ("FRext/test8b43.264", [0x921C816C, 0x14170EAD, 0x03C19C5C, 0x9ED3C0A4]), |
| 358 | ]; |
| 359 | #[test] |
| 360 | fn test_h264_frext_420_8() { |
| 361 | test_files(FREXT_420_8_TEST_STREAMS); |
| 362 | } |
| 363 | |
| 364 | /*const FREXT_420_10I_TEST_STREAMS: &[(&str, [u32; 4])] = &[ |
| 365 | "FRext/PPH10I1_Panasonic_A.264", |
| 366 | "FRext/PPH10I2_Panasonic_A.264", |
| 367 | "FRext/PPH10I3_Panasonic_A.264", |
| 368 | "FRext/PPH10I4_Panasonic_A.264", |
| 369 | "FRext/PPH10I5_Panasonic_A.264", |
| 370 | "FRext/PPH10I6_Panasonic_A.264", |
| 371 | "FRext/PPH10I7_Panasonic_A.264", |
| 372 | ]; |
| 373 | #[test] |
| 374 | fn test_h264_frext_420_10i() { |
| 375 | test_files(FREXT_420_10I_TEST_STREAMS); |
| 376 | }*/ |