Top | ![]() |
![]() |
![]() |
![]() |
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.
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 |
See also: GstRtpUlpFecEnc, GstRtpBin, GstRtpStorage
plugin |
rtp |
author |
Mikhail Fludkov <misha@pexip.com> |
class |
Codec/Depayloader/Network/RTP |
“pt”
property“pt” guint
FEC packets payload type.
Flags: Read / Write
Allowed values: <= 127
Default value: 0
“recovered”
property“recovered” guint
The number of recovered packets.
Flags: Read
Default value: 0
“unrecovered”
property“unrecovered” guint
The number of unrecovered packets.
Flags: Read
Default value: 0