uridecodebin

uridecodebin — Autoplug and decode an URI to raw media

Properties

gchar * uri Read / Write
guint64 connection-speed Read / Write
GstCaps * caps Read / Write
gchar * subtitle-encoding Read / Write
GstElement * source Read
gint64 buffer-duration Read / Write
gint buffer-size Read / Write
gboolean download Read / Write
gboolean use-buffering Read / Write
gboolean expose-all-streams Read / Write
guint64 ring-buffer-max-size Read / Write

Signals

Types and Values

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GstObject
            ╰── GstElement
                ╰── GstBin
                    ╰── GstURIDecodeBin

Implemented Interfaces

GstURIDecodeBin implements GstChildProxy.

Description

Decodes data from a URI into raw media. It selects a source element that can handle the given “uri” scheme and connects it to a decodebin.

Synopsis

Element Information

plugin

playback

author

Wim Taymans <wim.taymans@gmail.com>

class

Generic/Bin/Decoder

Element Pads

name

src_%u

direction

source

presence

sometimes

details

ANY

Functions

Types and Values

struct GstURIDecodeBin

struct GstURIDecodeBin;

uridecodebin element struct


enum GstAutoplugSelectResult

return values for the autoplug-select signal.

Members

GST_AUTOPLUG_SELECT_TRY

try to autoplug the current factory

 

GST_AUTOPLUG_SELECT_EXPOSE

expose the pad as a raw stream

 

GST_AUTOPLUG_SELECT_SKIP

skip the current factory

 

Property Details

The “uri” property

  “uri”                      gchar *

URI to decode.

Flags: Read / Write

Default value: NULL


The “connection-speed” property

  “connection-speed”         guint64

Network connection speed in kbps (0 = unknown).

Flags: Read / Write

Allowed values: <= 18446744073709551

Default value: 0


The “caps” property

  “caps”                     GstCaps *

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

Flags: Read / Write


The “subtitle-encoding” property

  “subtitle-encoding”        gchar *

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.

Flags: Read / Write

Default value: NULL


The “source” property

  “source”                   GstElement *

Source object used.

Flags: Read


The “buffer-duration” property

  “buffer-duration”          gint64

Buffer duration when buffering streams (-1 default value).

Flags: Read / Write

Allowed values: >= G_MAXULONG

Default value: -1


The “buffer-size” property

  “buffer-size”              gint

Buffer size when buffering streams (-1 default value).

Flags: Read / Write

Allowed values: >= G_MAXULONG

Default value: -1


The “download” property

  “download”                 gboolean

Attempt download buffering when buffering network streams.

Flags: Read / Write

Default value: FALSE


The “use-buffering” property

  “use-buffering”            gboolean

Perform buffering on demuxed/parsed media.

Flags: Read / Write

Default value: FALSE


The “expose-all-streams” property

  “expose-all-streams”       gboolean

Expose all streams, including those of unknown type or that don't match the 'caps' property.

Flags: Read / Write

Default value: TRUE


The “ring-buffer-max-size” property

  “ring-buffer-max-size”     guint64

Max. amount of data in the ring buffer (bytes, 0 = ring buffer disabled).

Flags: Read / Write

Allowed values: <= G_MAXUINT

Default value: 0

Signal Details

The “autoplug-continue” signal

gboolean
user_function (GstURIDecodeBin *bin,
               GstPad          *pad,
               GstCaps         *caps,
               gpointer         user_data)

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

Invocation of signal handlers stops after the first signal handler returns FALSE. Signal handlers are invoked in the order they were connected in.

Parameters

bin

The uridecodebin.

 

pad

The GstPad.

 

caps

The GstCaps found.

 

user_data

user data set when the signal handler was connected.

 

Returns

TRUE if you wish uridecodebin 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 'pad-added' signal of GstElement).

Flags: Run Last


The “autoplug-factories” signal

GValueArray*
user_function (GstURIDecodeBin *bin,
               GstPad          *pad,
               GstCaps         *caps,
               gpointer         user_data)

This function is emitted when an array of possible factories for caps on pad is needed. Uridecodebin 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.

Only the signal handler that is connected first will ever by invoked. Don't connect signal handlers with the G_CONNECT_AFTER flag to this signal, they will never be invoked!

Parameters

bin

The uridecodebin.

 

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".

Flags: Run Last


The “autoplug-select” signal

GstAutoplugSelectResult
user_function (GstURIDecodeBin   *bin,
               GstPad            *pad,
               GstCaps           *caps,
               GstElementFactory *factory,
               gpointer           user_data)

This signal is emitted once uridecodebin has found all the possible GstElementFactory that can be used to handle the given caps . For each of those factories, this signal is emitted.

The signal handler should return a GST_TYPE_AUTOPLUG_SELECT_RESULT enum value indicating what decodebin should do next.

A value of GST_AUTOPLUG_SELECT_TRY will try to autoplug an element from factory .

A value of GST_AUTOPLUG_SELECT_EXPOSE will expose pad without plugging any element to it.

A value of GST_AUTOPLUG_SELECT_SKIP will skip factory and move to the next factory.

Only the signal handler that is connected first will ever by invoked. Don't connect signal handlers with the G_CONNECT_AFTER flag to this signal, they will never be invoked!

Parameters

bin

The uridecodebin.

 

pad

The GstPad.

 

caps

The GstCaps.

 

factory

A GstElementFactory to use.

 

user_data

user data set when the signal handler was connected.

 

Returns

a GST_TYPE_AUTOPLUG_SELECT_RESULT that indicates the required operation. The default handler will always return GST_AUTOPLUG_SELECT_TRY.

Flags: Run Last


The “unknown-type” signal

void
user_function (GstURIDecodeBin *bin,
               GstPad          *pad,
               GstCaps         *caps,
               gpointer         user_data)

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

Parameters

bin

The uridecodebin.

 

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.

 

Flags: Run Last


The “drained” signal

void
user_function (GstURIDecodeBin *arg0,
               gpointer         user_data)

This signal is emitted when the data for the current uri is played.

Parameters

user_data

user data set when the signal handler was connected.

 

Flags: Run Last


The “autoplug-sort” signal

GValueArray*
user_function (GstURIDecodeBin *bin,
               GstPad          *pad,
               GstCaps         *caps,
               GValueArray     *factories,
               gpointer         user_data)

Once decodebin 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 or return NULL if the order should not change.

Invocation of signal handlers stops after one signal handler has returned something else than NULL. Signal handlers are invoked in the order they were connected in. Don't connect signal handlers with the G_CONNECT_AFTER flag to this signal, they will never be invoked!

Parameters

bin

The uridecodebin.

 

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.

Flags: Run Last

Since 0.10.33


The “source-setup” signal

void
user_function (GstURIDecodeBin *bin,
               GstElement      *source,
               gpointer         user_data)

This signal is emitted after the source element has been created, so it can be configured by setting additional properties (e.g. set a proxy server for an http source, or set the device and read speed for an audio cd source). This is functionally equivalent to connecting to the notify::source signal, but more convenient.

Parameters

bin

the uridecodebin.

 

source

source element

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last

Since 0.10.33


The “autoplug-query” signal

gboolean
user_function (GstURIDecodeBin *gsturidecodebin,
               GstPad          *arg1,
               GstElement      *arg2,
               GstQuery        *arg3,
               gpointer         user_data)

Parameters

gsturidecodebin

the object which received the signal.

 

user_data

user data set when the signal handler was connected.

 

Returns

Flags: Run Last