File: part-playbin.txt

package info (click to toggle)
gst-plugins-base1.0 1.10.4-1%2Bdeb9u1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 32,548 kB
  • sloc: ansic: 256,816; sh: 5,213; makefile: 2,908; xml: 1,743; perl: 1,561; python: 309; cpp: 260; sed: 16
file content (69 lines) | stat: -rw-r--r-- 2,327 bytes parent folder | download | duplicates (4)
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.