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

In order to use a dynamic payload type the element needs to be able to set the correct caps. It can be done through setting the caps property or one can use the encoding-name property and the element can work out the caps from it.

## Example pipelines for sending and receiving dynamic payload

     gst-launch-1.0 videotestsrc ! videoconvert ! x264enc ! h264parse ! \
         rtph264pay ! ristsink address=127.0.0.1 port=5000

Encode and payload H264 video from videotestsrc. The H264 RTP packets are sent on port 5000.

     gst-launch-1.0 ristsrc address=0.0.0.0 port=5000 encoding-name="h264" ! \
         rtph264depay ! h264parse ! matroskamux ! filesink location=h264.mkv
     ] Receive and depayload the H264 video via RIST.

     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

### caps

    “caps” GstCaps *

The RTP caps of the incoming RIST stream.

Flags : Read / Write

Since : 1.24

### cname

    “cname” gchararray

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

Flags : Read / Write

Default value : NULL

### encoding-name

    “encoding-name” gchararray

Set the encoding name of the stream to use. This is a short-hand for the full caps and maps typically to the encoding-name in the RTP caps.

Flags : Read / Write

Default value : NULL

Since : 1.24

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