]> granicus.if.org Git - handbrake/commitdiff
libav: patch mkv track language tag problem
authorJohn Stebbins <jstebbins.hb@gmail.com>
Fri, 25 Sep 2015 16:01:47 +0000 (09:01 -0700)
committerJohn Stebbins <jstebbins.hb@gmail.com>
Fri, 25 Sep 2015 16:01:47 +0000 (09:01 -0700)
"language" is not a valid mkv tag.  Writing it causes confusing behavior
if the track language ebml differs from the tag.

contrib/ffmpeg/A06-matroskaenc-track-lang.patch [new file with mode: 0644]

diff --git a/contrib/ffmpeg/A06-matroskaenc-track-lang.patch b/contrib/ffmpeg/A06-matroskaenc-track-lang.patch
new file mode 100644 (file)
index 0000000..4b16e4d
--- /dev/null
@@ -0,0 +1,15 @@
+diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c
+index b39d1b2..d65b6eb 100644
+--- a/libavformat/matroskaenc.c
++++ b/libavformat/matroskaenc.c
+@@ -988,7 +988,9 @@ static int mkv_write_tag(AVFormatContext *s, AVDictionary *m, unsigned int eleme
+     while ((t = av_dict_get(m, "", t, AV_DICT_IGNORE_SUFFIX)))
+         if (av_strcasecmp(t->key, "title") &&
+-            av_strcasecmp(t->key, "encoding_tool"))
++            av_strcasecmp(t->key, "encoding_tool") &&
++            (elementid != MATROSKA_ID_TAGTARGETS_TRACKUID ||
++             av_strcasecmp(t->key, "language")))
+             mkv_write_simpletag(s->pb, t);
+     end_ebml_master(s->pb, tag);