summaryrefslogtreecommitdiffstats
path: root/contrib/ffmpeg/A07-mp4-chapters.patch
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/ffmpeg/A07-mp4-chapters.patch')
-rw-r--r--contrib/ffmpeg/A07-mp4-chapters.patch60
1 files changed, 0 insertions, 60 deletions
diff --git a/contrib/ffmpeg/A07-mp4-chapters.patch b/contrib/ffmpeg/A07-mp4-chapters.patch
deleted file mode 100644
index 0fec0eaf9..000000000
--- a/contrib/ffmpeg/A07-mp4-chapters.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 36bdd52964ef68532eea50a81431c0c4c9f329e5 Mon Sep 17 00:00:00 2001
-From: John Stebbins <[email protected]>
-Date: Fri, 10 May 2013 08:51:46 -0700
-Subject: [PATCH 4/9] movenc: Allow chapters to be written in trailer
-
-This allows creation of frame accurate chapter marks from sources
-like DVD and BD where the precise chapter location is not known until
-the chapter mark has been reached during reading.
----
- libavformat/movenc.c | 19 ++++++++++++++++---
- 1 file changed, 16 insertions(+), 3 deletions(-)
-
-diff --git a/libavformat/movenc.c b/libavformat/movenc.c
-index 496158c..f41f8d7 100644
---- a/libavformat/movenc.c
-+++ b/libavformat/movenc.c
-@@ -3038,7 +3038,7 @@ static int mov_write_header(AVFormatContext *s)
- }
-
- mov->nb_streams = s->nb_streams;
-- if (mov->mode & (MODE_MOV|MODE_IPOD) && s->nb_chapters)
-+ if (mov->mode & (MODE_MP4|MODE_MOV|MODE_IPOD) && s->nb_chapters)
- mov->chapter_track = mov->nb_streams++;
-
- if (mov->flags & FF_MOV_FLAG_RTP_HINT) {
-@@ -3053,7 +3053,9 @@ static int mov_write_header(AVFormatContext *s)
- }
- }
-
-- mov->tracks = av_mallocz(mov->nb_streams*sizeof(*mov->tracks));
-+ // Reserve an extra stream for chapters for the case where chapters
-+ // are written in the trailer
-+ mov->tracks = av_mallocz((mov->nb_streams+1)*sizeof(*mov->tracks));
- if (!mov->tracks)
- return AVERROR(ENOMEM);
-
-@@ -3189,8 +3191,19 @@ static int mov_write_trailer(AVFormatContext *s)
- AVIOContext *pb = s->pb;
- int res = 0;
- int i;
-+ int64_t moov_pos;
-+
-+ // If there were no chapters when the header was written, but there
-+ // are chapters now, write them in the trailer. This only works
-+ // when we are not doing fragments.
-+ if (!mov->chapter_track && !(mov->flags & FF_MOV_FLAG_FRAGMENT)) {
-+ if (mov->mode & (MODE_MP4|MODE_MOV|MODE_IPOD) && s->nb_chapters) {
-+ mov->chapter_track = mov->nb_streams++;
-+ mov_create_chapter_track(s, mov->chapter_track);
-+ }
-+ }
-
-- int64_t moov_pos = avio_tell(pb);
-+ moov_pos = avio_tell(pb);
-
- if (!(mov->flags & FF_MOV_FLAG_FRAGMENT)) {
- /* Write size of mdat tag */
---
-1.8.1.4
-