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_);