On 9/27/2016 6:36 PM, Hendrik Leppkes wrote: > On Tue, Sep 27, 2016 at 11:14 PM, James Almer <jamr...@gmail.com> wrote: >> On 9/27/2016 5:56 PM, Hendrik Leppkes wrote: >>> On Tue, Sep 27, 2016 at 8:03 PM, James Almer <jamr...@gmail.com> wrote: >>>> It's listed as mandatory in https://matroska.org/technical/specs/index.html >>>> >>>> Signed-off-by: James Almer <jamr...@gmail.com> >>>> --- >>>> The spec also mentions FieldOrder "MUST be ignored if FlagInterlaced is not >>>> set to interlaced". Since it's a mandatory element, i interpreted that as a >>>> demuxer guideline. >>>> >>> >>> Its a mandatory field with a default value - that kind of definition >>> is a bit weird, but the general consensus is that it does not have to >>> be written if it would write the default anyway. >>> >>> - Hendrik >> >> I find it weird it was defined this way, considering the precedent set by >> BlockDuration which is not tagged as mandatory but its description >> explicitly says "This Element is mandatory when DefaultDuration is set for >> the track". >> >> Alright then, patch dropped from the set. >> > > For the record, its written here: > https://matroska.org/technical/specs/notes.html > > 4. Mandatory > - This element is mandatory in the file. > - Mandatory elements with a default value may be left out of the file. > In the absence of a mandatory element, the element's default value is > used. > - A mandatory element is not written if its parent is not in the file.
Ok, that clears things. For that matter, since FlagInterlaced is also mandatory with a default "Undetermined" value, i guess it would make sense to not write it in such scenario. > > The BlockDuration is a bit weird, but the same concept applies. If > DefaultDuration is set, it becomes mandatory, but it still has a > default value (ie. the DefaultDuration), so it doesn't have to be > written if it matches this value. > This whole concept of mandatory with default can be very confusing, > but it is what it is. > > And you conveniently left out the good part "This Element is mandatory > when DefaultDuration is set for the track (but can be omitted as other > default values).", specifically mentioning this case =) Somehow missed that, heh. > > - Hendrik > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel > _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel