Added gst-plugins-base-subtitles0.10-0.10.34 for Meego Harmattan 1.2
[mafwsubrenderer] / gst-plugins-base-subtitles0.10 / docs / design / part-playbin2.txt
diff --git a/gst-plugins-base-subtitles0.10/docs/design/part-playbin2.txt b/gst-plugins-base-subtitles0.10/docs/design/part-playbin2.txt
new file mode 100644 (file)
index 0000000..195d048
--- /dev/null
@@ -0,0 +1,69 @@
+playbin2
+--------
+
+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.
+
+* playbin2
+
+ - 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
+----------------
+
+playbin2 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.
+
+
+