rtpbin limit number of retransmissions

Nicolas Dufresne nicolas at ndufresne.ca
Sat Jan 25 13:47:41 UTC 2020


Le samedi 25 janvier 2020 à 04:48 -0600, andis a écrit :
> Hi all, 
> 
> is there a way to limit the number of retransmissions requests of the
> rtpbin, also after which time a retransmission request is sent? Usually, I
> am ending up with negative packetslost, which is a result of duplicate
> packets that are received, as indicated here: 
> https://github.com/GStreamer/gst-plugins-good/blob/master/gst/rtpmanager/rtpsource.c 

On rtpjitterbuffer, you can control the rtx-max-retries in order to decide the
maximum number of time a retry happens. See all rtx- controls on jitterbuffer.
Most of these are set to -1 (automatic) by default. There is always room for
improvement on these automatic mode as the spec may leave some room for per
stack improvement.

> 
> With this negative packet loss, it is hard to determine what is the number
> packets that are lost for good. Here is a sample statistics output by the
> rtpbin: 

I'm not familiar with negative numbers in stats. Now, be aware the
rtpsource/session on a receive is not aware of the permantly lost buffers. You
need to look into the jitterbuffer stats, since it's a jb decision which happen
after the rtpsource/session. See "num-lost" field in rtpjitterbuffer "stats"
property.

> latency = 175ms, loss-probability = 0.5%
> rtprtxqueue: requests = 1007, fulfilled-requests = 955
> rtpbin stats: application/x-rtp-source-stats, ssrc=(uint)411292676,
> internal=(boolean)false, validated=(boolean)true,
> received-bye=(boolean)false, is-csrc=(boolean)false,
> is-sender=(boolean)true, seqnum-base=(int)-1, clock-rate=(int)-1,
> rtp-from=(string)127.0.0.1:36533, rtcp-from=(string)127.0.0.1:48993,
> octets-sent=(guint64)0, packets-sent=(guint64)0,
> octets-received=(guint64)17246025, packets-received=(guint64)30067,
> bitrate=(guint64)3602896, packets-lost=(int)-766, jitter=(uint)0,
> sent-pli-count=(uint)0, recv-pli-count=(uint)0, sent-fir-count=(uint)0,
> recv-fir-count=(uint)0, sent-nack-count=(uint)257, recv-nack-count=(uint)0,
> have-sr=(boolean)true, sr-ntptime=(guint64)16273342994088588482,
> sr-rtptime=(uint)3899284162, sr-octet-count=(uint)15982235,
> sr-packet-count=(uint)27872, sent-rb=(boolean)true,
> sent-rb-fractionlost=(uint)0, sent-rb-packetslost=(int)-765,
> sent-rb-exthighestseq=(uint)36600, sent-rb-jitter=(uint)0,
> sent-rb-lsr=(uint)2268837565, sent-rb-dlsr=(uint)162432,
> have-rb=(boolean)false, rb-fractionlost=(uint)0, rb-packetslost=(int)0,
> rb-exthighestseq=(uint)0, rb-jitter=(uint)0, rb-lsr=(uint)0,
> rb-dlsr=(uint)0, rb-round-trip=(uint)0;
> 
> The documentation states that rtpbin uses the rtpjitterbuffer, which has
> these settings, but I do not know how to access and set them? 
> 
> Thanks, 
> Andi
> 
>  
> 
> 
> 
> --
> Sent from: http://gstreamer-devel.966125.n4.nabble.com/
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel



More information about the gstreamer-devel mailing list