ristsink

This element implements RIST TR-06-1 Simple Profile transmitter. It currently supports any registered RTP static payload types such as MPEG TS. The stream passed to this element must be already RTP payloaded. Even though RTP SSRC collision are rare in unidirectional streaming, this element expects the upstream elements to obey to collision events and change the SSRC in use. Collisions will occur when transmitting and receiving over multicast on the same host, and will be properly ignored.

It also implements part of the RIST TR-06-2 Main Profile transmitter. The tunneling, multiplexing and encryption parts of the specification are not included. This element will include the RIST header extension if either of the "sequence-number-extension" or "drop-null-ts-packets" properties are set.

Example gst-launch line

 gst-launch-1.0 udpsrc ! tsparse set-timestamps=1 smoothing-latency=40000 ! \
 rtpmp2tpay ! ristsink address=10.0.0.1 port=5004

Additionally, this element supports bonding, which consist of using multiple links in order to transmit the streams. The address of each link is configured through the "bonding-addresses" property. When set, this will replace the value that might have been set on the "address" and "port" properties. Each link will be mapped to its own RTP session. RTX request are only replied to on the link the NACK was received from.

There are currently two bonding methods in place: "broadcast" and "round-robin". In "broadcast" mode, all the packets are duplicated over all sessions. While in "round-robin" mode, packets are evenly distributed over the links. One can also implement its own dispatcher element and configure it using the "dispatcher" property. As a reference, "broadcast" mode is implemented with the "tee" element, while "round-robin" mode is implemented with the "round-robin" element.

Example gst-launch line for bonding

 gst-launch-1.0 udpsrc ! tsparse set-timestamps=1 smoothing-latency=40000 ! \
  rtpmp2tpay ! ristsink bonding-addresses="10.0.0.1:5004,11.0.0.1:5006"

Hierarchy

GObject
    ╰──GInitiallyUnowned
        ╰──GstObject
            ╰──GstElement
                ╰──GstBin
                    ╰──ristsink

Implemented interfaces

Factory details

Authors: – Nicolas Dufresne

Classification:Source/Network

Rank – primary

Plugin – rist

Package – GStreamer Bad Plug-ins

Pad Templates

sink

application/x-rtp:

Presencealways

Directionsink

Object typeGstPad


Properties

address

“address” gchararray

Address to send packets to (can be IPv4 or IPv6).

Flags : Read / Write

Default value : localhost


bonding-addresses

“bonding-addresses” gchararray

Comma (,) separated list of

: to send to.

Flags : Read / Write

Default value : localhost:5004


bonding-method

“bonding-method” Rist-bonding-method-type *

Defines the bonding method to use.

Flags : Read / Write / Construct

Default value : broadcast (0)


cname

“cname” gchararray

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

Flags : Read / Write

Default value : NULL


dispatcher

“dispatcher” GstElement *

An element that takes care of multi-plexing bonded links. When set "bonding-method" is ignored.

Flags : Read / Write


drop-null-ts-packets

“drop-null-ts-packets” gboolean

Drop null MPEG-TS packet and replace them with a custom header extension.

Flags : Read / Write / Construct

Default value : false


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


min-rtcp-interval

“min-rtcp-interval” guint

The minimum interval (in ms) between two regular 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 packet 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 RTP packets will be sent, the RTCP port is this value + 1. This port must be an even number.

Flags : Read / Write / Construct

Default value : 5004


sender-buffer

“sender-buffer” guint

Size of the retransmission queue (in ms)

Flags : Read / Write / Construct

Default value : 1200


sequence-number-extension

“sequence-number-extension” gboolean

Add sequence number extension to packets.

Flags : Read / Write / Construct

Default value : false


stats

“stats” GstStructure *

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

Flags : Read

Default value :

rist/x-sender-stats, sent-original-packets=(guint64)0, sent-retransmitted-packets=(guint64)0, session-stats=(GValueArray)< "rist/x-sender-session-stats\,\ session-id\=\(int\)0\,\ sent-original-packets\=\(guint64\)0\,\ sent-retransmitted-packets\=\(guint64\)0\,\ round-trip-time\=\(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


Named constants

Rist-bonding-method-type

Members

broadcast (0) – GST_RIST_BONDING_METHOD_BROADCAST
round-robin (1) – GST_RIST_BONDING_METHOD_ROUND_ROBIN

The results of the search are