| playbin |
| -------- |
| |
| The purpose of this element is to decode and render the media contained in a |
| given generic uri. The element extends GstPipeline and is typically used in |
| playback situations. |
| |
| Required features: |
| |
| - accept and play any valid uri. This includes |
| - rendering video/audio |
| - overlaying subtitles on the video |
| - optionally read external subtitle files |
| - allow for hardware (non raw) sinks |
| - selection of audio/video/subtitle streams based on language. |
| - perform network buffering/incremental download |
| - gapless playback |
| - support for visualisations with configurable sizes |
| - ability to reject files that are too big, or of a format that would require |
| too much CPU/memory usage. |
| - be very efficient with adding elements such as converters to reduce the |
| amount of negotiation that has to happen. |
| - handle chained oggs. This includes having support for dynamic pad add and |
| remove from a demuxer. |
| |
| Components |
| ---------- |
| |
| * decodebin2 |
| |
| - performs the autoplugging of demuxers/decoders |
| - emits signals when for steering the autoplugging |
| - to decide if a non-raw media format is acceptable as output |
| - to sort the possible decoders for a non-raw format |
| - see also decodebin2 design doc |
| |
| * uridecodebin |
| |
| - combination of a source to handle the given uri, an optional queueing element |
| and one or more decodebin2 elements to decode the non-raw streams. |
| |
| * playsink |
| |
| - handles display of audio/video/text. |
| - has request audio/video/text input pad. There is only one sinkpad per type. |
| The requested pads define the configuration of the internal pipeline. |
| - allows for setting audio/video sinks or does automatic sink selection. |
| - allows for configuration of visualisation element. |
| - allows for enable/disable of visualisation, audio and video. |
| |
| * playbin |
| |
| - combination of one or more uridecodebin elements to read the uri and subtitle |
| uri. |
| - support for queuing new media to support gapless playback. |
| - handles stream selection. |
| - uses playsink to display. |
| - selection of sinks and configuration of uridecodebin with raw output formats. |
| |
| |
| Gapless playback |
| ---------------- |
| |
| playbin has an "about-to-finish" signal. The application should configure a new |
| uri (and optional suburi) in the callback. When the current media finishes, this |
| new media will be played next. |
| |
| |
| |