rx-player
Version:
Canal+ HTML5 Video Player
56 lines (45 loc) • 2.22 kB
Markdown
# The `Manifest`
This directory defines and exports the `Manifest` class, which is a central data structure
in the RxPlayer's code.
A `Manifest` describes a single content:
- which tracks it contains
- which quality it has
- what are its minimum and maximum seekable position
- if it is a live content or a VoD content
- if it has to be updated
- and so on
This structure is used heavily by the rest of the RxPlayer.
## Properties of the `Manifest` structure
The `Manifest` structure is highly hierarchical, it can be resumed as such
```
+-----------------------------------------+
| Manifest |
| +------------------------------------+ |
| | Period | |
| | +-------------------------------+ | |
| | | Adaptation | | |
| | | +--------------------------+ | | |
| | | | Representation | | | |
| | | | +---------------------+ | | | |
| | | | | RepresentationIndex | | | | |
| | | | | +----------------+ | | | | |
| | | | | | Segment | | | | | |
| | | | | | | | | | | |
| | | | | +----------------+ | | | | |
| | | | +---------------------+ | | | |
| | | +--------------------------+ | | |
| | +-------------------------------+ | |
| +------------------------------------+ |
+-----------------------------------------+
```
For example a `Manifest` structure contains multiple methods and properties, one of which
is `periods`, which contains `Period` classes, etc.
Here is the rough concept behind each of those structures:
- `Manifest`: properties about the whole content.
- `Period`: properties concerning only a time-delimited sub-part of a content.
- `Adaptation`: tracks (either audio, video or text) available in a given `Period`.
- `Representation`: Different qualities available in the parent `Adaptation`
- `RepresentationIndex`: Logic allowing to retrieve the list of segments for the parent
`Representation`. That logic depends on the "transport" used (e.g. Smooth, DASH etc.)
- `Segment` represents a single segment from the linked `Representation`, and has been
generated by the `RepresentationIndex`.