RTP retransmission mechanism in gstreamer 1.2.0

George Kiagiadakis kiagiadakis.george at gmail.com
Wed Dec 11 01:49:05 PST 2013


On Wed, Dec 11, 2013 at 10:29 AM, abhilash <abhilashtuse at gmail.com> wrote:
> Hi,
>
>      I am trying out a client-server based audio streaming application using
> gstreamer 1.2.0 version, running on 2 different Linux machines on network. I
> want to check the functionality of retransmissions as mentioned in the
> "rtpbin" element and I tried setting the property "do-retransmissions=true".
> I am simulating packet loss, packet delay & reorder on the server side. The
> observation is as follows -
> 1.  I am able to see RTCP Sender and Receiver reports being sent between
> server and client on Wireshark.
> 2.  I am able to see dropped RTP packet sequence numbers in Wireshark trace,
> however I am not able to see any RTP retransmissions event going from client
> to server.
>
>     The pipelines at the server and client side are as mentioned below -
>
> Server:
> gst-launch-1.0 -v rtpbin name=rtpbin do-retransmission=true audiotestsrc
> freq=1000 ! audioconvert ! alawenc ! rtppcmapay ! rtpbin.send_rtp_sink_0
> rtpbin.send_rtp_src_0 ! udpsink host=192.154.10.20 port=5000
> rtpbin.send_rtcp_src_0 ! udpsink host=192.154.10.20 port=5001 sync=false
> async=false udpsrc port=5005 ! rtpbin.recv_rtcp_sink_0 --gst-debug=3
>
> Client:
> gst-launch-1.0 -v rtpbin name=rtpbin udpsrc port=5000
> caps="application/x-rtp, media=audio, clock-rate=8000, encoding-name=PCMA,
> payload=8" ! rtpbin.recv_rtp_sink_0 rtpbin. ! rtppcmadepay ! alawdec !
> alsasink udpsrc port=5001 ! rtpbin.recv_rtcp_sink_0  rtpbin.send_rtcp_src_0
> ! udpsink host=192.154.10.21  port=5005 sync=false async=false
> --gst-debug=3
>
>      Can anyone please let me know if anything is missed out above and why I
> am not seeing any RTP retransmissions ?
>

Hi,

do-retransmission=true should be set on the receiver (client) rtpbin.
On the sender it has no effect. Also, since you are on 1.2, you need
to add rtprtxqueue in your pipeline after the payloader. Note though
that this does not implement RFC4588-compliant retransmission packets.
An RFC4588-compliant implementation is under review in bugzilla at the
moment.

Regards,
George


More information about the gstreamer-devel mailing list