[Matroska-devel] File with no SeekHead

Moritz Bunkus moritz at bunkus.org
Sat Sep 15 09:04:24 CEST 2012


On Sat, Sep 15, 2012 at 1:19 AM, Dan Hinsley <danhi at cox.net> wrote:

> So you're saying a SeekHead is required before the Clusters,
> so I can count on that and reject a file that doesn't have one as invalid?

No. A SeekHead is required in order to find stuff located after the
first cluster. If all level 1 elements (tags, attachments etc.) are
located before the first cluster then you don't need a SeekHead, and
none is required. This can be the case e.g. for streaming. Such files
are completely OK and you cannot rely on a SeekHead being present.

> That still doesn't answer the question as to what the Seek Position should
> be relative to.  The spec says the first Level 1 element,

No, they don't really say that, though I have to admit that they're a
bit vague and imprecise. The start of the data part of the segment is
what is correct and what that part means.

"The reference is the beginning of the first Segment element." <--
This is the important sentence. The second sentence mentioning that
level 1 element is an example meant to further clarify it, and you're
right that those two don't HAVE to mean the very same position. I'll
update that page to make it clearer.

Kind regards,

More information about the Matroska-devel mailing list