diff options
author | Andreas Rheinhardt <andreas.rheinhardt@gmail.com> | 2020-04-27 03:12:24 +0200 |
---|---|---|
committer | Andreas Rheinhardt <andreas.rheinhardt@gmail.com> | 2020-05-03 13:56:29 +0200 |
commit | 0aed3002ad3104489d0e378dc9893271d14e0e5b (patch) | |
tree | b4efcbe18b4a30b671a49945109703afa8c9b684 /libavformat/matroskaenc.c | |
parent | 6397b4d6a241692a1c7bb611a3fd42b0de2d32b5 (diff) | |
download | ffmpeg-0aed3002ad3104489d0e378dc9893271d14e0e5b.tar.gz |
avformat/matroskaenc: Make sure UIDs of delayed chapters are != 0
This has previously only been checked if the chapters were initially
available, but not if they were only written in the trailer.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
Diffstat (limited to 'libavformat/matroskaenc.c')
-rw-r--r-- | libavformat/matroskaenc.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c index c07aa4f7e4..cccfdb41b6 100644 --- a/libavformat/matroskaenc.c +++ b/libavformat/matroskaenc.c @@ -1437,6 +1437,12 @@ static int mkv_write_chapters(AVFormatContext *s) if (!s->nb_chapters || mkv->wrote_chapters) return 0; + for (i = 0; i < s->nb_chapters; i++) + if (!s->chapters[i]->id) { + mkv->chapter_id_offset = 1; + break; + } + mkv_add_seekhead_entry(mkv, MATROSKA_ID_CHAPTERS, avio_tell(pb)); ret = start_ebml_master_crc32(&dyn_cp, mkv); @@ -1863,12 +1869,6 @@ static int mkv_write_header(AVFormatContext *s) if (ret < 0) return ret; - for (i = 0; i < s->nb_chapters; i++) - if (!s->chapters[i]->id) { - mkv->chapter_id_offset = 1; - break; - } - ret = mkv_write_chapters(s); if (ret < 0) return ret; @@ -1879,6 +1879,7 @@ static int mkv_write_header(AVFormatContext *s) return ret; } + /* Must come after mkv_write_chapters() because of chapter_id_offset */ ret = mkv_write_tags(s); if (ret < 0) return ret; |