[FFmpeg-devel] [PATCH v2] avformat/matroskaenc: Write level 1 elements in one go

Andreas Rheinhardt andreas.rheinhardt at gmail.com
Wed Mar 25 19:07:43 EET 2020


Carl Eugen Hoyos:
> Am Mi., 25. März 2020 um 05:45 Uhr schrieb Andreas Rheinhardt
> <andreas.rheinhardt at gmail.com>:
>>
>> 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 implies that
>> one can start a level 1 element in memory without outputting anything.
>> This is done to enable to test whether enough space has been reserved
>> for the Cues (if space has been reserved for them) before writing them.
>> A large duration between outputting the header and outputting the rest
>> could also break certain streaming usecases like the one from #8578
>> (which this commit fixes).
>>
>> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at gmail.com>
>> ---
>> The commit message has been updated in light of ticket #8578; nothing
>> else has changed.
> 
> Please mention the ticket in the commit message.
> 
It is already contained in the commit message.

- Andreas


More information about the ffmpeg-devel mailing list