Top |
Properties
guint | max-size-packets | Read / Write |
guint | max-size-time | Read / Write |
guint | fulfilled-requests | Read |
guint | requests | Read |
Description
rtprtxqueue maintains a queue of transmitted RTP packets, up to a configurable limit (see “max-size-time”, “max-size-packets”), and retransmits them upon request from the downstream rtpsession (GstRTPRetransmissionRequest event).
This element is similar to rtprtxsend, but it has differences:
Retransmission from rtprtxqueue is not RFC 4588 compliant. The retransmitted packets have the same ssrc and payload type as the original stream.
As a side-effect of the above, rtprtxqueue does not require the use of rtprtxreceive on the receiving end. rtpjitterbuffer alone is able to reconstruct the stream.
Retransmission from rtprtxqueue happens as soon as the next regular flow packet is chained, while rtprtxsend retransmits as soon as the retransmission event is received, using a helper thread.
rtprtxqueue can be used with rtpbin without the need of hooking to its “request-aux-sender” signal, which means it can be used with rtpbin using gst-launch.
See also GstRtpRtxSend, GstRtpRtxReceive
Example pipelines
1 2 3 4 5 |
gst-launch-1.0 rtpbin name=b rtp-profile=avpf \ audiotestsrc is-live=true ! opusenc ! rtpopuspay pt=96 ! rtprtxqueue ! b.send_rtp_sink_0 \ b.send_rtp_src_0 ! identity drop-probability=0.01 ! udpsink host="127.0.0.1" port=5000 \ udpsrc port=5001 ! b.recv_rtcp_sink_0 \ b.send_rtcp_src_0 ! udpsink host="127.0.0.1" port=5002 sync=false async=false |
Sender pipeline
1 2 3 4 5 6 |
gst-launch-1.0 rtpbin name=b rtp-profile=avpf do-retransmission=true \ udpsrc port=5000 caps="application/x-rtp,media=(string)audio,clock-rate=(int)48000,encoding-name=(string)OPUS,payload=(int)96" ! \ b.recv_rtp_sink_0 \ b. ! rtpopusdepay ! opusdec ! audioconvert ! audioresample ! autoaudiosink \ udpsrc port=5002 ! b.recv_rtcp_sink_0 \ b.send_rtcp_src_0 ! udpsink host="127.0.0.1" port=5001 sync=false async=false |
Receiver pipeline
Synopsis
Property Details
The “max-size-packets”
property
“max-size-packets” guint
Amount of packets to queue (0 = unlimited).
Flags: Read / Write
Default value: 100
The “max-size-time”
property
“max-size-time” guint
Amount of ms to queue (0 = unlimited).
Flags: Read / Write
Default value: 0
The “fulfilled-requests”
property
“fulfilled-requests” guint
Number of fulfilled retransmission requests.
Flags: Read
Default value: 0
The “requests”
property
“requests” guint
Total number of retransmission requests.
Flags: Read
Default value: 0