blob: 232ac0cd23b4d53e7725ac810bde2de4b4cf0aa0 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
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.
|