GNOME Bugzilla – Bug 780105
rtpsource: "no clock-rate, cannot interpolate rtp" forever
Last modified: 2017-03-16 15:22:54 UTC
Hello, I have found a race condition that makes not to generate correct RTP timestamp for SR RTCP packets. The race condition provokes the next situation: 1 - An internal RtpSource-1 is created for SSRC XXXX from rtp_session_on_timeout [1] 2 - Any RTP packet is sent by the session during few seconds 3 - Session starts sending RTP packets for SSRC XXXX 4 - "marking SSRC XXXX as BYE, reason: timed out" (rtp_source_mark_bye [2]) 5 - caps are updated for RtpSource-1 (rtp_source_update_caps [3]) 6 - RtpSource-1 is removed (remove_closing_sources [4]) 7 - A new internal RtpSource-2 is created for SSRC XXXX from rtp_session_send_rtp [5] After (7), rtp_source_update_caps is never called for RtpSource-2, so clock-rate is never set and every time a new RTCP SR is generated we can see "no clock-rate, cannot interpolate rtp time for SSRC XXXX" [6] Refs [1] https://github.com/GStreamer/gst-plugins-good/blob/1.10/gst/rtpmanager/rtpsession.c#L3999 [2] https://github.com/GStreamer/gst-plugins-good/blob/1.10/gst/rtpmanager/rtpsource.c#L1230 [3] https://github.com/GStreamer/gst-plugins-good/blob/1.10/gst/rtpmanager/rtpsource.c#L787 [4] https://github.com/GStreamer/gst-plugins-good/blob/1.10/gst/rtpmanager/rtpsession.c#L3856 [5] https://github.com/GStreamer/gst-plugins-good/blob/1.10/gst/rtpmanager/rtpsession.c#L2988 [6] https://github.com/GStreamer/gst-plugins-good/blob/1.10/gst/rtpmanager/rtpsource.c#L1499
Created attachment 348032 [details] [review] rtpsource: get clock-rate from pt if needed to generate SR
Attachment 348032 [details] pushed as 54a2f33 - rtpsource: get clock-rate from pt if needed to generate SR
Created attachment 348088 [details] [review] rtpsource: fix warning message Sorry, I have just realized that the warning message in the previous patch was wrong. This patch fixes it.
Attachment 348088 [details] pushed as 9ffef7e - rtpsource: fix warning message
Thanks Sebastian!! ;)