From 2a63e473d8d78eaaf87abc2d71c1632923354782 Mon Sep 17 00:00:00 2001 From: Vignesh Venkatasubramanian Date: Tue, 29 Apr 2014 00:24:11 -0700 Subject: [PATCH] muxer: codec_id is a mandatory element codec_id element for a Track is mandatory and it does not have a default. Rejecting the file if that happens. Change-Id: I4fb0dfcd4c09eeabf22634db7fdf6ca818c93917 --- mkvmuxer.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mkvmuxer.cpp b/mkvmuxer.cpp index d245fbd..56d9fee 100644 --- a/mkvmuxer.cpp +++ b/mkvmuxer.cpp @@ -612,6 +612,10 @@ bool Track::Write(IMkvWriter* writer) const { if (!writer) return false; + // mandatory elements without a default value. + if (!type_ || !codec_id_) + return false; + // |size| may be bigger than what is written out in this function because // derived classes may write out more data in the Track element. const uint64 payload_size = PayloadSize(); @@ -619,10 +623,6 @@ bool Track::Write(IMkvWriter* writer) const { if (!WriteEbmlMasterElement(writer, kMkvTrackEntry, payload_size)) return false; - // |type_| has to be specified before the Track can be written. - if (!type_) - return false; - uint64 size = EbmlElementSize(kMkvTrackNumber, number_); size += EbmlElementSize(kMkvTrackUID, uid_); size += EbmlElementSize(kMkvTrackType, type_);