## rtpstorage

rtpstorage — RTP storage for forward error correction (FEC) in rtpbin

## Properties

GObject * | internal-storage | Read
guint64 | size-time | Read / Write / Construct

## Types and Values

struct | GstRtpStorage

## Object Hierarchy

        GObject
        ╰── GInitiallyUnowned
            ╰── GstObject
                ╰── GstElement
                    ╰── GstRtpStorage

## Description

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 GstRtpUlpFecDec can request in order to perform recovery of lost packets upon receiving custom GstRtpPacketLost events, usually from GstRtpJitterBuffer.

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 GstRtpJitterBuffer 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 GstRtpBin, a storage element is created automatically, and can be configured upon receiving the “new-storage” signal.

See also: GstRtpBin, GstRtpUlpFecDec

## Synopsis

### Element Information

plugin | rtp
author | Mikhail Fludkov <misha@pexip.com>
class | Analyzer/RTP

### Element Pads

name | sink
direction | sink
presence | always
details | application/x-rtp

name | src
direction | source
presence | always
details | application/x-rtp

## Functions

## Types and Values

### struct GstRtpStorage

    struct GstRtpStorage;

## Property Details

### The `“internal-storage”` property

      “internal-storage”         GObject *

Internal RtpStorage object.

Flags: Read

### The `“size-time”` property

      “size-time”                guint64

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

Flags: Read / Write / Construct

Default value: 0