input-selector

input-selector — N-to-1 input stream selector

Properties

GstPad * active-pad Read / Write
gboolean cache-buffers Read / Write
guint n-pads Read
GstInputSelectorSyncMode sync-mode Read / Write
gboolean sync-streams Read / Write

Signals

gint64 block Action

Types and Values

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GstObject
            ╰── GstElement
                ╰── GstInputSelector

Description

Direct one out of N input streams to the output pad.

The input pads are from a GstPad subclass and have additional properties, which users may find useful, namely:

  • "running-time": Running time of stream on pad (gint64)
  • "tags": The currently active tags on the pad (GstTagList, boxed type)
  • "active": If the pad is currently active (gboolean)
  • "always-ok" : Make an inactive pads return GST_FLOW_OK instead of GST_FLOW_NOT_LINKED

Synopsis

Element Information

plugin

coreelements

author

Julien Moutte <julien@moutte.net>, Jan Schmidt <thaytan@mad.scientist.com>, Wim Taymans <wim.taymans@gmail.com>

class

Generic

Element Pads

name

sink_%u

direction

sink

presence

request

details

ANY

name

src

direction

source

presence

always

details

ANY

Functions

Types and Values

struct GstInputSelector

struct GstInputSelector;


enum GstInputSelectorSyncMode

The different ways that input-selector can behave when in sync-streams mode.

Members

GST_INPUT_SELECTOR_SYNC_MODE_ACTIVE_SEGMENT

Sync using the current active segment.

 

GST_INPUT_SELECTOR_SYNC_MODE_CLOCK

Sync using the clock.

 

Property Details

The “active-pad” property

  “active-pad”               GstPad *

The currently active sink pad.

Flags: Read / Write


The “cache-buffers” property

  “cache-buffers”            gboolean

If set to TRUE and GstInputSelector:sync-streams is also set to TRUE, the active pad will cache the buffers still considered valid (after current running time, see sync-mode) to avoid missing frames if/when the pad is reactivated.

The active pad may push more buffers than what is currently displayed/consumed and when changing pads those buffers will be discarded and the only way to reactivate that pad without loosing the already consumed buffers is to enable cache.

Flags: Read / Write

Default value: FALSE


The “n-pads” property

  “n-pads”                   guint

The number of sink pads.

Flags: Read

Default value: 0


The “sync-mode” property

  “sync-mode”                GstInputSelectorSyncMode

Select how input-selector will sync buffers when in sync-streams mode.

Note that when using the "active-segment" mode, the "active-segment" may be ahead of current clock time when switching the active pad, as the current active pad may have pushed more buffers than what was displayed/consumed, which may cause delays and some missing buffers.

Flags: Read / Write

Default value: Sync using the current active segment


The “sync-streams” property

  “sync-streams”             gboolean

If set to TRUE all inactive streams will be synced to the running time of the active stream or to the current clock.

To make sure no buffers are dropped by input-selector that might be needed when switching the active pad, sync-mode should be set to "clock" and cache-buffers to TRUE.

Flags: Read / Write

Default value: TRUE

Signal Details

The “block” signal

gint64
user_function (GstInputSelector *inputselector,
               gpointer          user_data)

Block all sink pads in preparation for a switch. Returns the stop time of the current switch segment, as a running time, or 0 if there is no current active pad or the current active pad never received data.

Parameters

inputselector

the GstInputSelector

 

user_data

user data set when the signal handler was connected.

 

Flags: Action

See Also

GstOutputSelector