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

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.

Flags: Read / Write

Allowed values: <= 127

Default value: 0


The “recovered” property

  “recovered”                guint

The number of recovered packets.

Flags: Read

Default value: 0


The “storage” property

  “storage”                  GObject *

RTP storage.

Flags: Read / Write


The “unrecovered” property

  “unrecovered”              guint

The number of unrecovered packets.

Flags: Read

Default value: 0