# rtpssrcdemux

rtpssrcdemux acts as a demuxer for RTP packets based on the SSRC of the packets. Its main purpose is to allow an application to easily receive and decode an RTP stream with multiple SSRCs.

For each SSRC that is detected, a new pad will be created and the new-ssrc-pad signal will be emitted.

## Example pipelines

     gst-launch-1.0 udpsrc caps="application/x-rtp" ! rtpssrcdemux ! fakesink

Takes an RTP stream and send the RTP packets with the first detected SSRC to fakesink, discarding the other SSRCs.

## Hierarchy

    GObject
        ╰──GInitiallyUnowned
            ╰──GstObject
                ╰──GstElement
                    ╰──rtpssrcdemux

## Factory details

Authors: – Wim Taymans <wim.taymans></wim.taymans>

Classification: – `Demux/Network/RTP`

Rank – none

Plugin – rtpmanager

Package – GStreamer Good Plug-ins

## Pad Templates

### `rtcp_sink`

    application/x-rtcp:

Presence – always

Direction – sink

Object type – GstPad

### `rtcp_src_%u`

    application/x-rtcp:

Presence – sometimes

Direction – src

Object type – GstPad

### `sink`

    application/x-rtp:

Presence – always

Direction – sink

Object type – GstPad

### `src_%u`

    application/x-rtp:

Presence – sometimes

Direction – src

Object type – GstPad

## Signals

### new-ssrc-pad

    new_ssrc_pad_callback (GstElement * demux,
                           guint ssrc,
                           GstPad * pad,
                           gpointer udata)

    def new_ssrc_pad_callback (demux, ssrc, pad, udata):
        #python callback for the 'new-ssrc-pad' signal

    function new_ssrc_pad_callback(demux: GstElement * demux, ssrc: guint ssrc, pad: GstPad * pad, udata: gpointer udata): {
        // javascript callback for the 'new-ssrc-pad' signal
    }

Emitted when a new SSRC pad has been created.

Parameters:

`demux` –

the object which received the signal

`ssrc` –

the SSRC of the pad

`pad` –

the new pad.

`udata` –
No description available

Flags: Run Last

### removed-ssrc-pad

    removed_ssrc_pad_callback (GstElement * demux,
                               guint ssrc,
                               GstPad * pad,
                               gpointer udata)

    def removed_ssrc_pad_callback (demux, ssrc, pad, udata):
        #python callback for the 'removed-ssrc-pad' signal

    function removed_ssrc_pad_callback(demux: GstElement * demux, ssrc: guint ssrc, pad: GstPad * pad, udata: gpointer udata): {
        // javascript callback for the 'removed-ssrc-pad' signal
    }

Emitted when a SSRC pad has been removed.

Parameters:

`demux` –

the object which received the signal

`ssrc` –

the SSRC of the pad

`pad` –

the removed pad.

`udata` –
No description available

Flags: Run Last

## Action Signals

### clear-ssrc

    g_signal_emit_by_name (demux, "clear-ssrc", ssrc);

    ret = demux.emit ("clear-ssrc", ssrc)

    let ret = demux.emit ("clear-ssrc", ssrc);

Action signal to remove the pad for SSRC.

Parameters:

`demux` (GstElement *) –

the object which received the signal

`ssrc` (guint) –

the SSRC of the pad

Flags: Run Last / Action

## Properties

### max-streams

    “max-streams” guint

The maximum number of streams allowed

Flags : Read / Write

Default value : -1

The results of the search are