[FFmpeg-cvslog] avformat/matroskaenc: Add check for using explicit TrackNumber

Andreas Rheinhardt git at videolan.org
Tue Apr 21 08:32:48 EEST 2020

ffmpeg | branch: master | Andreas Rheinhardt <andreas.rheinhardt at gmail.com> | Fri Nov  1 11:49:47 2019 +0100| [86de864741fdc046f353a82da526445db44c4287] | committer: Andreas Rheinhardt

avformat/matroskaenc: Add check for using explicit TrackNumber

When creating DASH streams, the TrackNumber is externally prescribed
and not derived from the number of streams in the AVFormatContext, so
if the number of tracks for a file using an explicit TrackNumber was
more than one, the resulting file would be broken (it would be impossible
to tell to which track a Block belongs if different tracks share the
same TrackNumber). So disallow this.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at gmail.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=86de864741fdc046f353a82da526445db44c4287

 libavformat/matroskaenc.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c
index a65221e143..2cd5933da8 100644
--- a/libavformat/matroskaenc.c
+++ b/libavformat/matroskaenc.c
@@ -2650,6 +2650,9 @@ static int mkv_init(struct AVFormatContext *s)
         track->track_num_size = ebml_num_size(track->track_num);
+    if (mkv->is_dash && nb_tracks != 1)
+        return AVERROR(EINVAL);
     return 0;

More information about the ffmpeg-cvslog mailing list