From f1febbdddc573c7684e1761abfe568ebfcfcdcd1 Mon Sep 17 00:00:00 2001 From: John Stebbins Date: Fri, 10 May 2013 08:49:58 -0700 Subject: [PATCH 3/9] matroskaenc: Fix writing TRACKDEFAULTFLAG The element was only being written when the value == 1. But the default value of this element is 1, so this has no useful effect. This element needs to be written when the value == 0. --- libavformat/matroskaenc.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c index 4858af5..358ba66 100644 --- a/libavformat/matroskaenc.c +++ b/libavformat/matroskaenc.c @@ -568,7 +568,9 @@ static int mkv_write_tracks(AVFormatContext *s) tag = av_dict_get(st->metadata, "language", NULL, 0); put_ebml_string(pb, MATROSKA_ID_TRACKLANGUAGE, tag ? tag->value:"und"); - if (st->disposition) + // The default value for TRACKFLAGDEFAULT is 1, so add element + // if we need to clear it. + if (!(st->disposition & AV_DISPOSITION_DEFAULT)) put_ebml_uint(pb, MATROSKA_ID_TRACKFLAGDEFAULT, !!(st->disposition & AV_DISPOSITION_DEFAULT)); // look for a codec ID string specific to mkv to use, -- 1.8.1.4