# ristsrc

This element implements RIST TR-06-1 Simple Profile receiver. The stream produced by this element will be RTP payloaded. This element also implements the URI scheme `rist://` allowing to render RIST streams in GStreamer based media players. The RIST URI handler also allows setting properties through the URI query.

It also implements part of the RIST TR-06-2 Main Profile receiver. The tunneling, multiplexing and encryption parts of the specification are not included. This element will accept the RIST RTP header extension and restore the null MPEG-TS packets if the extension is included. It will not currently use the sequence number extension when sending RTCP NACK requests.

## Example gst-launch line

     gst-launch-1.0 ristsrc address=0.0.0.0 port=5004 ! rtpmp2tdepay ! udpsink
     gst-play-1.0 "rist://0.0.0.0:5004?receiver-buffer=700"

Additionally, this element supports link bonding, which means it can receive the same stream from multiple addresses. Each address will be mapped to its own RTP session. In order to enable bonding support, one need to configure the list of addresses through "bonding-addresses" properties.

## Example gst-launch line for bonding

     gst-launch-1.0 ristsrc bonding-addresses="10.0.0.1:5004,11.0.0.1:5006" ! rtpmp2tdepay ! udpsink
     gst-play-1.0 "rist://0.0.0.0:5004?bonding-addresses=10.0.0.1:5004,11.0.0.1:5006"

## Hierarchy

    GObject
        ╰──GInitiallyUnowned
            ╰──GstObject
                ╰──GstElement
                    ╰──GstBin
                        ╰──ristsrc

## Implemented interfaces

    GstChildProxy
    GstURIHandler

## Factory details

Authors: – Nicolas Dufresne

Classification: – `Source/Network`

Rank – primary

Plugin – rist

Package – GStreamer Bad Plug-ins

## Pad Templates

### `src`

    application/x-rtp:

Presence – always

Direction – src

Object type – GstPad

## Properties

### address

    “address” gchararray

Address to receive packets from (can be IPv4 or IPv6).

Flags : Read / Write

Default value : 0.0.0.0

### bonding-addresses

    “bonding-addresses” gchararray

Comma (,) separated list of

### cname

    “cname” gchararray

Set the CNAME in the SDES block of the receiver report.

Flags : Read / Write

Default value : NULL

### max-rtcp-bandwidth

    “max-rtcp-bandwidth” gdouble

The maximum bandwidth used for RTCP as a fraction of RTP bandwdith

Flags : Read / Write / Construct

Default value : 0.05

### max-rtx-retries

    “max-rtx-retries” guint

The maximum number of retransmission requests for a lost packet.

Flags : Read / Write / Construct

Default value : 7

### min-rtcp-interval

    “min-rtcp-interval” guint

The minimum interval (in ms) between two successive RTCP packets

Flags : Read / Write / Construct

Default value : 100

### multicast-iface

    “multicast-iface” gchararray

The multicast interface to use to send packets.

Flags : Read / Write

Default value : NULL

### multicast-loopback

    “multicast-loopback” gboolean

When enabled, the packets will be received locally.

Flags : Read / Write / Construct

Default value : false

### multicast-ttl

    “multicast-ttl” gint

The multicast time-to-live parameter.

Flags : Read / Write / Construct

Default value : 1

### port

    “port” guint

The port to listen for RTP packets, the RTCP port is this value + 1. This port must be an even number.

Flags : Read / Write / Construct

Default value : 5004

### receiver-buffer

    “receiver-buffer” guint

Buffering duration (in ms)

Flags : Read / Write / Construct

Default value : 1000

### reorder-section

    “reorder-section” guint

Time to wait before sending retransmission request (in ms)

Flags : Read / Write / Construct

Default value : 70

### stats

    “stats” GstStructure *

Statistic in a GstStructure named 'rist/x-receiver-stats'

Flags : Read

Default value :

    rist/x-receiver-stats, dropped=(guint64)0, received=(guint64)0, recovered=(guint64)0, permanently-lost=(guint64)0, duplicates=(guint64)0, retransmission-requests-sent=(guint64)0, rtx-roundtrip-time=(guint64)0, session-stats=(GValueArray)< "rist/x-receiver-session-stats\,\ session-id\=\(int\)0\,\ rtp-from\=\(string\)\"\"\,\ rtcp-from\=\(string\)\"\"\,\ dropped\=\(guint64\)0\,\ received\=\(guint64\)0\;" >;

### stats-update-interval

    “stats-update-interval” guint

The interval between 'stats' update notification (in ms) (0 disabled)

Flags : Read / Write / Construct

Default value : 0

The results of the search are