GNOME Bugzilla – Bug 581375
rtpssrcdemux crashes on SR-less rtcp packets
Last modified: 2009-05-05 14:50:59 UTC
Sjoerd found this bug while doing some interop testing. RTCP compound packets don't always start with a SR packet, they could also only contain RR packets. I guess in that case it is not useful for syncing so we can just drop it. Patch: --- a/gst/rtpmanager/gstrtpssrcdemux.c +++ b/gst/rtpmanager/gstrtpssrcdemux.c @@ -482,6 +482,9 @@ gst_rtp_ssrc_demux_rtcp_chain (GstPad * pad, GstBuffer * buf) gst_rtcp_packet_sr_get_sender_info (&packet, &ssrc, NULL, NULL, NULL, NULL); break; + case GST_RTCP_TYPE_RR: + gst_buffer_unref (buf); + return GST_FLOW_OK; default: goto invalid_rtcp; }
The special case is actually that the compound packet is invalid and the SR packet is after a RR packet so rtpsession accepts it..
commit 46139253bcb1ddc32fc8987c194c40d9c622e993 Author: Wim Taymans <wim.taymans@collabora.co.uk> Date: Tue May 5 16:48:37 2009 +0200 rtpssrcdemux: drop unexpected RTCP packets We usually only get SR packets in our chain function but if an invalid packet contains the SR packet after the RR packet, we must not fail but simply ignore the malformed packet. Fixes #581375