[Matroska-devel] Segment hard/soft/medium linking
steve.lhomme at free.fr
Fri Mar 11 14:54:09 CET 2005
As I'm adding support for more complex stuff in VLC, I encountered a pb
with segment linking and the demos of Haali.
Haali uses tags to define what segments should be played and when. I
didn't look precisely at the content of his tags, because this is not
the way to do it anyway. In short, as I said on IRC, "tags are not meant
to influence the content, especially the way it's played". Matroska is
modular and tags are not a part that is used for playback.
Nevertheless, we found a grey area in the specs and some use case might
not be covered by our current system. So let's find out what and clarify
things for everyone.
Segment linking is a way to virtually link some segment so that when
playback one, you can easily reference the other. So far we have the
- hard linking, that's when you split a segment. The resulting segments
have continuous timecodes. They are linked using PrevUID and NextUID. In
the end, on playback the user should see them as just one (the original
unsplit). Chapters only reference content from the segment they are in
(so segments should be merged on playback).
Hard linking is somehow like .VOB files but in a more liberal way.
Mosu and alexnoe, could you confirm that splitting works this way in
your software ?
- soft linking, that was recently introduced for the DVD domains. Each
chapter is related to the other because they share the same family UID.
The timecodes of each segment are independant. That means each segment
is standalone, but a chapter codec could reference a segment in the same
family, to jump there. This reference is done with the ChapterTranslate
table in the segment Info (translate a codec ID to a segment UID).
Now what Haali is trying to do is somehow different. He wants segments
to have the following playback scheme :
intro -> ep1 -> outro -> intro -> ep2 -> outro
- I will call that medium linking as it needs features from hard and
soft linking. The timecode of the outro has to be independant of the
episode. That means hard linking is not possible. Also the NextUID of
the intro and the PrevUID of the outro should not be set because they
can only reference one item. It could be done with soft linking but we
would miss a key feature : each intro+epX+outro would not be seen as one
item. That means the total duration would not be specified and the
tracks might differ.
So we might need an additional system for medium linking.
I'll think about it. But until then, comments/ideas are welcome.
They are always welcome, anyway..
robUx4 on blog <http://robux4.blogspot.com/>
More information about the Matroska-devel