decodebin3

GstBin that auto-magically constructs a decoding pipeline using available decoders and demuxers via auto-plugging. The output is raw audio, video or subtitle streams.

decodebin3 differs from the previous decodebin (decodebin2) in important ways:

  • supports publication and selection of stream information via GstStreamCollection messages and GST_EVENT_SELECT_STREAMS events.

  • dynamically switches stream connections internally, and reuses decoder elements when stream selections change, so that in the normal case it maintains 1 decoder of each type (video/audio/subtitle) and only creates new elements when streams change and an existing decoder is not capable of handling the new format.

  • supports multiple input pads for the parallel decoding of auxiliary streams not muxed with the primary stream.

  • does not handle network stream buffering. decodebin3 expects that network stream buffering is handled upstream, before data is passed to it.

Hierarchy

GObject
    ╰──GInitiallyUnowned
        ╰──GstObject
            ╰──GstElement
                ╰──GstBin
                    ╰──decodebin3

Implemented interfaces

Factory details

Authors: – Edward Hervey

Classification:Generic/Bin/Decoder

Rank – none

Plugin – playback

Package – GStreamer Base Plug-ins

Pad Templates

audio_%u

ANY

Presencesometimes

Directionsrc

Object typeGstPad


sink

ANY

Presencealways

Directionsink

Object typeGstPad


sink_%u

ANY

Presencerequest

Directionsink

Object typeGstPad


src_%u

ANY

Presencesometimes

Directionsrc

Object typeGstPad


text_%u

ANY

Presencesometimes

Directionsrc

Object typeGstPad


video_%u

ANY

Presencesometimes

Directionsrc

Object typeGstPad


Signals

about-to-finish

about_to_finish_callback (GstElement * param_0,
                          gpointer udata)
def about_to_finish_callback (param_0, udata):
    #python callback for the 'about-to-finish' signal
function about_to_finish_callback(param_0: GstElement * param_0, udata: gpointer udata): {
    // javascript callback for the 'about-to-finish' signal
}

This signal is emitted when the data for the selected URI is entirely buffered and it is safe to specify another URI.

Parameters:

param_0
No description available
udata
No description available

Flags: Run Last


select-stream

gint
select_stream_callback (GstElement * decodebin,
                        GstStreamCollection * collection,
                        GstStream * stream,
                        gpointer udata)
def select_stream_callback (decodebin, collection, stream, udata):
    #python callback for the 'select-stream' signal
function select_stream_callback(decodebin: GstElement * decodebin, collection: GstStreamCollection * collection, stream: GstStream * stream, udata: gpointer udata): {
    // javascript callback for the 'select-stream' signal
}

This signal is emitted whenever decodebin needs to decide whether to expose a stream of a given collection.

Note that the prefered way to select streams is to listen to GST_MESSAGE_STREAM_COLLECTION on the bus and send a GST_EVENT_SELECT_STREAMS with the streams the user wants.

Parameters:

decodebin

a decodebin3

collection

a GstStreamCollection

stream

a GstStream

udata
No description available
Returns (gint)

1 if the stream should be selected, 0 if it shouldn't be selected. A value of -1 (default) lets decodebin decide what to do with the stream.

Flags: Run Last


Properties

caps

“caps” GstCaps *

The caps on which to stop decoding. (NULL = default)

Flags : Read / Write

Default value :

video/x-raw(ANY); audio/x-raw(ANY); text/x-raw(ANY); subpicture/x-dvd; subpicture/x-dvb; subpicture/x-xsub; subpicture/x-pgs; closedcaption/x-cea-608; closedcaption/x-cea-708; application/x-onvif-metadata

The results of the search are