> On Jun 22, 2016, at 10:16 AM, Michael Bradshaw <mjbs...@gmail.com> wrote:
> 
> On Tue, Jun 21, 2016 at 12:22 PM, Michael Niedermayer
> <mich...@niedermayer.cc> wrote:
>> what does "supported" / "unsupported" mean, is this defined somewhere ?
> 
> As far as WebM is concerned, SegmentUID doesn't exist.
> 
> In this situation, writing SegmentUID is Undefined-Ignore or
> Optional-Fail/Forbidden, depending on the file. I concur with Dave's
> analysis, but parsing may fail if SegmentUID is written and the master
> element has an unknown size (which will be the case if ffmpeg is
> writing to an unseakable output, like pipes). This is because master
> elements with unknown size are terminated by the first unrecognized
> would-be-child element[1], which would cause the parser to terminate
> the Info element.

I don’t quite think that the EBML specification agrees with this explanation. 
See:

"When EBML is used in transmission or streaming, data that is not part of an 
EBML Element is permitted to be present within a Master-element if 
`unknownsizeallowed` is enabled within that Master-element's definition. In 
this case, the reader should skip data until a valid Element ID of the same 
level or the next greater level of the Master-element is found. What Element 
IDs are considered valid within a Master-element is identified by the EBML 
Schema for that version of the EBML Document Type. Any data contained with a 
Master-element that is not part of an Element SHOULD be ignored."

In this case a SegmentUID Element (undefined in webm) should be skipped be the 
reader rather than cause the termination of the reader.

The end of an unknown-sized Element is determined by the beginning of the next 
known Element that is not a valid sub-element rather than the first unknown 
Element.

> This would continue to screw up parsing, because now
> there could be other children of Info (like DateUTC) after the
> SegmentUID, and since the Info element has terminated and those aren't
> valid children of Segment, it would cause the Segment element to
> terminate. At that point, the file is pretty broken because now there
> is no Segment element containing the Clusters and other elements.
> 
> [1]: "The end of a Master-element with unknown size is determined by
> the beginning of the next element that is not a valid sub-element of
> that Master-element" (from the current EBML spec)

Best Regards,
Dave Rice

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Reply via email to