rtpulpfec*: Improve documentation
authorOlivier Crête <olivier.crete@collabora.com>
Thu, 21 Mar 2019 20:48:37 +0000 (16:48 -0400)
committerSebastian Dröge <slomo@coaxion.net>
Tue, 9 Apr 2019 08:17:28 +0000 (08:17 +0000)
gst/rtp/gstrtpreddec.c
gst/rtp/gstrtpulpfecdec.c
gst/rtp/gstrtpulpfecenc.c

index 7d089ea..c6090a9 100644 (file)
@@ -34,7 +34,7 @@
  * types of the RED packets.
  *
  * When using #GstRtpBin, this element should be inserted through the
- * #GstRtpBin::request-fec-decoder signal.
+ * #GstRtpBin::request-aux-receiver signal.
  *
  * See also: #GstRtpRedEnc, #GstWebRTCBin, #GstRtpBin
  * Since: 1.14
index 08d68fe..cb6372c 100644 (file)
  * 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 #GstRtpUlpFecDec:storage
  * property, it will try to get it from an element upstream.
  *
- * Example programs are available at
- * <https://github.com/sdroege/gstreamer-rs/blob/master/examples/src/bin/rtpfecserver.rs>
- * and
- * <https://github.com/sdroege/gstreamer-rs/blob/master/examples/src/bin/rtpfecclient.rs>.
- *
  * Additionally, the payload types of the protection packets *must* be
  * provided to this element via its #GstRtpUlpFecDec:pt property.
  *
  * When using #GstRtpBin, this element should be inserted through the
  * #GstRtpBin::request-fec-decoder signal.
  *
+ * <refsect2>
+ * <title>Example pipeline</title>
+ * |[
+ * 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
+ * <https://github.com/sdroege/gstreamer-rs/blob/master/examples/src/bin/rtpfecserver.rs>
+ * and
+ * <https://github.com/sdroege/gstreamer-rs/blob/master/examples/src/bin/rtpfecclient.rs>.
+ *
+ * </refsect2>
+ *
  * See also: #GstRtpUlpFecEnc, #GstRtpBin, #GstRtpStorage
  * Since: 1.14
  */
index f29acd5..222bff5 100644 (file)
  * Generic Forward Error Correction (FEC) encoder using 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.
+ *
+ * Be warned that after using this element, it is no longer possible to know if
+ * there is a gap in the media stream based on the sequence numbers as the FEC
+ * packets become interleaved with the media packets.
+ *
  * This element will insert protection packets in any RTP stream, which
  * can then be used on the receiving side to recover lost packets.
  *
  * When using #GstRtpBin, this element should be inserted through the
  * #GstRtpBin::request-fec-encoder signal.
  *
+ *
+ * <refsect2>
+ * <title>Example pipeline</title>
+ * |[
+ * gst-launch-1.0 videotestsrc ! x264enc ! video/x-h264, profile=baseline ! rtph264pay pt=96 ! rtpulpfecenc percentage=100 pt=122 ! udpsink port=8888
+ * ]| This example will receive a stream with FEC and try to reconstruct the packets.
+ *
  * Example programs using this element can be found at
  * <https://github.com/sdroege/gstreamer-rs/blob/master/examples/src/bin/rtpfecserver.rs>
  * and
  * <https://github.com/sdroege/gstreamer-rs/blob/master/examples/src/bin/rtpfecclient.rs>.
+ * </refsect2>
  *
  * See also: #GstRtpUlpFecDec, #GstRtpBin
  * Since: 1.14