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.

decodebin3 is still experimental API and a technology preview. Its behaviour and exposed API is subject to change.

Hierarchy

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

Factory details

Authors: – Edward Hervey

Classification:Generic/Bin/Decoder

Rank – none

Plugin – gstplayback

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


no-more-pads

no_more_pads_callback (GstElement * param_0,
                       gpointer udata)
def no_more_pads_callback (param_0, udata):
    #python callback for the 'no-more-pads' signal
function no_more_pads_callback(param_0: GstElement * param_0, udata: gpointer udata): {
    // javascript callback for the 'no-more-pads' signal
}

Parameters:

param_0
No description available
udata
No description available

Flags: Run Last


pad-added

pad_added_callback (GstElement * param_0,
                    GstPad * arg0,
                    gpointer udata)
def pad_added_callback (param_0, arg0, udata):
    #python callback for the 'pad-added' signal
function pad_added_callback(param_0: GstElement * param_0, arg0: GstPad * arg0, udata: gpointer udata): {
    // javascript callback for the 'pad-added' signal
}

Parameters:

param_0
No description available
arg0
No description available
udata
No description available

Flags: Run Last


pad-removed

pad_removed_callback (GstElement * param_0,
                      GstPad * arg0,
                      gpointer udata)
def pad_removed_callback (param_0, arg0, udata):
    #python callback for the 'pad-removed' signal
function pad_removed_callback(param_0: GstElement * param_0, arg0: GstPad * arg0, udata: gpointer udata): {
    // javascript callback for the 'pad-removed' signal
}

Parameters:

param_0
No description available
arg0
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.

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

async-handling

“async-handling” gboolean

The bin will handle Asynchronous state changes

Flags : Read / Write

Default value : false


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

force-sw-decoders

“force-sw-decoders” gboolean

Use only sofware decoders to process streams

Flags : Read / Write

Default value : false


message-forward

“message-forward” gboolean

Forwards all children messages

Flags : Read / Write

Default value : false


The results of the search are