On Thu, May 28, 2020 at 11:57:38PM +0100, Kieran Kunhya wrote: > > > > More generally though (outside this unsafe flag case) > > i do disagree with your argument a bit, performance does matter. > > Iam regularly reminded of that for example, so much software becomes > > slower on each upgrade with few if any features added the real users > > care about. Just to pick one, the editor i use to write replies in mutt > > is slower to close than before i upgraded the OS. > > > > Also again to stay general here, this does not apply to the unsafe flag. > > speed / cpu load does add up. Slower code means more CO2 emissions if > > the software is used alot. > > If you want a real example insetad of this flag where we could improve > > IIRC there was some code iterating over options in the iteration over > > options resulting in some sort of O(n^3) or so. Thats from memory though > > would need to check where that was exactly but thats something we should > > fix. > > > > Please provide evidence that the H.264 Decoder has got slower.
while, what you quote above was not about h264 at all let me provide benchmarks of most fate h264 samples with and without flag_unsafe the script that made that is after it. a reply to the 2nd part of your mail is also below h264-444/444_10bit_cabac.h264 1874813 decicycles in ff_h2645_packet_split, 16 runs, 0 skips 658715 decicycles in ff_h2645_packet_split, 16 runs, 0 skips h264-444/444_10bit_cavlc.h264 1928995 decicycles in ff_h2645_packet_split, 16 runs, 0 skips 676244 decicycles in ff_h2645_packet_split, 16 runs, 0 skips h264-444/444_8bit_cabac.h264 1975800 decicycles in ff_h2645_packet_split, 16 runs, 0 skips 666601 decicycles in ff_h2645_packet_split, 16 runs, 0 skips h264-444/444_8bit_cavlc.h264 1957577 decicycles in ff_h2645_packet_split, 16 runs, 0 skips 719418 decicycles in ff_h2645_packet_split, 16 runs, 0 skips h264-444/444_9bit_cabac.h264 1957739 decicycles in ff_h2645_packet_split, 16 runs, 0 skips 633440 decicycles in ff_h2645_packet_split, 16 runs, 0 skips h264-444/444_9bit_cavlc.h264 1943795 decicycles in ff_h2645_packet_split, 16 runs, 0 skips 702884 decicycles in ff_h2645_packet_split, 16 runs, 0 skips h264-444/i444_hybrid_+i8x8_+pcm.264 1668108 decicycles in ff_h2645_packet_split, 15 runs, 1 skips 399896 decicycles in ff_h2645_packet_split, 15 runs, 1 skips h264-444/old_i444_lossless_+i8x8_+pcm.264 1626002 decicycles in ff_h2645_packet_split, 15 runs, 1 skips 339882 decicycles in ff_h2645_packet_split, 15 runs, 1 skips h264/attachment631-small.mp4 110095 decicycles in ff_h2645_packet_split, 512 runs, 0 skips 39631 decicycles in ff_h2645_packet_split, 509 runs, 3 skips h264/bbc2.sample.h264 1270163 decicycles in ff_h2645_packet_split, 63 runs, 1 skips 696605 decicycles in ff_h2645_packet_split, 64 runs, 0 skips h264/brokensps.flv 721112 decicycles in ff_h2645_packet_split, 64 runs, 0 skips 218294 decicycles in ff_h2645_packet_split, 64 runs, 0 skips h264-conformance/AUD_MW_E.264 674261 decicycles in ff_h2645_packet_split, 64 runs, 0 skips 61366 decicycles in ff_h2645_packet_split, 48 runs, 16 skips h264-conformance/BA1_FT_C.264 219061 decicycles in ff_h2645_packet_split, 256 runs, 0 skips 85335 decicycles in ff_h2645_packet_split, 255 runs, 1 skips h264-conformance/BA1_Sony_D.jsv 1529117 decicycles in ff_h2645_packet_split, 16 runs, 0 skips 44400 decicycles in ff_h2645_packet_split, 7 runs, 9 skips h264-conformance/BA2_Sony_F.jsv 26672 decicycles in ff_h2645_packet_split, 240 runs, 16 skips 31297 decicycles in ff_h2645_packet_split, 240 runs, 16 skips h264-conformance/BA3_SVA_C.264 1305464 decicycles in ff_h2645_packet_split, 32 runs, 0 skips 19725 decicycles in ff_h2645_packet_split, 16 runs, 16 skips h264-conformance/BAMQ1_JVC_C.264 1519809 decicycles in ff_h2645_packet_split, 32 runs, 0 skips 440427 decicycles in ff_h2645_packet_split, 32 runs, 0 skips h264-conformance/BAMQ2_JVC_C.264 1426419 decicycles in ff_h2645_packet_split, 32 runs, 0 skips 359686 decicycles in ff_h2645_packet_split, 32 runs, 0 skips h264-conformance/BA_MW_D.264 671156 decicycles in ff_h2645_packet_split, 64 runs, 0 skips 126140 decicycles in ff_h2645_packet_split, 63 runs, 1 skips h264-conformance/BANM_MW_D.264 657848 decicycles in ff_h2645_packet_split, 64 runs, 0 skips 24498 decicycles in ff_h2645_packet_split, 47 runs, 17 skips h264-conformance/BASQP1_Sony_C.jsv 2208853 decicycles in ff_h2645_packet_split, 8 runs, 0 skips 875512 decicycles in ff_h2645_packet_split, 8 runs, 0 skips h264-conformance/CABA1_Sony_D.jsv 1312540 decicycles in ff_h2645_packet_split, 32 runs, 0 skips 40815 decicycles in ff_h2645_packet_split, 16 runs, 16 skips h264-conformance/CABA1_SVA_B.264 1527961 decicycles in ff_h2645_packet_split, 16 runs, 0 skips 220576 decicycles in ff_h2645_packet_split, 13 runs, 3 skips h264-conformance/CABA2_Sony_E.jsv 185679 decicycles in ff_h2645_packet_split, 256 runs, 0 skips 31258 decicycles in ff_h2645_packet_split, 239 runs, 17 skips h264-conformance/CABA2_SVA_B.264 1581796 decicycles in ff_h2645_packet_split, 16 runs, 0 skips 27168 decicycles in ff_h2645_packet_split, 7 runs, 9 skips h264-conformance/CABA3_Sony_C.jsv 32413 decicycles in ff_h2645_packet_split, 240 runs, 16 skips 29444 decicycles in ff_h2645_packet_split, 240 runs, 16 skips h264-conformance/CABA3_SVA_B.264 1199786 decicycles in ff_h2645_packet_split, 30 runs, 2 skips 185816 decicycles in ff_h2645_packet_split, 29 runs, 3 skips h264-conformance/CABA3_TOSHIBA_E.264 69091 decicycles in ff_h2645_packet_split, 243 runs, 13 skips 34225 decicycles in ff_h2645_packet_split, 239 runs, 17 skips h264-conformance/CABACI3_Sony_B.jsv 44182 decicycles in ff_h2645_packet_split, 240 runs, 16 skips 43256 decicycles in ff_h2645_packet_split, 240 runs, 16 skips h264-conformance/CABAST3_Sony_E.jsv 1661901 decicycles in ff_h2645_packet_split, 32 runs, 0 skips 527666 decicycles in ff_h2645_packet_split, 32 runs, 0 skips h264-conformance/CABASTBR3_Sony_B.jsv 1609475 decicycles in ff_h2645_packet_split, 30 runs, 2 skips 528498 decicycles in ff_h2645_packet_split, 32 runs, 0 skips h264-conformance/CABREF3_Sand_D.264 91351 decicycles in ff_h2645_packet_split, 48 runs, 16 skips 62729 decicycles in ff_h2645_packet_split, 52 runs, 12 skips h264-conformance/CACQP3_Sony_D.jsv 135743 decicycles in ff_h2645_packet_split, 16 runs, 16 skips 24395 decicycles in ff_h2645_packet_split, 15 runs, 17 skips h264-conformance/CAFI1_SVA_C.264 102883 decicycles in ff_h2645_packet_split, 48 runs, 16 skips 117318 decicycles in ff_h2645_packet_split, 52 runs, 12 skips h264-conformance/CAMA1_Sony_C.jsv 1864106 decicycles in ff_h2645_packet_split, 8 runs, 0 skips 822695 decicycles in ff_h2645_packet_split, 8 runs, 0 skips h264-conformance/CAMA1_TOSHIBA_B.264 935579 decicycles in ff_h2645_packet_split, 64 runs, 0 skips 294390 decicycles in ff_h2645_packet_split, 63 runs, 1 skips h264-conformance/cama1_vtc_c.avc 1596550 decicycles in ff_h2645_packet_split, 8 runs, 0 skips 446127 decicycles in ff_h2645_packet_split, 8 runs, 0 skips h264-conformance/cama2_vtc_b.avc 1727483 decicycles in ff_h2645_packet_split, 8 runs, 0 skips 629693 decicycles in ff_h2645_packet_split, 8 runs, 0 skips h264-conformance/CAMA3_Sand_E.264 1434270 decicycles in ff_h2645_packet_split, 32 runs, 0 skips 271520 decicycles in ff_h2645_packet_split, 31 runs, 1 skips h264-conformance/cama3_vtc_b.avc 1800003 decicycles in ff_h2645_packet_split, 8 runs, 0 skips 671966 decicycles in ff_h2645_packet_split, 8 runs, 0 skips h264-conformance/CAMACI3_Sony_C.jsv 250590 decicycles in ff_h2645_packet_split, 11 runs, 5 skips 45072 decicycles in ff_h2645_packet_split, 11 runs, 5 skips h264-conformance/CAMANL1_TOSHIBA_B.264 964067 decicycles in ff_h2645_packet_split, 63 runs, 1 skips 318552 decicycles in ff_h2645_packet_split, 64 runs, 0 skips h264-conformance/CAMANL2_TOSHIBA_B.264 950036 decicycles in ff_h2645_packet_split, 63 runs, 1 skips 299665 decicycles in ff_h2645_packet_split, 64 runs, 0 skips h264-conformance/CAMANL3_Sand_E.264 1446538 decicycles in ff_h2645_packet_split, 32 runs, 0 skips 281052 decicycles in ff_h2645_packet_split, 30 runs, 2 skips h264-conformance/CAMASL3_Sony_B.jsv 276120 decicycles in ff_h2645_packet_split, 11 runs, 5 skips 122963 decicycles in ff_h2645_packet_split, 12 runs, 4 skips h264-conformance/camp_mot_fld0_full.26l 112387 decicycles in ff_h2645_packet_split, 48 runs, 16 skips 180032 decicycles in ff_h2645_packet_split, 61 runs, 3 skips h264-conformance/camp_mot_frm0_full.26l 1589242 decicycles in ff_h2645_packet_split, 32 runs, 0 skips 358720 decicycles in ff_h2645_packet_split, 31 runs, 1 skips h264-conformance/camp_mot_mbaff0_full.26l 1533835 decicycles in ff_h2645_packet_split, 32 runs, 0 skips 381529 decicycles in ff_h2645_packet_split, 31 runs, 1 skips h264-conformance/CAMP_MOT_MBAFF_L30.26l 1571424 decicycles in ff_h2645_packet_split, 32 runs, 0 skips 458106 decicycles in ff_h2645_packet_split, 32 runs, 0 skips h264-conformance/CAMP_MOT_MBAFF_L31.26l 1453192 decicycles in ff_h2645_packet_split, 31 runs, 1 skips 404548 decicycles in ff_h2645_packet_split, 32 runs, 0 skips h264-conformance/camp_mot_picaff0_full.26l 1368484 decicycles in ff_h2645_packet_split, 28 runs, 4 skips 307458 decicycles in ff_h2645_packet_split, 31 runs, 1 skips h264-conformance/CANL1_Sony_E.jsv 1353679 decicycles in ff_h2645_packet_split, 32 runs, 0 skips 56849 decicycles in ff_h2645_packet_split, 17 runs, 15 skips h264-conformance/CANL1_SVA_B.264 1536517 decicycles in ff_h2645_packet_split, 16 runs, 0 skips 34727 decicycles in ff_h2645_packet_split, 7 runs, 9 skips h264-conformance/CANL1_TOSHIBA_G.264 200285 decicycles in ff_h2645_packet_split, 256 runs, 0 skips 30096 decicycles in ff_h2645_packet_split, 240 runs, 16 skips h264-conformance/CANL2_Sony_E.jsv 178856 decicycles in ff_h2645_packet_split, 255 runs, 1 skips 33402 decicycles in ff_h2645_packet_split, 239 runs, 17 skips h264-conformance/CANL2_SVA_B.264 1586214 decicycles in ff_h2645_packet_split, 15 runs, 1 skips 33987 decicycles in ff_h2645_packet_split, 7 runs, 9 skips h264-conformance/CANL3_Sony_C.jsv 32458 decicycles in ff_h2645_packet_split, 240 runs, 16 skips 28836 decicycles in ff_h2645_packet_split, 240 runs, 16 skips h264-conformance/CANL3_SVA_B.264 1549698 decicycles in ff_h2645_packet_split, 16 runs, 0 skips 28014 decicycles in ff_h2645_packet_split, 7 runs, 9 skips h264-conformance/CANL4_SVA_B.264 1175757 decicycles in ff_h2645_packet_split, 29 runs, 3 skips 20128 decicycles in ff_h2645_packet_split, 15 runs, 17 skips h264-conformance/CANLMA2_Sony_C.jsv 2019460 decicycles in ff_h2645_packet_split, 16 runs, 0 skips 632168 decicycles in ff_h2645_packet_split, 16 runs, 0 skips h264-conformance/CANLMA3_Sony_C.jsv 1974019 decicycles in ff_h2645_packet_split, 16 runs, 0 skips 604950 decicycles in ff_h2645_packet_split, 16 runs, 0 skips h264-conformance/CAPA1_TOSHIBA_B.264 103028 decicycles in ff_h2645_packet_split, 110 runs, 18 skips 149465 decicycles in ff_h2645_packet_split, 126 runs, 2 skips h264-conformance/CAPAMA3_Sand_F.264 101618 decicycles in ff_h2645_packet_split, 48 runs, 16 skips 151015 decicycles in ff_h2645_packet_split, 60 runs, 4 skips h264-conformance/CAPCM1_Sand_E.264 1828713 decicycles in ff_h2645_packet_split, 32 runs, 0 skips 709833 decicycles in ff_h2645_packet_split, 32 runs, 0 skips h264-conformance/CAPCMNL1_Sand_E.264 1857284 decicycles in ff_h2645_packet_split, 32 runs, 0 skips 669630 decicycles in ff_h2645_packet_split, 32 runs, 0 skips h264-conformance/CAPM3_Sony_D.jsv 231427 decicycles in ff_h2645_packet_split, 256 runs, 0 skips 57398 decicycles in ff_h2645_packet_split, 244 runs, 12 skips h264-conformance/CAQP1_Sony_B.jsv 1412382 decicycles in ff_h2645_packet_split, 32 runs, 0 skips 137085 decicycles in ff_h2645_packet_split, 20 runs, 12 skips h264-conformance/CAWP1_TOSHIBA_E.264 998381 decicycles in ff_h2645_packet_split, 64 runs, 0 skips 307123 decicycles in ff_h2645_packet_split, 63 runs, 1 skips h264-conformance/CAWP5_TOSHIBA_E.264 977383 decicycles in ff_h2645_packet_split, 64 runs, 0 skips 317945 decicycles in ff_h2645_packet_split, 64 runs, 0 skips h264-conformance/CI1_FT_B.264 214776 decicycles in ff_h2645_packet_split, 256 runs, 0 skips 81378 decicycles in ff_h2645_packet_split, 255 runs, 1 skips h264-conformance/CI_MW_D.264 685361 decicycles in ff_h2645_packet_split, 64 runs, 0 skips 28049 decicycles in ff_h2645_packet_split, 47 runs, 17 skips h264-conformance/CVBS3_Sony_C.jsv 29222 decicycles in ff_h2645_packet_split, 240 runs, 16 skips 27742 decicycles in ff_h2645_packet_split, 240 runs, 16 skips h264-conformance/CVCANLMA2_Sony_C.jsv 2164268 decicycles in ff_h2645_packet_split, 16 runs, 0 skips 768374 decicycles in ff_h2645_packet_split, 16 runs, 0 skips h264-conformance/CVFC1_Sony_C.jsv 1606482 decicycles in ff_h2645_packet_split, 32 runs, 0 skips 422540 decicycles in ff_h2645_packet_split, 31 runs, 1 skips h264-conformance/CVFI1_Sony_D.jsv 330340 decicycles in ff_h2645_packet_split, 16 runs, 16 skips 550333 decicycles in ff_h2645_packet_split, 31 runs, 1 skips h264-conformance/CVFI1_SVA_C.264 234738 decicycles in ff_h2645_packet_split, 14 runs, 2 skips 50584 decicycles in ff_h2645_packet_split, 14 runs, 2 skips h264-conformance/CVFI2_Sony_H.jsv 282024 decicycles in ff_h2645_packet_split, 22 runs, 10 skips 400757 decicycles in ff_h2645_packet_split, 31 runs, 1 skips h264-conformance/CVFI2_SVA_C.264 195915 decicycles in ff_h2645_packet_split, 16 runs, 16 skips 166644 decicycles in ff_h2645_packet_split, 23 runs, 9 skips h264-conformance/CVMA1_Sony_D.jsv 1943008 decicycles in ff_h2645_packet_split, 8 runs, 0 skips 930226 decicycles in ff_h2645_packet_split, 8 runs, 0 skips h264-conformance/CVMA1_TOSHIBA_B.264 1028559 decicycles in ff_h2645_packet_split, 64 runs, 0 skips 341695 decicycles in ff_h2645_packet_split, 64 runs, 0 skips h264-conformance/CVMANL1_TOSHIBA_B.264 992178 decicycles in ff_h2645_packet_split, 64 runs, 0 skips 352933 decicycles in ff_h2645_packet_split, 64 runs, 0 skips h264-conformance/CVMANL2_TOSHIBA_B.264 967943 decicycles in ff_h2645_packet_split, 63 runs, 1 skips 332664 decicycles in ff_h2645_packet_split, 64 runs, 0 skips h264-conformance/CVMAPAQP3_Sony_E.jsv 1720523 decicycles in ff_h2645_packet_split, 16 runs, 0 skips 1071011 decicycles in ff_h2645_packet_split, 16 runs, 0 skips h264-conformance/CVMAQP2_Sony_G.jsv 1733796 decicycles in ff_h2645_packet_split, 16 runs, 0 skips 460118 decicycles in ff_h2645_packet_split, 16 runs, 0 skips h264-conformance/CVMAQP3_Sony_D.jsv 1190498 decicycles in ff_h2645_packet_split, 16 runs, 0 skips 346528 decicycles in ff_h2645_packet_split, 16 runs, 0 skips h264-conformance/cvmp_mot_fld0_full_B.26l 111578 decicycles in ff_h2645_packet_split, 48 runs, 16 skips 181700 decicycles in ff_h2645_packet_split, 61 runs, 3 skips h264-conformance/CVMP_MOT_FLD_L30_B.26l 122439 decicycles in ff_h2645_packet_split, 48 runs, 16 skips 184230 decicycles in ff_h2645_packet_split, 62 runs, 2 skips h264-conformance/cvmp_mot_frm0_full_B.26l 1569586 decicycles in ff_h2645_packet_split, 32 runs, 0 skips 452718 decicycles in ff_h2645_packet_split, 32 runs, 0 skips h264-conformance/CVMP_MOT_FRM_L31_B.26l 123587 decicycles in ff_h2645_packet_split, 48 runs, 16 skips 175141 decicycles in ff_h2645_packet_split, 62 runs, 2 skips h264-conformance/cvmp_mot_mbaff0_full_B.26l 1730998 decicycles in ff_h2645_packet_split, 32 runs, 0 skips 459586 decicycles in ff_h2645_packet_split, 32 runs, 0 skips h264-conformance/cvmp_mot_picaff0_full_B.26l 1301385 decicycles in ff_h2645_packet_split, 27 runs, 5 skips 360403 decicycles in ff_h2645_packet_split, 31 runs, 1 skips h264-conformance/CVNLFI1_Sony_C.jsv 1670167 decicycles in ff_h2645_packet_split, 29 runs, 3 skips 582865 decicycles in ff_h2645_packet_split, 32 runs, 0 skips h264-conformance/CVNLFI2_Sony_H.jsv 291475 decicycles in ff_h2645_packet_split, 22 runs, 10 skips 398549 decicycles in ff_h2645_packet_split, 31 runs, 1 skips h264-conformance/CVPA1_TOSHIBA_B.264 110603 decicycles in ff_h2645_packet_split, 110 runs, 18 skips 159631 decicycles in ff_h2645_packet_split, 126 runs, 2 skips h264-conformance/CVPCMNL1_SVA_C.264 2437351 decicycles in ff_h2645_packet_split, 32 runs, 0 skips 1239176 decicycles in ff_h2645_packet_split, 32 runs, 0 skips h264-conformance/CVPCMNL2_SVA_C.264 12280947 decicycles in ff_h2645_packet_split, 4 runs, 0 skips 8682327 decicycles in ff_h2645_packet_split, 4 runs, 0 skips h264-conformance/CVSE2_Sony_B.jsv 172218 decicycles in ff_h2645_packet_split, 254 runs, 2 skips 33944 decicycles in ff_h2645_packet_split, 240 runs, 16 skips h264-conformance/CVSE3_Sony_H.jsv 194504 decicycles in ff_h2645_packet_split, 256 runs, 0 skips 61820 decicycles in ff_h2645_packet_split, 256 runs, 0 skips h264-conformance/CVSEFDFT3_Sony_E.jsv 353777 decicycles in ff_h2645_packet_split, 128 runs, 0 skips 100541 decicycles in ff_h2645_packet_split, 128 runs, 0 skips h264-conformance/CVWP1_TOSHIBA_E.264 1151376 decicycles in ff_h2645_packet_split, 64 runs, 0 skips 583380 decicycles in ff_h2645_packet_split, 64 runs, 0 skips h264-conformance/CVWP2_TOSHIBA_E.264 1144808 decicycles in ff_h2645_packet_split, 64 runs, 0 skips 492892 decicycles in ff_h2645_packet_split, 64 runs, 0 skips h264-conformance/CVWP3_TOSHIBA_E.264 879854 decicycles in ff_h2645_packet_split, 63 runs, 1 skips 261131 decicycles in ff_h2645_packet_split, 63 runs, 1 skips h264-conformance/CVWP5_TOSHIBA_E.264 1111352 decicycles in ff_h2645_packet_split, 64 runs, 0 skips 513213 decicycles in ff_h2645_packet_split, 64 runs, 0 skips h264-conformance/FI1_Sony_E.jsv 178247 decicycles in ff_h2645_packet_split, 16 runs, 16 skips 53626 decicycles in ff_h2645_packet_split, 16 runs, 16 skips h264-conformance/FM1_BT_B.h264 31911 decicycles in ff_h2645_packet_split, 489 runs, 23 skips 22116 decicycles in ff_h2645_packet_split, 468 runs, 44 skips h264-conformance/FM1_FT_E.264 211798 decicycles in ff_h2645_packet_split, 256 runs, 0 skips 74783 decicycles in ff_h2645_packet_split, 255 runs, 1 skips h264-conformance/FM2_SVA_B.264 53272 decicycles in ff_h2645_packet_split, 48 runs, 16 skips 14961 decicycles in ff_h2645_packet_split, 48 runs, 16 skips h264-conformance/FM2_SVA_C.264 47780 decicycles in ff_h2645_packet_split, 51 runs, 13 skips 8734 decicycles in ff_h2645_packet_split, 51 runs, 13 skips h264-conformance/FRext h264-conformance/HCBP1_HHI_A.264 63701 decicycles in ff_h2645_packet_split, 240 runs, 16 skips 73250 decicycles in ff_h2645_packet_split, 243 runs, 13 skips h264-conformance/HCBP2_HHI_A.264 32143 decicycles in ff_h2645_packet_split, 240 runs, 16 skips 18471 decicycles in ff_h2645_packet_split, 237 runs, 19 skips h264-conformance/HCMP1_HHI_A.264 27728 decicycles in ff_h2645_packet_split, 240 runs, 16 skips 19438 decicycles in ff_h2645_packet_split, 237 runs, 19 skips h264-conformance/LS_SVA_D.264 51500 decicycles in ff_h2645_packet_split, 1024 runs, 0 skips 9417 decicycles in ff_h2645_packet_split, 988 runs, 36 skips h264-conformance/md5sum h264-conformance/MIDR_MW_D.264 684476 decicycles in ff_h2645_packet_split, 64 runs, 0 skips 32791 decicycles in ff_h2645_packet_split, 48 runs, 16 skips h264-conformance/MPS_MW_A.264 347083 decicycles in ff_h2645_packet_split, 128 runs, 0 skips 58146 decicycles in ff_h2645_packet_split, 112 runs, 16 skips h264-conformance/MR1_BT_A.h264 790794 decicycles in ff_h2645_packet_split, 64 runs, 0 skips 228170 decicycles in ff_h2645_packet_split, 62 runs, 2 skips h264-conformance/MR1_MW_A.264 350335 decicycles in ff_h2645_packet_split, 128 runs, 0 skips 58212 decicycles in ff_h2645_packet_split, 112 runs, 16 skips h264-conformance/MR2_MW_A.264 185872 decicycles in ff_h2645_packet_split, 256 runs, 0 skips 46592 decicycles in ff_h2645_packet_split, 240 runs, 16 skips h264-conformance/MR2_TANDBERG_E.264 185592 decicycles in ff_h2645_packet_split, 256 runs, 0 skips 53605 decicycles in ff_h2645_packet_split, 240 runs, 16 skips h264-conformance/MR3_TANDBERG_B.264 182223 decicycles in ff_h2645_packet_split, 256 runs, 0 skips 47114 decicycles in ff_h2645_packet_split, 238 runs, 18 skips h264-conformance/MR4_TANDBERG_C.264 36084 decicycles in ff_h2645_packet_split, 240 runs, 16 skips 57664 decicycles in ff_h2645_packet_split, 227 runs, 29 skips h264-conformance/MR5_TANDBERG_C.264 37496 decicycles in ff_h2645_packet_split, 240 runs, 16 skips 49987 decicycles in ff_h2645_packet_split, 218 runs, 38 skips h264-conformance/MR6_BT_B.h264 41555 decicycles in ff_h2645_packet_split, 112 runs, 16 skips 32532 decicycles in ff_h2645_packet_split, 107 runs, 21 skips h264-conformance/MR7_BT_B.h264 666335 decicycles in ff_h2645_packet_split, 64 runs, 0 skips 86017 decicycles in ff_h2645_packet_split, 48 runs, 16 skips h264-conformance/MR8_BT_B.h264 670567 decicycles in ff_h2645_packet_split, 64 runs, 0 skips 139160 decicycles in ff_h2645_packet_split, 64 runs, 0 skips h264-conformance/MR9_BT_B.h264 674932 decicycles in ff_h2645_packet_split, 64 runs, 0 skips 175709 decicycles in ff_h2645_packet_split, 64 runs, 0 skips h264-conformance/NL1_Sony_D.jsv 1565076 decicycles in ff_h2645_packet_split, 16 runs, 0 skips 44030 decicycles in ff_h2645_packet_split, 7 runs, 9 skips h264-conformance/NL2_Sony_H.jsv 25847 decicycles in ff_h2645_packet_split, 240 runs, 16 skips 26048 decicycles in ff_h2645_packet_split, 240 runs, 16 skips h264-conformance/NL3_SVA_E.264 1276440 decicycles in ff_h2645_packet_split, 31 runs, 1 skips 20997 decicycles in ff_h2645_packet_split, 16 runs, 16 skips h264-conformance/NLMQ1_JVC_C.264 1538332 decicycles in ff_h2645_packet_split, 32 runs, 0 skips 446740 decicycles in ff_h2645_packet_split, 32 runs, 0 skips h264-conformance/NLMQ2_JVC_C.264 1430466 decicycles in ff_h2645_packet_split, 32 runs, 0 skips 398663 decicycles in ff_h2645_packet_split, 32 runs, 0 skips h264-conformance/NRF_MW_E.264 651153 decicycles in ff_h2645_packet_split, 64 runs, 0 skips 34457 decicycles in ff_h2645_packet_split, 47 runs, 17 skips h264-conformance/Sharp_MP_Field_1_B.jvt 236013 decicycles in ff_h2645_packet_split, 16 runs, 16 skips 295033 decicycles in ff_h2645_packet_split, 31 runs, 1 skips h264-conformance/Sharp_MP_Field_2_B.jvt 200886 decicycles in ff_h2645_packet_split, 16 runs, 16 skips 256989 decicycles in ff_h2645_packet_split, 30 runs, 2 skips h264-conformance/Sharp_MP_Field_3_B.jvt 201950 decicycles in ff_h2645_packet_split, 16 runs, 16 skips 201934 decicycles in ff_h2645_packet_split, 26 runs, 6 skips h264-conformance/Sharp_MP_PAFF_1r2.jvt 209420 decicycles in ff_h2645_packet_split, 16 runs, 16 skips 263644 decicycles in ff_h2645_packet_split, 29 runs, 3 skips h264-conformance/Sharp_MP_PAFF_2.jvt 210992 decicycles in ff_h2645_packet_split, 16 runs, 16 skips 278645 decicycles in ff_h2645_packet_split, 31 runs, 1 skips h264-conformance/SL1_SVA_B.264 1332584 decicycles in ff_h2645_packet_split, 31 runs, 1 skips 45255 decicycles in ff_h2645_packet_split, 16 runs, 16 skips h264-conformance/sp1_bt_a.h264 180802 decicycles in ff_h2645_packet_split, 256 runs, 0 skips 34733 decicycles in ff_h2645_packet_split, 240 runs, 16 skips h264-conformance/sp2_bt_b.h264 179929 decicycles in ff_h2645_packet_split, 256 runs, 0 skips 25039 decicycles in ff_h2645_packet_split, 240 runs, 16 skips h264-conformance/src19td.IBP.264 481307 decicycles in ff_h2645_packet_split, 256 runs, 0 skips 358053 decicycles in ff_h2645_packet_split, 256 runs, 0 skips h264-conformance/SVA_BA1_B.264 1564498 decicycles in ff_h2645_packet_split, 16 runs, 0 skips 37211 decicycles in ff_h2645_packet_split, 7 runs, 9 skips h264-conformance/SVA_BA2_D.264 1518063 decicycles in ff_h2645_packet_split, 16 runs, 0 skips 30498 decicycles in ff_h2645_packet_split, 7 runs, 9 skips h264-conformance/SVA_Base_B.264 1482220 decicycles in ff_h2645_packet_split, 15 runs, 1 skips 46778 decicycles in ff_h2645_packet_split, 7 runs, 9 skips h264-conformance/SVA_CL1_E.264 1370722 decicycles in ff_h2645_packet_split, 32 runs, 0 skips 144232 decicycles in ff_h2645_packet_split, 22 runs, 10 skips h264-conformance/SVA_FM1_E.264 1580015 decicycles in ff_h2645_packet_split, 16 runs, 0 skips 44717 decicycles in ff_h2645_packet_split, 7 runs, 9 skips h264-conformance/SVA_NL1_B.264 1534482 decicycles in ff_h2645_packet_split, 16 runs, 0 skips 33194 decicycles in ff_h2645_packet_split, 7 runs, 9 skips h264-conformance/SVA_NL2_E.264 1545836 decicycles in ff_h2645_packet_split, 16 runs, 0 skips 34145 decicycles in ff_h2645_packet_split, 7 runs, 9 skips h264/crew_cif.nal 246509 decicycles in ff_h2645_packet_split, 256 runs, 0 skips 127784 decicycles in ff_h2645_packet_split, 255 runs, 1 skips h264/crew_cif_timecode-2.h264 250501 decicycles in ff_h2645_packet_split, 256 runs, 0 skips 130439 decicycles in ff_h2645_packet_split, 256 runs, 0 skips h264/crop-to-container-dims-canon.mov 17211845 decicycles in ff_h2645_packet_split, 2 runs, 0 skips 15828600 decicycles in ff_h2645_packet_split, 2 runs, 0 skips h264/direct-bff.mkv 3979072 decicycles in ff_h2645_packet_split, 8 runs, 0 skips 1705145 decicycles in ff_h2645_packet_split, 8 runs, 0 skips h264/dts_5frames.mkv 1389257 decicycles in ff_h2645_packet_split, 8 runs, 0 skips 192664 decicycles in ff_h2645_packet_split, 7 runs, 1 skips h264/extradata-reload-multi-stsd.mov 2386037 decicycles in ff_h2645_packet_split, 4 runs, 0 skips 346690 decicycles in ff_h2645_packet_split, 4 runs, 0 skips h264/extreme-plane-pred.h264 1270990 decicycles in ff_h2645_packet_split, 64 runs, 0 skips 647713 decicycles in ff_h2645_packet_split, 64 runs, 0 skips h264/h264_3bf_nopyramid_nobsrestriction.mp4 2577766 decicycles in ff_h2645_packet_split, 16 runs, 0 skips 409220 decicycles in ff_h2645_packet_split, 16 runs, 0 skips h264/h264_3bf_pyramid_nobsrestriction.mp4 2599990 decicycles in ff_h2645_packet_split, 16 runs, 0 skips 435328 decicycles in ff_h2645_packet_split, 16 runs, 0 skips h264/h264_4bf_pyramid_nobsrestriction.mp4 2411590 decicycles in ff_h2645_packet_split, 16 runs, 0 skips 432853 decicycles in ff_h2645_packet_split, 16 runs, 0 skips h264/h264_intra_first-small.ts 232407 decicycles in ff_h2645_packet_split, 47 runs, 17 skips 350875 decicycles in ff_h2645_packet_split, 61 runs, 3 skips h264/H264_might_overflow.mkv 5985027 decicycles in ff_h2645_packet_split, 4 runs, 0 skips 3699352 decicycles in ff_h2645_packet_split, 4 runs, 0 skips h264/h264refframeregression.mp4 1329841 decicycles in ff_h2645_packet_split, 127 runs, 1 skips 628778 decicycles in ff_h2645_packet_split, 127 runs, 1 skips h264-high-depth/high-qp.mkv 2528950 decicycles in ff_h2645_packet_split, 4 runs, 0 skips 371110 decicycles in ff_h2645_packet_split, 4 runs, 0 skips h264-high-depth/lossless.h264 2426691 decicycles in ff_h2645_packet_split, 8 runs, 0 skips 1364513 decicycles in ff_h2645_packet_split, 8 runs, 0 skips h264-high-depth/normal-10.h264 2547542 decicycles in ff_h2645_packet_split, 8 runs, 0 skips 511108 decicycles in ff_h2645_packet_split, 8 runs, 0 skips h264-high-depth/normal-9.h264 2577050 decicycles in ff_h2645_packet_split, 8 runs, 0 skips 512773 decicycles in ff_h2645_packet_split, 8 runs, 0 skips h264/interlaced_crop.mp4 882461 decicycles in ff_h2645_packet_split, 64 runs, 0 skips 247599 decicycles in ff_h2645_packet_split, 64 runs, 0 skips h264/intra_refresh.h264 198782 decicycles in ff_h2645_packet_split, 256 runs, 0 skips 68662 decicycles in ff_h2645_packet_split, 254 runs, 2 skips h264/lossless.h264 2639348 decicycles in ff_h2645_packet_split, 16 runs, 0 skips 1261838 decicycles in ff_h2645_packet_split, 16 runs, 0 skips h264/mixed-nal-coding.mp4 2655027 decicycles in ff_h2645_packet_split, 4 runs, 0 skips 612627 decicycles in ff_h2645_packet_split, 4 runs, 0 skips h264/nondeterministic_cut.h264 1476542 decicycles in ff_h2645_packet_split, 32 runs, 0 skips 337509 decicycles in ff_h2645_packet_split, 32 runs, 0 skips h264/ref_10.avi 1493100 decicycles in ff_h2645_packet_split, 32 runs, 0 skips 262980 decicycles in ff_h2645_packet_split, 29 runs, 3 skips h264/ref-pic-mod-overflow.h264 2673481 decicycles in ff_h2645_packet_split, 16 runs, 0 skips 461852 decicycles in ff_h2645_packet_split, 16 runs, 0 skips h264/reinit-large_420_8-to-small_420_8.h264 818810 decicycles in ff_h2645_packet_split, 64 runs, 0 skips 184433 decicycles in ff_h2645_packet_split, 64 runs, 0 skips h264/reinit-small_420_8-to-large_444_10.h264 728136 decicycles in ff_h2645_packet_split, 64 runs, 0 skips 185104 decicycles in ff_h2645_packet_split, 64 runs, 0 skips h264/reinit-small_420_9-to-small_420_8.h264 740219 decicycles in ff_h2645_packet_split, 64 runs, 0 skips 167078 decicycles in ff_h2645_packet_split, 64 runs, 0 skips h264/reinit-small_422_9-to-small_420_9.h264 765333 decicycles in ff_h2645_packet_split, 64 runs, 0 skips 168448 decicycles in ff_h2645_packet_split, 64 runs, 0 skips h264/sei-1.h264 2528580 decicycles in ff_h2645_packet_split, 4 runs, 0 skips 512727 decicycles in ff_h2645_packet_split, 4 runs, 0 skips h264/SonyXAVC_LongGOP_green_pixelation_early_Frames.MXF 6379678 decicycles in ff_h2645_packet_split, 8 runs, 0 skips 4213560 decicycles in ff_h2645_packet_split, 8 runs, 0 skips h264/test-4867.flv 256106 decicycles in ff_h2645_packet_split, 256 runs, 0 skips 107298 decicycles in ff_h2645_packet_split, 256 runs, 0 skips h264/thezerotheorem-cut.mp4 2788204 decicycles in ff_h2645_packet_split, 16 runs, 0 skips 1423158 decicycles in ff_h2645_packet_split, 16 runs, 0 skips h264/twofields_packet.mp4 1433591 decicycles in ff_h2645_packet_split, 128 runs, 0 skips5.12x 739566 decicycles in ff_h2645_packet_split, 128 runs, 0 skips5.22x h264/unescaped_extradata.mp4 71028 decicycles in ff_h2645_packet_split, 1024 runs, 0 skips 31314 decicycles in ff_h2645_packet_split, 1004 runs, 20 skips h264/wwwq_cut.mp4 1041260 decicycles in ff_h2645_packet_split, 64 runs, 0 skips 434873 decicycles in ff_h2645_packet_split, 63 runs, 1 skips >>>>>>>> #!/bin/bash for f in h264*/* ; do echo $f ./ffmpeg -an -i $f -f null - >& /dev/null ./ffmpeg -an -i $f -f null - 2>&1 | grep deci | tail -1 ./ffmpeg -an -flags2 fast_unsafe -i $f -f null - 2>&1 | grep deci | tail -1 done <<<<<<<< >>>>>>>> diff --git a/libavcodec/h264dec.c b/libavcodec/h264dec.c index b764caa942..9c5ea8bfa3 100644 --- a/libavcodec/h264dec.c +++ b/libavcodec/h264dec.c @@ -601,9 +601,10 @@ static int decode_nal_units(H264Context *h, const uint8_t *buf, int buf_size) }else if(buf_size > 3 && AV_RB32(buf) > 1 && AV_RB32(buf) <= (unsigned)buf_size) h->is_avc = 1; } - +{START_TIMER ret = ff_h2645_packet_split(&h->pkt, buf, buf_size, avctx, h->is_avc, h->nal_length_size, avctx->codec_id, avctx->flags2 & AV_CODEC_FLAG2_FAST_UNSAFE, 0); +STOP_TIMER("ff_h2645_packet_split");} if (ret < 0) { av_log(avctx, AV_LOG_ERROR, "Error splitting the input into NAL units.\n"); <<<<<<<< > Surely by your argument all your fuzzing fixes need an #ifdef to turn them > off to save CO2? many of the undefined behavior fixes make no difference in the resulting machiene code, these thus cannot be slower. many more are in speed irrelevant code pathes What is in speed relevant code and does slow it down could be also switched off by fast_unsafe, if such a flag is added. That will reduce CO2 produced, likely by a very small amount only though I do notice though that the replies in this thread are a bit "aggressive" iam not sure why, we can add fast_unsafe and connect it to cases where it fits or we can leave it and always go with the safe and slow. being angry isnt going to really make us choose a better solution i fear. iam not advocating one side here, just wanting to fix the issue that the fast flag without any warnings enables unsafe behavior <-- this is bad we can disable all this here and in the future or we can connect it to a new flag (fast_unsafe) where its known from day 1 that unsafe. I dont think adding a warning to a long existing flag is good Thanks [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB "I am not trying to be anyone's saviour, I'm trying to think about the future and not be sad" - Elon Musk
signature.asc
Description: PGP signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".