rtpstorage

Helper element for storing packets to aid later packet recovery from packet loss using RED/FEC (Forward Error Correction).

The purpose of this element is to store a moving window of packets which downstream elements such as rtpulpfecdec can request in order to perform recovery of lost packets upon receiving custom GstRtpPacketLost events, usually from rtpjitterbuffer.

As such, when building a pipeline manually, it should have the form:

rtpstorage ! rtpjitterbuffer ! rtpulpfecdec

where rtpulpfecdec get passed a reference to the object pointed to by the internal-storage property.

The size-time property should be configured with a value equal to the rtpjitterbuffer latency, plus some tolerance, in the order of milliseconds, for example in the example found at https://github.com/sdroege/gstreamer-rs/blob/master/examples/src/bin/rtpfecclient.rs, size-time is configured as 200 + 50 milliseconds (latency + tolerance).

When using rtpbin, a storage element is created automatically, and can be configured upon receiving the new-storage signal.

See also: rtpbin, rtpulpfecdec

Hierarchy

GObject
    ╰──GInitiallyUnowned
        ╰──GstObject
            ╰──GstElement
                ╰──rtpstorage

Factory details

Authors: – Mikhail Fludkov

Classification:Analyzer/RTP

Rank – none

Plugin – rtp

Package – GStreamer Good Plug-ins

Pad Templates

sink

application/x-rtp:

Presencealways

Directionsink

Object typeGstPad


src

application/x-rtp:

Presencealways

Directionsrc

Object typeGstPad


Properties

internal-storage

“internal-storage” GObject *

Internal RtpStorage object

Flags : Read


size-time

“size-time” guint64

The amount of data to keep in the storage (in ns, 0-disable)

Flags : Read / Write / Construct

Default value : 0


The results of the search are