tizen 2.3 release
[framework/multimedia/gst-plugins-base0.10.git] / docs / design / part-playbin2.txt
1 playbin2
2 --------
3
4 The purpose of this element is to decode and render the media contained in a
5 given generic uri. The element extends GstPipeline and is typically used in
6 playback situations.
7
8 Required features:
9
10  - accept and play any valid uri. This includes
11    - rendering video/audio
12    - overlaying subtitles on the video
13  - optionally read external subtitle files
14  - allow for hardware (non raw) sinks
15  - selection of audio/video/subtitle streams based on language.
16  - perform network buffering/incremental download
17  - gapless playback
18  - support for visualisations with configurable sizes
19  - ability to reject files that are too big, or of a format that would require
20    too much CPU/memory usage.
21  - be very efficient with adding elements such as converters to reduce the
22    amount of negotiation that has to happen.
23  - handle chained oggs. This includes having support for dynamic pad add and
24    remove from a demuxer.
25
26 Components
27 ----------
28
29 * decodebin2
30
31  - performs the autoplugging of demuxers/decoders
32  - emits signals when for steering the autoplugging
33    - to decide if a non-raw media format is acceptable as output
34    - to sort the possible decoders for a non-raw format
35  - see also decodebin2 design doc
36
37 * uridecodebin
38
39  - combination of a source to handle the given uri, an optional queueing element
40    and one or more decodebin2 elements to decode the non-raw streams.
41
42 * playsink
43
44  - handles display of audio/video/text.
45  - has request audio/video/text input pad. There is only one sinkpad per type.
46    The requested pads define the configuration of the internal pipeline. 
47  - allows for setting audio/video sinks or does automatic sink selection.
48  - allows for configuration of visualisation element.
49  - allows for enable/disable of visualisation, audio and video.
50
51 * playbin2
52
53  - combination of one or more uridecodebin elements to read the uri and subtitle
54    uri.
55  - support for queuing new media to support gapless playback.
56  - handles stream selection.
57  - uses playsink to display.
58  - selection of sinks and configuration of uridecodebin with raw output formats.
59
60
61 Gapless playback
62 ----------------
63
64 playbin2 has an "about-to-finish" signal. The application should configure a new
65 uri (and optional suburi) in the callback. When the current media finishes, this
66 new media will be played next.
67
68
69