diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2013-09-05 13:34:37 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2013-09-05 13:34:37 +0200 |
commit | 2230d85cebee829ad773e6bf0873fca98d7bc410 (patch) | |
tree | b0ee28074d4f16621b6024631bcffe979a96a4f7 /libavformat/matroskaenc.c | |
parent | b042712a875cbbaece4652aa572501a8cbc20051 (diff) | |
parent | 26b241c0791bfeb9df7b873da4dc74cce0c06be3 (diff) | |
download | ffmpeg-2230d85cebee829ad773e6bf0873fca98d7bc410.tar.gz |
Merge remote-tracking branch 'qatar/master'
* qatar/master:
matroskaenc: Allow chapters to be written in trailer
Conflicts:
libavformat/matroskaenc.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavformat/matroskaenc.c')
-rw-r--r-- | libavformat/matroskaenc.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c index aa979eab6e..b6cf9dd262 100644 --- a/libavformat/matroskaenc.c +++ b/libavformat/matroskaenc.c @@ -109,6 +109,7 @@ typedef struct MatroskaMuxContext { int64_t cluster_time_limit; uint32_t chapter_id_offset; + int wrote_chapters; } MatroskaMuxContext; @@ -790,7 +791,7 @@ static int mkv_write_chapters(AVFormatContext *s) AVRational scale = {1, 1E9}; int i, ret; - if (!s->nb_chapters) + if (!s->nb_chapters || mkv->wrote_chapters) return 0; ret = mkv_add_seekhead_entry(mkv->main_seekhead, MATROSKA_ID_CHAPTERS, avio_tell(pb)); @@ -823,6 +824,8 @@ static int mkv_write_chapters(AVFormatContext *s) } end_ebml_master(pb, editionentry); end_ebml_master(pb, chapters); + + mkv->wrote_chapters = 1; return 0; } @@ -1610,6 +1613,11 @@ static int mkv_write_trailer(AVFormatContext *s) end_ebml_master(pb, mkv->cluster); } + if (mkv->mode != MODE_WEBM) { + ret = mkv_write_chapters(s); + if (ret < 0) return ret; + } + if (pb->seekable) { if (mkv->cues->num_entries) { if (mkv->reserve_cues_space) { |