• Andreas Rheinhardt's avatar
    h264_mp4toannexb: Try to avoid four byte startcodes · 518bbe9e
    Andreas Rheinhardt authored
    According to the H.264 specifications, the only NAL units that need to
    have four byte startcodes in H.264 Annex B format are SPS/PPS units and
    units that start a new access unit. Before af7e953a, the first of these
    conditions wasn't upheld as already existing in-band parameter sets
    would not automatically be written with a four byte startcode, but only
    when they already were at the beginning of their input packets. But it
    made four byte startcodes be used too often as every unit that is written
    together with a parameter set that is inserted from extradata received a
    four byte startcode although a three byte start code would suffice
    unless the unit itself were a parameter set.
    
    FATE has been updated to reflect the changes. Although the patch leaves
    the extradata unchanged, the size of the extradata according to the FATE
    reports changes. This is due to a quirk in ff_h2645_packet_split which
    is used by extract_extradata: If the input is Annex B, the first zero of
    a four byte startcode is considered a part of the last unit (if any).
    Signed-off-by: 's avatarAndreas Rheinhardt <andreas.rheinhardt@gmail.com>
    Signed-off-by: 's avatarMichael Niedermayer <michael@niedermayer.cc>
    518bbe9e
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...
.mailmap 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...