]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-11965: RTCP: fix on rtcp_report_block->fraction - "if X packets were expected...
authorDragos Oancea <dragos@signalwire.com>
Thu, 25 Jul 2019 22:48:17 +0000 (22:48 +0000)
committerDragos Oancea <dragos@signalwire.com>
Thu, 25 Jul 2019 23:09:27 +0000 (23:09 +0000)
(patch by Piotr Gregor <piotr@dataandsignal.com>)

src/switch_rtp.c

index c2e7e0f6fbabe0eb582baef7bbb28c2cbb40ed68..142b1074697561e814ea7d6fea798f761a3f9587 100644 (file)
@@ -1840,7 +1840,7 @@ static void rtcp_generate_report_block(switch_rtp_t *rtp_session, struct switch_
        pkt_lost = expected_pkt - stats->period_pkt_count;
        stats->cum_lost=stats->cum_lost+pkt_lost;
        if (expected_pkt > 0 && pkt_lost > 0) {
-               rtcp_report_block->fraction = (uint8_t) (pkt_lost * 256 / expected_pkt);
+               rtcp_report_block->fraction = (pkt_lost == expected_pkt ? 255 : (uint8_t) (pkt_lost * 256 / expected_pkt));             /* if X packets were expected and X was lost, we want 0xff to be reported, not 0 */
        } else {
                rtcp_report_block->fraction = 0;
        }