[Matroska-devel] File with no SeekHead

Dan Hinsley danhi at cox.net
Sat Sep 15 01:19:50 CEST 2012

The EblmVoid is there because it was a SeekHead and I turned it into a void
for testing.  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?

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, your other email
said relative to the data portion of the Segment.  I realize that most of
the time these will be the same, but what is the correct behavior.



-----Original Message-----
From: matroska-devel-bounces at lists.matroska.org
[mailto:matroska-devel-bounces at lists.matroska.org] On Behalf Of Moritz
Sent: Friday, September 14, 2012 2:36 PM
To: Discussion about the current and future development of Matroska
Subject: Re: [Matroska-devel] File with no SeekHead


you have to place at least one seek head before the first clusters.
Players usually only scan a file sequentially up to the first cluster
and evaluate all SeekHeads found until then (a player should do this
recursively, meaning if it finds a SeekHead before the first cluster
then it should also evaluate the SeekHeads pointed to in that first
SeekHead etc).

That EbmlVoid element contains enough space for a SeekHead pointing to
the SeekHead at the end of the file, for example. If that EbmlVoid
wasn't there then you could also relocate the whole SegmentTracks
element to the end of the file and use the resulting space for your
first SeekHead. Just make sure to make that SeekHead point to the
relocated SegmentTracks element if you do that.

In your case you only have a SeekHead at the end of the file.
Therefore most players will not find the tags, attachments and
chapters. They're also not required to scan the end of the file for

Kind regards,
Matroska-devel mailing list
Matroska-devel at lists.matroska.org
Read Matroska-Devel on GMane:

More information about the Matroska-devel mailing list