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

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 property.

The property should be configured with a value equal to the 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 , a storage element is created automatically, and can be configured upon receiving the signal.

See also: ,

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

Presence – always

Direction – sink

Object type – GstPad

### `src`

    application/x-rtp:

Presence – always

Direction – src

Object type – GstPad

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