From 7af9fdbca66ebc7ecc2498ea7665745ff9135d75 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Olivier=20Cr=C3=AAte?= Date: Fri, 13 Dec 2013 15:57:36 -0500 Subject: [PATCH] rtpsession: Process PSFB FIR requests which lack the media ssrc According to RFC 5104 section 4.3.1.2, RTCP PSFB FIR message SHALL have a media_ssrc field set to 0. The actual media ssrc is in the FCI. So in that case, we ignore the retained feedback and just let it through to the rtp_session_process_fir() function which will check for the actual SSRC inside the FCI. Fixes a regression introduced by commit 57c27ec3 --- gst/rtpmanager/rtpsession.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/gst/rtpmanager/rtpsession.c b/gst/rtpmanager/rtpsession.c index 31708ee..f2db3e7 100644 --- a/gst/rtpmanager/rtpsession.c +++ b/gst/rtpmanager/rtpsession.c @@ -2418,14 +2418,11 @@ rtp_session_process_feedback (RTPSession * sess, GstRTCPPacket * packet, gst_buffer_unref (fci_buffer); } - if (!src) - return; - - if (sess->rtcp_feedback_retention_window) { + if (src && sess->rtcp_feedback_retention_window) { rtp_source_retain_rtcp_packet (src, packet, pinfo->running_time); } - if (src->internal || + if ((src && src->internal) || /* PSFB FIR puts the media ssrc inside the FCI */ (type == GST_RTCP_TYPE_PSFB && fbtype == GST_RTCP_PSFB_TYPE_FIR)) { switch (type) { -- 2.7.4