• Andreas Rheinhardt's avatar
    libavcodec/cbs: Stop needlessly reallocating the units array · b8c45bbc
    Andreas Rheinhardt authored
    Currently, a fragment's unit array is constantly reallocated during
    splitting of a packet. This commit changes this: One can keep the units
    array by distinguishing between the number of allocated and the number
    of valid units in the units array.
    
    The more units a packet is split into, the bigger the benefit.
    So MPEG-2 benefits the most; for a video coming from an NTSC-DVD
    (usually 32 units per frame) the average cost of cbs_insert_unit (for a
    single unit) went down from 6717 decicycles to 450 decicycles (based
    upon 10 runs with 4194304 runs each); if each packet consists of only
    one unit, it went down from 2425 to 448; for a H.264 video where most
    packets contain nine units, it went from 4431 to 450.
    Signed-off-by: 's avatarAndreas Rheinhardt <andreas.rheinhardt@googlemail.com>
    b8c45bbc
cbs.c 17.4 KB