mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-28 20:53:54 +02:00
avformat/matroskaenc: Improve checks for updating Tags
When updating the Tags at the end, the Matroska muxer would twice check for whether (!mkv->is_live) is true, despite this code being only executed if it is. Furthermore, a loop iterates over all the streams even when there is no Tags element to update at all, because the check for whether there are Tags is only performed later. This commit fixes this. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
This commit is contained in:
parent
0fc150f048
commit
af97a3a4d6
@ -2545,7 +2545,7 @@ static int mkv_write_trailer(AVFormatContext *s)
|
||||
end_ebml_master_crc32(pb, &mkv->tracks_bc, mkv, MATROSKA_ID_TRACKS, 0, 0);
|
||||
|
||||
// update stream durations
|
||||
if (!mkv->is_live) {
|
||||
if (mkv->tags_bc) {
|
||||
int i;
|
||||
for (i = 0; i < s->nb_streams; ++i) {
|
||||
AVStream *st = s->streams[i];
|
||||
@ -2567,8 +2567,7 @@ static int mkv_write_trailer(AVFormatContext *s)
|
||||
put_ebml_binary(mkv->tags_bc, MATROSKA_ID_TAGSTRING, duration_string, 20);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (mkv->tags_bc && !mkv->is_live) {
|
||||
|
||||
avio_seek(pb, mkv->tags_pos, SEEK_SET);
|
||||
end_ebml_master_crc32(pb, &mkv->tags_bc, mkv, MATROSKA_ID_TAGS, 0, 0);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user