• Andreas Rheinhardt's avatar
    truehd_core: Switch to in-place modifications · 5a481b15
    Andreas Rheinhardt authored
    The truehd_core bitstream filter decreases the sizes of the
    major_sync_info structure (if present), of the
    substream_directory and of the substreams themselves. As a consequence,
    there is enough space available in front of the actual substream data
    for the new header, so that one only needs to modify the header in front
    of the actual data (which apart from shrinking is left untouched) and
    the packet's size and buffer pointer (after having made sure that the
    packet is writable).
    
    This and switching to bsf_get_packet_ref also removed the need for
    having separate packets for in- and output.
    
    Even if the input is not writable, there are noticable performance
    improvements: The average of 10 iterations of processing a file with 262144
    runs each (inlcuding about 20 skips per iteration) went down from 5669
    to 4362 decicycles. If the input is writable, it goes down to 1363
    decicycles.
    Signed-off-by: 's avatarAndreas Rheinhardt <andreas.rheinhardt@gmail.com>
    5a481b15
Name
Last commit
Last update
compat Loading commit data...
doc Loading commit data...
ffbuild Loading commit data...
fftools Loading commit data...
libavcodec Loading commit data...
libavdevice Loading commit data...
libavfilter Loading commit data...
libavformat Loading commit data...
libavresample Loading commit data...
libavutil Loading commit data...
libpostproc Loading commit data...
libswresample Loading commit data...
libswscale Loading commit data...
presets Loading commit data...
tests Loading commit data...
tools Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.travis.yml Loading commit data...
CONTRIBUTING.md Loading commit data...
COPYING.GPLv2 Loading commit data...
COPYING.GPLv3 Loading commit data...
COPYING.LGPLv2.1 Loading commit data...
COPYING.LGPLv3 Loading commit data...
CREDITS Loading commit data...
Changelog Loading commit data...
INSTALL.md Loading commit data...
LICENSE.md Loading commit data...
MAINTAINERS Loading commit data...
Makefile Loading commit data...
README.md Loading commit data...
RELEASE Loading commit data...
configure Loading commit data...