diff options
author | Andreas Rheinhardt <andreas.rheinhardt@gmail.com> | 2019-12-30 15:59:02 +0100 |
---|---|---|
committer | Andreas Rheinhardt <andreas.rheinhardt@gmail.com> | 2020-03-30 07:56:38 +0200 |
commit | 477275795865f074e60635d813a7b765284ca948 (patch) | |
tree | 464a6b768dd7a25863541b8d97cb67408ada2f7c /libavutil/slicethread.c | |
parent | 635ca9aa012c1e4059789b22381f26b2c96216d2 (diff) | |
download | ffmpeg-477275795865f074e60635d813a7b765284ca948.tar.gz |
avformat/matroskaenc: Write level 1 elements in one go
Up until now, writing level 1 elements proceeded as follows: First, the
element id was written to the ordinary output AVIOContext and a dynamic
buffer was opened for the content of the level 1 element in
start_ebml_master_crc32(). Then this buffer was actually used and after it
was closed (in end_ebml_master_crc32()), the size field corresponding to
the buffer's size was written, after which the actual data was written.
This commit changes this: Nothing is written to the main AVIOContext any
more in start_ebml_master_crc32(). end_ebml_master_crc32() now writes
both the id, the length field as well as the data. This is benefical for
streaming, because a client that receives just a Cluster ID and nothing
more might infer that this is EOF; in certain usecases there is also the
danger of a client receiving the Cluster without the actual Cluster ID
at the beginning.
Addresses #8578.
(cherry picked from commit d9c21ec)
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
Diffstat (limited to 'libavutil/slicethread.c')
0 files changed, 0 insertions, 0 deletions