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