]> granicus.if.org Git - handbrake/commitdiff
mkv: mark "default" subtitle tracks with both default and forced flags
authorjstebbins <jstebbins.hb@gmail.com>
Tue, 24 Feb 2015 21:40:24 +0000 (21:40 +0000)
committerjstebbins <jstebbins.hb@gmail.com>
Tue, 24 Feb 2015 21:40:24 +0000 (21:40 +0000)
Makes "default" do the right thing in plex

git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6941 b64f7644-9d1e-0410-96f1-a4d463321fa5

contrib/ffmpeg/A01-mkv-forced-flag.patch [new file with mode: 0644]
libhb/muxavformat.c

diff --git a/contrib/ffmpeg/A01-mkv-forced-flag.patch b/contrib/ffmpeg/A01-mkv-forced-flag.patch
new file mode 100644 (file)
index 0000000..e18590d
--- /dev/null
@@ -0,0 +1,13 @@
+diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c
+index cab43f4..8688616 100644
+--- a/libavformat/matroskaenc.c
++++ b/libavformat/matroskaenc.c
+@@ -769,6 +769,8 @@ static int mkv_write_track(AVFormatContext *s, MatroskaMuxContext *mkv,
+     // if we need to clear it.
+     if (!(st->disposition & AV_DISPOSITION_DEFAULT))
+         put_ebml_uint(pb, MATROSKA_ID_TRACKFLAGDEFAULT, !!(st->disposition & AV_DISPOSITION_DEFAULT));
++    if (st->disposition & AV_DISPOSITION_FORCED)
++        put_ebml_uint(pb, MATROSKA_ID_TRACKFLAGFORCED, !!(st->disposition & AV_DISPOSITION_FORCED));
+     if (codec->codec_type == AVMEDIA_TYPE_AUDIO && codec->initial_padding) {
+         mkv->tracks[i].ts_offset = av_rescale_q(codec->initial_padding,
index 13f9e98323113cd1b207473e17006eba157d0dc4..3892773198dbacdbdde5c8e9e8dafc9064fdb318 100644 (file)
@@ -776,7 +776,8 @@ static int avformatInit( hb_mux_object_t * m )
 
         if ( ii == subtitle_default )
         {
-            track->st->disposition |= AV_DISPOSITION_DEFAULT;
+            track->st->disposition |= AV_DISPOSITION_DEFAULT |
+                                      AV_DISPOSITION_FORCED;
         }
 
         lang = lookup_lang_code(job->mux, subtitle->iso639_2 );