docs/design/part-playbin2.txt: Add some leftover doc.
authorWim Taymans <wim.taymans@gmail.com>
Wed, 21 May 2008 11:52:30 +0000 (11:52 +0000)
committerWim Taymans <wim.taymans@gmail.com>
Wed, 21 May 2008 11:52:30 +0000 (11:52 +0000)
Original commit message from CVS:
* docs/design/part-playbin2.txt:
Add some leftover doc.

ChangeLog
docs/design/part-playbin2.txt [new file with mode: 0644]

index d0c6d69392d6f11bd4fcb76ea942557ec5e5dc09..e73246b5e7ef7b56b0e5ca308db79cf68e843a39 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2008-05-21  Wim Taymans  <wim.taymans@collabora.co.uk>
+
+       * docs/design/part-playbin2.txt:
+       Add some leftover doc.
+
 2008-05-21  Sebastian Dröge  <slomo@circular-chaos.org>
 
        * gst/audioconvert/gstchannelmix.c: (gst_channel_mix_fill_others):
diff --git a/docs/design/part-playbin2.txt b/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.
+
+
+