RTP FEC + RTX: Using both rtpulpfecenc and rtprtxqueue

Pablo Odorico pablo.odorico at gmail.com
Tue Jun 8 15:42:40 UTC 2021


Thank you for the awesome project.

I'm trying to enable both RTP ULP-based FEC and RTX on a pipeline
which is using rtpbin.

They are both somewhat working independently*, but RTX breaks down
when FEC is enabled. This is most likely due to this comment in the
rtpulpfecenc doc:
> This element rewrites packets' seqnums, which means that when combined with retransmission elements such as GstRtpRtxSend, it *must* be placed upstream of those, otherwise retransmission requests will request incorrect seqnums.

Currently rtpulpfecenc is inside the rtpbin ("request-fec-encoder"
signal) and rtprtxqueue is placed right before rtpbin.send_rtp_sink_0
which upstream of rtpulpfecenc.

Any idea how I can switch this order considering rtpbin is doing the
linking of the rtpulpfecenc?

* rtpulpfecenc is not working that great so far. Dropping 1% of
packets it can only recover <50% of the packets no matter what the FEC
percentage I use (even 100%), is this expected?

Thank you,

More information about the gstreamer-devel mailing list