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
This commit is contained in:
Vignesh Venkatasubramanian
2014-04-29 00:24:11 -07:00
parent 9097a0691b
commit 2a63e473d8

View File

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