Re: clarifications on the use of Unknown Sized Elements
Steve Lhomme <[email protected]>
| Newsgroups | gmane.comp.multimedia.matroska.devel |
|---|---|
| Message-ID | <CAOXsMFKAP+cWLJFds8-5LJm4tbS3zhdCf_UcZVPaW_FKBAJN+g@mail.gmail.com> |
On Tue, Jun 9, 2015 at 8:48 AM, Moritz Bunkus <[email protected]> wrote: > Hey, > >> - Only Elements that are Master-elements may use an unknown size. > > I would be good with this, even though I don't know whether or not we > had that restriction before. > >> - When is the Element of Unknown Size ended. In discussions (in >> github, mailing list, and irc) there has been two answers to this: >> 1. Upon the first occurrence of an Element that is not a valid >> sub-element of the unknown-sized element. >> 2. Upon the first occurrence of an Element that is at the same or a >> higher level than the one with an infite size > > I was the one who said 2.; basically what I meant was 1. 1. is more > precise than my wording yesterday (2.), therefore disregard 2., please. > > 1. also hints at the problem with elements than can occur at multiple > levels (EbmlVoid, SimpleTags). > >> - Dependency on Schema > >> For the SimpleTag option available, the interpretation of the ending >> of the element presumes that the parse has knowledge of the EBML >> Schema/Profile of mastroska in any version 1-4. I'd like to include >> some statement to say that the use of an element of unknown size >> requires the use of the corresponding schema. > > Hmm… going with 1. from before we could indeed have a scenario where an > element from (a hypothetical version) v5 may include an element from > earlier versions, e.g. we introduce KaxÜberTags (v5 element) which may > include the already existing KaxTag elements (v4). > > In that situation a parser that only knows v1-v4 but not v5 could find > itself in a situation where a KaxÜberTags master has an infinite size, > but the parser would then erroneously see that KaxTag as the end of the > unknown infinite-sized KaxÜberTags. That's a problem only if the shared KagTag element is found at a lower level than where we found the infinite size element. If it's at a higher level, it's skipped until some element at a similar or lower level is found. But still a valid case that should be mutually exclusive with the use on unknown elements. libebml already works like that to skip data as it rely on the context level. > So you may be right, and Steve might be wrong. > > Kind regards, > mosu > > _______________________________________________ > Matroska-devel mailing list > [email protected] > http://lists.matroska.org/cgi-bin/mailman/listinfo/matroska-devel > Read Matroska-Devel on GMane: http://dir.gmane.org/gmane.comp.multimedia.matroska.devel -- Steve Lhomme Matroska association Chairman _______________________________________________ Matroska-devel mailing list [email protected] http://lists.matroska.org/cgi-bin/mailman/listinfo/matroska-devel Read Matroska-Devel on GMane: http://dir.gmane.org/gmane.comp.multimedia.matroska.devel