## rtpulpfecdec

rtpulpfecdec — Generic RTP Forward Error Correction (FEC) decoder

## Properties

guint | pt | Read / Write
guint | recovered | Read
GObject * | storage | Read / Write
guint | unrecovered | Read

## Types and Values

struct | GstRtpUlpFecDec

## Object Hierarchy

        GObject
        ╰── GInitiallyUnowned
            ╰── GstObject
                ╰── GstElement
                    ╰── GstRtpUlpFecDec

## Description

Generic Forward Error Correction (FEC) decoder for Uneven Level Protection (ULP) as described in RFC 5109.

It differs from the RFC in one important way, it multiplexes the FEC packets in the same sequence number as media packets. This is to be compatible with libwebrtc as using in Google Chrome and with Microsoft Lync / Skype for Business.

This element will work in combination with an upstream GstRtpStorage element and attempt to recover packets declared lost through custom 'GstRTPPacketLost' events, usually emitted by GstRtpJitterBuffer.

If no storage is provided using the “storage” property, it will try to get it from an element upstream.

Additionally, the payload types of the protection packets *must* be provided to this element via its “pt” property.

When using GstRtpBin, this element should be inserted through the “request-fec-decoder” signal.

### Example pipeline

    1

    gst-launch-1.0 udpsrc port=8888 caps="application/x-rtp, payload=96, clock-rate=90000" ! rtpstorage size-time=220000000 ! rtpssrcdemux ! application/x-rtp, payload=96, clock-rate=90000, media=video, encoding-name=H264 ! rtpjitterbuffer do-lost=1 latency=200 !  rtpulpfecdec pt=122 ! rtph264depay ! avdec_h264 ! videoconvert ! autovideosink

This example will receive a stream with FEC and try to reconstruct the packets. Example programs are available at rtpfecserver.rs and rtpfecclient.rs

See also: GstRtpUlpFecEnc, GstRtpBin, GstRtpStorage

## Synopsis

### Element Information

plugin | rtp
author | Mikhail Fludkov <misha@pexip.com>
class | Codec/Depayloader/Network/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 GstRtpUlpFecDec

    struct GstRtpUlpFecDec;

## Property Details

### The `“pt”` property

      “pt”                       guint

FEC packets payload type.

Owner: GstRtpUlpFecDec

Flags: Read / Write

Allowed values: <= 127

Default value: 0

### The `“recovered”` property

      “recovered”                guint

The number of recovered packets.

Owner: GstRtpUlpFecDec

Flags: Read

Default value: 0

### The `“storage”` property

      “storage”                  GObject *

RTP storage.

Owner: GstRtpUlpFecDec

Flags: Read / Write

### The `“unrecovered”` property

      “unrecovered”              guint

The number of unrecovered packets.

Owner: GstRtpUlpFecDec

Flags: Read

Default value: 0