summaryrefslogtreecommitdiffstats
path: root/contrib/ffmpeg
diff options
context:
space:
mode:
authorjstebbins <[email protected]>2014-08-06 17:11:41 +0000
committerjstebbins <[email protected]>2014-08-06 17:11:41 +0000
commitfe74dd49d88433cf619aadbf0834bafc670356fd (patch)
treebbf659236022229fd03615d0c1bcb88a65e1d26a /contrib/ffmpeg
parent8d93fa6d55e1c1fda021d37a816dd9747194c32c (diff)
libhb: fix mp4 post tagging problems
A couple common mp4 taggers (mp3Tag and iTunes) fail to tag files that have the Nero chapter atom (chpl). This atom was added when we switched to libavformat for muxing. I haven't found any players yet that rely on this for chapters. If we ever find any, we can consider adding an option somewhere to enable chpl. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6269 b64f7644-9d1e-0410-96f1-a4d463321fa5
Diffstat (limited to 'contrib/ffmpeg')
-rw-r--r--contrib/ffmpeg/A02-disable-nero-chpl.patch65
1 files changed, 65 insertions, 0 deletions
diff --git a/contrib/ffmpeg/A02-disable-nero-chpl.patch b/contrib/ffmpeg/A02-disable-nero-chpl.patch
new file mode 100644
index 000000000..a558ef609
--- /dev/null
+++ b/contrib/ffmpeg/A02-disable-nero-chpl.patch
@@ -0,0 +1,65 @@
+From 189f0b725a268374647d251f8732b51dd29d4b15 Mon Sep 17 00:00:00 2001
+From: John Stebbins <[email protected]>
+Date: Mon, 4 Aug 2014 08:32:56 -0700
+Subject: [PATCH] movenc: Add option to disable nero chapters
+
+And add flag to muxer documentation.
+Nero chapters break some taggers (mp3tag and iTunes).
+---
+ doc/muxers.texi | 5 +++++
+ libavformat/movenc.c | 3 ++-
+ libavformat/movenc.h | 1 +
+ 3 files changed, 8 insertions(+), 1 deletion(-)
+
+diff --git a/doc/muxers.texi b/doc/muxers.texi
+index 0ca8d3f..54109c7 100644
+--- a/doc/muxers.texi
++++ b/doc/muxers.texi
+@@ -330,6 +330,11 @@ This option is implicitly set when writing ismv (Smooth Streaming) files.
+ Run a second pass moving the index (moov atom) to the beginning of the file.
+ This operation can take a while, and will not work in various situations such
+ as fragmented output, thus it is not enabled by default.
++@item -movflags disable_chpl
++Disable Nero chapter markers (chpl atom). Normally, both Nero chapters
++and a QuickTime chapter track are written to the file. With this option
++set, only the QuickTime chapter track will be written. Nero chapters can
++cause failures when the file is reprocessed with certain tagging programs.
+ @end table
+
+ Smooth Streaming content can be pushed in real time to a publishing
+diff --git a/libavformat/movenc.c b/libavformat/movenc.c
+index f16e851..73a78d8 100644
+--- a/libavformat/movenc.c
++++ b/libavformat/movenc.c
+@@ -57,6 +57,7 @@ static const AVOption options[] = {
+ { "isml", "Create a live smooth streaming feed (for pushing to a publishing point)", 0, AV_OPT_TYPE_CONST, {.i64 = FF_MOV_FLAG_ISML}, INT_MIN, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM, "movflags" },
+ { "faststart", "Run a second pass to put the index (moov atom) at the beginning of the file", 0, AV_OPT_TYPE_CONST, {.i64 = FF_MOV_FLAG_FASTSTART}, INT_MIN, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM, "movflags" },
+ { "omit_tfhd_offset", "Omit the base data offset in tfhd atoms", 0, AV_OPT_TYPE_CONST, {.i64 = FF_MOV_FLAG_OMIT_TFHD_OFFSET}, INT_MIN, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM, "movflags" },
++ { "disable_chpl", "Disable Nero chapter atom", 0, AV_OPT_TYPE_CONST, {.i64 = FF_MOV_FLAG_DISABLE_CHPL}, INT_MIN, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM, "movflags" },
+ FF_RTP_FLAG_OPTS(MOVMuxContext, rtp_flags),
+ { "skip_iods", "Skip writing iods atom.", offsetof(MOVMuxContext, iods_skip), AV_OPT_TYPE_INT, {.i64 = 0}, 0, 1, AV_OPT_FLAG_ENCODING_PARAM},
+ { "iods_audio_profile", "iods audio profile atom.", offsetof(MOVMuxContext, iods_audio_profile), AV_OPT_TYPE_INT, {.i64 = -1}, -1, 255, AV_OPT_FLAG_ENCODING_PARAM},
+@@ -2076,7 +2077,7 @@ static int mov_write_udta_tag(AVIOContext *pb, MOVMuxContext *mov,
+ mov_write_meta_tag(pb_buf, mov, s);
+ }
+
+- if (s->nb_chapters)
++ if (s->nb_chapters && !(mov->flags & FF_MOV_FLAG_DISABLE_CHPL))
+ mov_write_chpl_tag(pb_buf, s);
+
+ if ((size = avio_close_dyn_buf(pb_buf, &buf)) > 0) {
+diff --git a/libavformat/movenc.h b/libavformat/movenc.h
+index 35be781..0d3eb34 100644
+--- a/libavformat/movenc.h
++++ b/libavformat/movenc.h
+@@ -175,6 +175,7 @@ typedef struct MOVMuxContext {
+ #define FF_MOV_FLAG_ISML 64
+ #define FF_MOV_FLAG_FASTSTART 128
+ #define FF_MOV_FLAG_OMIT_TFHD_OFFSET 256
++#define FF_MOV_FLAG_DISABLE_CHPL 512
+
+ int ff_mov_write_packet(AVFormatContext *s, AVPacket *pkt);
+
+--
+1.9.3
+