]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
res_rtp_asterisk: Don't produce transport-cc if no packets.
authorJoshua C. Colp <jcolp@sangoma.com>
Tue, 4 Feb 2020 14:18:13 +0000 (10:18 -0400)
committerJoshua Colp <jcolp@sangoma.com>
Tue, 4 Feb 2020 14:19:33 +0000 (08:19 -0600)
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

index 916a616d34dad1622b819100b995e45a415fd484..b4528f121cd1ee49bf4ac21e8fdf1b8a9de83d9a 100644 (file)
@@ -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 */