ROE: Difference between revisions

From XiphWiki
Jump to navigation Jump to search
(create page)
 
(Add some descriptive text, list relationship headers)
Line 1: Line 1:
= Overview =
= Overview =


ROE (Roger O Encephelon) is the guiding light in a twisty maze of passages. Where before there was only dark matter, now there is form; where before there was uncertainty, now there is hope.
ROE (...) is a way of describing the relationships between tracks of media in a stream. It is used to group tracks which have similar purpose and to identify alternatives.


= The ROE model =
= The ROE model =


As with all things that are awesome, the significance of ROE trascends its manifestations. Here we describe two representations: that of ROE XML, and that of ROE in Skeleton.
Here we describe two representations: that of ROE XML, and that of ROE in Skeleton. Each representation is capable of entirely encoding the relationships of the ROE model, such that it is possible to losslessly convert between them.


= ROE XML =
= ROE XML =


ROE XML (Xylem Mitosis Leonidas) is the musical expression of the form of ROE. Those who hear it describe it as warm, structured, simple and complete. It is the sound of the wind shearing through an electrified tree, and it will save us from techno.
ROE XML is a hierarchical serialization of the ROE model for a particular stream.


= Representation in Skeleton =
= Representation in Skeleton =


Without encephalon, the skeleton is meaningless. ROE in Skeleton is inverted, perverse, severe. It is the claws of an animal threatening to tear itself apart; it knows that the quickest way to guarantee the prosperity of its spawn is to offer itself unto the ether. It describes itself in riddles, alone intact, together complete.
When the relationships described by ROE are written into an Ogg stream, they are encoded using the message header fields of Ogg Skeleton fisbones for each track. One of the primary design goals for fisbone headers is to minimize the need for global information to be stored in a stream. Each track's fisbone contains headers describing only itself and its relationship to other tracks in the stream. This allows tracks to be inserted or removed at the Ogg level without needing to modify any data in individual headers.
 
== Relationships ==
 
Relationships between tracks are given by the following headers:
 
=== Provides ===
 
''Provides'' introduces a virtual label such as "commentary", which this track provides. Many tracks may provide the same such label, and as long as one is present then a dependency on that label can be satisfied.
 
=== Depends ===
 
This declares that it is not valid to include this track in a stream unless the track it depends on is present. An example use of this might be the generic captioning of sound effects for the deaf, which may not make sense unless the captioning of speech (in an appropriate language) is also rendered.
''Depends'' refers to either a virtual label provided by another track, or an explicit track ID.
 
When removing a track from a file, any other tracks dependent on it must also be removed.
 
=== Recommends ===
 
''Recommends'' refers to either a virtual label provided by another track, or an explicit track ID.
 
=== Suggests ===
 
''Suggests'' refers to either a virtual label provided by another track, or an explicit track ID.
 
=== Conflicts ===
 
''Conflicts'' refers to either a virtual label provided by another track, or an explicit track ID.
 
 
== Serving Suggestions ==
 
=== Disposition ===

Revision as of 04:04, 7 March 2008

Overview

ROE (...) is a way of describing the relationships between tracks of media in a stream. It is used to group tracks which have similar purpose and to identify alternatives.

The ROE model

Here we describe two representations: that of ROE XML, and that of ROE in Skeleton. Each representation is capable of entirely encoding the relationships of the ROE model, such that it is possible to losslessly convert between them.

ROE XML

ROE XML is a hierarchical serialization of the ROE model for a particular stream.

Representation in Skeleton

When the relationships described by ROE are written into an Ogg stream, they are encoded using the message header fields of Ogg Skeleton fisbones for each track. One of the primary design goals for fisbone headers is to minimize the need for global information to be stored in a stream. Each track's fisbone contains headers describing only itself and its relationship to other tracks in the stream. This allows tracks to be inserted or removed at the Ogg level without needing to modify any data in individual headers.

Relationships

Relationships between tracks are given by the following headers:

Provides

Provides introduces a virtual label such as "commentary", which this track provides. Many tracks may provide the same such label, and as long as one is present then a dependency on that label can be satisfied.

Depends

This declares that it is not valid to include this track in a stream unless the track it depends on is present. An example use of this might be the generic captioning of sound effects for the deaf, which may not make sense unless the captioning of speech (in an appropriate language) is also rendered. Depends refers to either a virtual label provided by another track, or an explicit track ID.

When removing a track from a file, any other tracks dependent on it must also be removed.

Recommends

Recommends refers to either a virtual label provided by another track, or an explicit track ID.

Suggests

Suggests refers to either a virtual label provided by another track, or an explicit track ID.

Conflicts

Conflicts refers to either a virtual label provided by another track, or an explicit track ID.


Serving Suggestions

Disposition