[Matroska-devel] Re: Timestamp precision in matroska files

Steve Lhomme steve.lhomme at free.fr
Fri Jan 9 10:13:43 CET 2004

Moritz Bunkus wrote:

> Heya,
> whatever we do, we probably need a new block layout if we want to
> improve accuracy because the 16bit sint is not very large. There are two

Well, before we go on further in the discussion, I'd like some cases 
where it is true that we need a more accurate Block timecode.

> proposals how to do that, imho:
> - use 32bit sint,
> - use an EBML sint.
> The former has the advantage of being easy on the parser. Alex proposed
> to have a flag that says '16bit or 32bit' which would keep the overhead
> under control - 32bits would only be used if the relative timecode
> excessed those 15 bits. 
> The latter has the advantage of not being fixed at all. If - for some
> obscure reason - someone uses a timecode scale of 1 (ns precision) then
> a 32bit relative timecode only covers approx. 2 seconds in either
> direction ;)
> Anyway, we should use a new EBML ID for such a block although
> libmatroska should somehow make KaxBlock work with it, too (no, i
> definitely do NOT want a second class for that!).

We can use a flag in the Block to specify that the size of the timecode 
is "not as it used to be". We'll have the same compatibility problems 
that when we introduced new lacing schemes. No need to use a new Block.

> As to if players REALLY need sample accurate seeking I can't say much,
> I'm not a player developper.

I'm a player user. And I want to develop a player too (for DJing). And I 
want to have sample accurate start/stop. My other friend is a "real" DJ 
also want this feature badly. So that's at least 2 persons that want 
this feature from the container... In the digital world we should be 
allowed to expect digital precision (and any rounding is a *no* for me).

For video & subtitles we already have a sample-accurate system (sample 
== frame) but now we need it for audio too.

More information about the Matroska-devel mailing list