uridecodebin: GStreamer Base Plugins 1.0 Plugins Reference Manual

## uridecodebin uridecodebin |

## Properties

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

## Signals

gboolean | autoplug-continue | Run Last
GValueArray* | autoplug-factories | Run Last
gboolean | autoplug-query | Run Last
GstAutoplugSelectResult | autoplug-select | Run Last
GValueArray* | autoplug-sort | Run Last
void | drained | Run Last
void | source-setup | Run Last
void | unknown-type | Run Last

## Types and Values

struct | GstURIDecodeBin

## 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

## Property Details

### 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 `“caps”` property

      “caps”                     GstCaps *

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

Flags: Read / Write

### The `“connection-speed”` property

      “connection-speed”         guint64

Network connection speed in kbps (0 = unknown).

Flags: Read / Write

Allowed values: <= 18446744073709551

Default value: 0

### The `“download”` property

      “download”                 gboolean

Attempt download buffering when buffering network streams.

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

### The `“source”` property

      “source”                   GstElement *

Source object used.

Flags: Read

### 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 `“uri”` property

      “uri”                      gchar *

URI to decode.

Flags: Read / Write

Default value: NULL

### The `“use-buffering”` property

      “use-buffering”            gboolean

Perform buffering on demuxed/parsed media.

Flags: Read / Write

Default value: FALSE

## 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-query”` signal

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

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.

> The signal handler will not be invoked if any of the previously registered signal handlers (if any) return a value other than GST_AUTOPLUG_SELECT_TRY. Which also means that if you return GST_AUTOPLUG_SELECT_TRY from one signal handler, handlers that get registered next (again, if any) can override that decision.

#### 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 `“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 emitted. 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

### The `“drained”` signal

    void
    user_function (GstURIDecodeBin *gsturidecodebin,
                   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 `“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

### 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