[Matroska-devel] Hi, question about the MKV tags

Steve Lhomme slhomme at matroska.org
Mon Feb 14 17:03:41 CET 2011

On Mon, Feb 14, 2011 at 2:24 PM, Moritz Bunkus <moritz at bunkus.org> wrote:
> Also I don't think there's actually a real need for padding for each and
> every level 1 element. There's only one case that should always be
> checked: that there's enough space in front of the first cluster for at
> least a seekhead with a single entry. That seekhead can point to a
> secondary seekhead (e.g. near the end of the file) that contains
> pointers to all the other level 1 elements.

So are we back to using double Seek Heads ? I thought this was
deprecated. It adds extra complexity for a fundamental part that is
supposed to make the file handling easier.

> Leaving voids everywhere is not a proper solution.

I agree

>> Another "aleatory" case:  the file
>> http://samples.mplayerhq.hu/Matroska/anamorphic/starwars10MB-1.mkv
>> (VirtualDubMod) writes InfoSegment before SeekHead.
> Perfectly valid. The seekhead should only be located before the first
> cluster -- if a seekhead is present at all. You don't even need one in
> life streaming cases as long as all other relevant level 1 elements (at
> least segment info and track headers) occur before the first cluster.

It is valid indeed but kinda defeat the point of the Seek Head if you
find Level 1 elements before.

By the way for the adaptive streaming "profile" (aka guideline), we
will need to tighten the rules for placement. As there needs to be a
part that it clearly for playback initialization (with Segment Info
and Track Info at least) and one with the seeking info (Cues). I'd put
Seek Head in the former. Luckily with such a design it matters less is
the Seek Head is at the front or not (ie more mkvmerge friendly), but
it's still not good when simply streaming as a progressive download.

Steve Lhomme
Matroska association Chairman

More information about the Matroska-devel mailing list