decodebin2

decodebin2 — Next-generation automatic decoding bin

Synopsis

struct              GstDecodeBin2;

Object Hierarchy

  GObject
   +----GstObject
         +----GstElement
               +----GstBin
                     +----GstDecodeBin2

Implemented Interfaces

GstDecodeBin2 implements GstChildProxy.

Properties

  "caps"                     GstCaps*              : Read / Write
  "subtitle-encoding"        gchar*                : Read / Write
  "sink-caps"                GstCaps*              : Read / Write

Signals

  "autoplug-continue"                              : Run Last
  "autoplug-sort"                                  : Run Last
  "new-decoded-pad"                                : Run Last
  "removed-decoded-pad"                            : Run Last
  "unknown-type"                                   : Run Last
  "autoplug-factories"                             : Run Last
  "autoplug-select"                                : Run Last
  "drained"                                        : Run Last

Description

GstBin that auto-magically constructs a decoding pipeline using available decoders and demuxers via auto-plugging.

At this stage, decodebin2 is considered UNSTABLE. The API provided in the signals is expected to change in the near future.

To try out decodebin2, you can set the USE_DECODEBIN2 environment variable (USE_DECODEBIN2=1 for example). This will cause playbin to use decodebin2 instead of the older decodebin for its internal auto-plugging.

Element Information

plugin

uridecodebin

author

Edward Hervey <edward@fluendo.com>

class

Generic/Bin/Decoder

name

src%d

direction

source

presence

sometimes

details

ANY

name

sink

direction

sink

presence

always

details

ANY

Details

struct GstDecodeBin2

struct GstDecodeBin2;

The opaque DecodeBin2 data structure

Property Details

The "caps" property

  "caps"                     GstCaps*              : Read / Write

The caps on which to stop decoding.


The "subtitle-encoding" property

  "subtitle-encoding"        gchar*                : Read / Write

Encoding to assume if input subtitles are not in UTF-8 encoding. If not set, the GST_SUBTITLE_ENCODING environment variable will be checked for an encoding to use. If that is not set either, ISO-8859-15 will be assumed.

Default value: NULL


The "sink-caps" property

  "sink-caps"                GstCaps*              : Read / Write

The caps of the input data. (NULL = use typefind element).

Signal Details

The "autoplug-continue" signal

gboolean            user_function                      (GstDecodeBin2 *bin,
                                                        GstPad        *pad,
                                                        GstCaps       *caps,
                                                        gpointer       user_data)      : Run Last

This signal is emitted whenever decodebin2 finds a new stream. It is emitted before looking for any elements that can handle that stream.

bin :

The decodebin

pad :

The GstPad.

caps :

The GstCaps found.

user_data :

user data set when the signal handler was connected.

Returns :

TRUE if you wish decodebin2 to look for elements that can handle the given caps. If FALSE, those caps will be considered as final and the pad will be exposed as such (see 'new-decoded-pad' signal).

The "autoplug-sort" signal

GValueArray*        user_function                      (GstDecodeBin2 *bin,
                                                        GstPad        *pad,
                                                        GstCaps       *caps,
                                                        GValueArray   *factories,
                                                        gpointer       user_data)      : Run Last

Once decodebin2 has found the possible GstElementFactory objects to try for caps on pad, this signal is emited. The purpose of the signal is for the application to perform additional sorting or filtering on the element factory array.

The callee should copy and modify factories.

bin :

The decodebin

pad :

The GstPad.

caps :

The GstCaps.

factories :

A GValueArray of possible GstElementFactory to use.

user_data :

user data set when the signal handler was connected.

Returns :

A new sorted array of GstElementFactory objects.

The "new-decoded-pad" signal

void                user_function                      (GstDecodeBin2 *bin,
                                                        GstPad        *pad,
                                                        gboolean       islast,
                                                        gpointer       user_data)      : Run Last

This signal gets emitted as soon as a new pad of the same type as one of the valid 'raw' types is added.

bin :

The decodebin

pad :

The newly created pad

islast :

TRUE if this is the last pad to be added. Deprecated.

user_data :

user data set when the signal handler was connected.

The "removed-decoded-pad" signal

void                user_function                      (GstDecodeBin2 *bin,
                                                        GstPad        *pad,
                                                        gpointer       user_data)      : Run Last

This signal is emitted when a 'final' caps pad has been removed.

bin :

The decodebin

pad :

The pad that was removed

user_data :

user data set when the signal handler was connected.

The "unknown-type" signal

void                user_function                      (GstDecodeBin2 *bin,
                                                        GstPad        *pad,
                                                        GstCaps       *caps,
                                                        gpointer       user_data)      : Run Last

This signal is emitted when a pad for which there is no further possible decoding is added to the decodebin.

bin :

The decodebin

pad :

The new pad containing caps that cannot be resolved to a 'final' stream type.

caps :

The GstCaps of the pad that cannot be resolved.

user_data :

user data set when the signal handler was connected.

The "autoplug-factories" signal

GValueArray*        user_function                      (GstDecodeBin2 *bin,
                                                        GstPad        *pad,
                                                        GstCaps       *caps,
                                                        gpointer       user_data)      : Run Last

This function is emited when an array of possible factories for caps on pad is needed. Decodebin2 will by default return an array with all compatible factories, sorted by rank.

If this function returns NULL, pad will be exposed as a final caps.

If this function returns an empty array, the pad will be considered as having an unhandled type media type.

bin :

The decodebin

pad :

The GstPad.

caps :

The GstCaps found.

user_data :

user data set when the signal handler was connected.

Returns :

a GValueArray* with a list of factories to try. The factories are by default tried in the returned order or based on the index returned by "autoplug-select".

The "autoplug-select" signal

GstAutoplugSelectResultuser_function                      (GstDecodeBin2     *bin,
                                                        GstPad            *pad,
                                                        GstCaps           *caps,
                                                        GstElementFactory *factories,
                                                        gpointer           user_data)      : Run Last

This signal is emitted once decodebin2 has found all the possible GstElementFactory that can be used to handle the given caps.

bin :

The decodebin

pad :

The GstPad.

caps :

The GstCaps.

factories :

A GValueArray of possible GstElementFactory to use, sorted by rank (higher ranks come first).

user_data :

user data set when the signal handler was connected.

Returns :

A gint indicating what factory index from the factories array that you wish decodebin2 to use for trying to decode the given caps. Return -1 to stop selection of a factory and expose the pad as a raw type. The default handler always returns the first possible factory (index 0).

The "drained" signal

void                user_function                      (GstDecodeBin2 *bin,
                                                        gpointer       user_data)      : Run Last

This signal is emitted once decodebin2 has finished decoding all the data.

bin :

The decodebin

user_data :

user data set when the signal handler was connected.

Since 0.10.16