From 1b53d329ac648ec958e8c600b5b47787643dd30c Mon Sep 17 00:00:00 2001
From: "Joshua C. Colp" <jcolp@sangoma.com>
Date: Tue, 4 Feb 2020 10:18:13 -0400
Subject: [PATCH] res_rtp_asterisk: Don't produce transport-cc if no packets.

The code assumed that when the transport-cc feedback
function was called at least one packet will have been
received. In practice this isn't always true, so now
we just reschedule the sending and do nothing.

Change-Id: Iabe7b358704da446fc3b0596b847bff8b8a0da6a
---
 res/res_rtp_asterisk.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/res/res_rtp_asterisk.c b/res/res_rtp_asterisk.c
index 916a616d34..b4528f121c 100644
--- a/res/res_rtp_asterisk.c
+++ b/res/res_rtp_asterisk.c
@@ -6667,6 +6667,12 @@ static int rtp_transport_wide_cc_feedback_produce(const void *data)
 
 	ao2_lock(instance);
 
+	/* If no packets have been received then do nothing */
+	if (!AST_VECTOR_SIZE(&rtp->transport_wide_cc.packet_statistics)) {
+		ao2_unlock(instance);
+		return 1000;
+	}
+
 	rtcpheader = (unsigned char *)bdata;
 
 	/* The first packet in the vector acts as our base sequence number and reference time */
-- 
GitLab