[Matroska-devel] Multi-Angle

Steve Lhomme steve.lhomme at free.fr
Fri Sep 17 10:05:41 CEST 2004

Moritz Bunkus a écrit :

> My proposal is that we should create a new _track type_ for this kind of
> thing. At the moment six track types are defined and three are used
> (audio, video, subtitles; complex, logo, control). I'd like to add a
> track that is 'associated' with another track. The track headers would
> ONLY contain two or three (new) elements:
> - TrackID, TrackUID (needed, currently used as well),
> - TrackAssociatedUID (the track UID this track refers to),
> - TrackSubID ("angle number", sub-ID for this track, defaults to 0,
>   must/may also be written for the "main" track)

We already have tracks that can be associated with others using 
"u-integer  	Specify that this track is an overlay track for the Track 
specified (in the u-integer)."

> All the other elements must not be present. The "associated" track has
> the same properties as the track it is associated to.

Then IMO it should be specified. Otherwise that would make tracks with 
full info and the others without. And besides they may use different 
codec. So IMO it's better to have a full-featured track. For the rest we 
know it's special because it's an overlay track (could be used for 
audio, video, subs, etc).

> Advantages:
> - Current demuxers will see unknown tracks and skip them.
> - Current demuxers will see blocks for a track they don't handle, so
>   they just skip them.
> - The overhead will not increase.
> - We make use of Matroska's extensibility without requiring the user to
>   update software -- only if they WANT the new features. "Normal" files
>   created with those new tools will still play with old/current players.
> - Those new files will be just as spec compliant as current ones
>   are. Interleaving is kept intact.
> Disadvantages:

- You can't use different codecs.
- The track can't be used without the main track (not true for DVD)
- you don't know if it's an audio, video or whatever track by looking at it

> What do you think?

You forgot to talk about my proposition for a new Block, or more 
specifically a new BlockGroup type (actually a BlockGroupVersion that 
would have value 2 in this case). IMO it makes as much good sense as 
using different tracks for the content (the other options are simply not 

Advantages :
- no need for a track for each angle
- you can have 9 angles on one part of the movie and 15 later
- the parser is always looking for the same track
* the main angle (corresponds to the main track in the other option) 
could keep the Block as it is now to keep full backward compatibility
- when extractting to DVD (see dvd->mkv->dvd) it looks better to output 
different angles in a BlockGroup into different angle cells, than 
parsing all possible tracks
- avoid having blocks for an angle in another cluster than the main track
- The file can be easily remuxed to keep only one angle


- You can't use different codecs.

More information about the Matroska-devel mailing list