Merge "muxer: codec_id is a mandatory element"

This commit is contained in:
Vignesh Venkatasubramanian
2014-05-18 12:48:29 -07:00
committed by Gerrit Code Review

View File

@@ -612,6 +612,10 @@ bool Track::Write(IMkvWriter* writer) const {
if (!writer) if (!writer)
return false; 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 // |size| may be bigger than what is written out in this function because
// derived classes may write out more data in the Track element. // derived classes may write out more data in the Track element.
const uint64 payload_size = PayloadSize(); const uint64 payload_size = PayloadSize();
@@ -619,10 +623,6 @@ bool Track::Write(IMkvWriter* writer) const {
if (!WriteEbmlMasterElement(writer, kMkvTrackEntry, payload_size)) if (!WriteEbmlMasterElement(writer, kMkvTrackEntry, payload_size))
return false; return false;
// |type_| has to be specified before the Track can be written.
if (!type_)
return false;
uint64 size = EbmlElementSize(kMkvTrackNumber, number_); uint64 size = EbmlElementSize(kMkvTrackNumber, number_);
size += EbmlElementSize(kMkvTrackUID, uid_); size += EbmlElementSize(kMkvTrackUID, uid_);
size += EbmlElementSize(kMkvTrackType, type_); size += EbmlElementSize(kMkvTrackType, type_);