[matroska-devel] Comments needed on seeking part

Steve Lhomme steve.lhomme at free.fr
Fri Feb 14 12:36:28 CET 2003

As you know, I'm currently working on the cueing/seeking part in matroska.
I'll have to change a few things in the cueing part (more general references
introduction), but that's not my problem for the moment (it's trivial).

The problem is the Meta Seek entries. The goal of this part is to avoid reading
the whole file (or lots of heads) to quickly find some specific content (track
entries, clusters, attachements, etc). The problem is that when you write a file
(in VDub for example) you don't know the number of Clusters you'll have to deal
with, and since you want to have them all in the Meta Seek element, you have to
write it at the end. But if it's saved at the end it is completely useless (you
have to parse many headers to get to that point that gives you the position of
what you already read). This means that this feature is only available "offline"
on post processing (even VDub can't predict the number of Clusters and write
dummy ones and fill the data later).

Since we want to have very fast seeking of the file in many cases, I think this
feature should be implemented in VDub (at least in a separate menu). And the
DirectShow filter should try to find the Meta Seek element at the beggining of
the file (first element in the Segment) otherwise consider it's not present.

Also, if the Meta Seek element doesn't exist, the cue entries can still exist at
the end of the file (which contain frame-precision-seeking based on timecode),
so the DirectShow filter might be able to first parse the file to find these
entries before starting the playback (not possible from a network stream).

More information about the Matroska-devel mailing list