• Andreas Rheinhardt's avatar
    avformat/matroskaenc: Remove unnecessary avio_tell(), avio_seek() · 0fc150f0
    Andreas Rheinhardt authored
    avio_close_dyn_buf() has a bug: When the write pointer does not point to
    the end of the written data when calling it (i.e. when one has performed
    a seek back to update already written data), it would not add padding to
    the end of the buffer, but to the current position, overwriting other
    data; furthermore the reported size would be wrong (off by the amount of
    data it has overwritten with padding).
    
    In order not to run into this when updating already written elements or
    elements for which size has only been reserved, the Matroska muxer would
    first record the current position of the dynamic buffer, then seek to
    the desired position, perform the update and seek back to the earlier
    position.
    
    But now that end_ebml_master_crc32() does not make use of
    avio_close_dyn_buf() any more, this is no longer necessary.
    Signed-off-by: 's avatarAndreas Rheinhardt <andreas.rheinhardt@gmail.com>
    0fc150f0
matroskaenc.c 101 KB