From ae0971a0e6e0db17390f4389590391f01721f738 Mon Sep 17 00:00:00 2001 From: Richard Fuchs Date: Fri, 1 Jul 2022 14:48:28 -0400 Subject: [PATCH] TT#178400 ignore implausibly large jitter values Change-Id: I26aa2699ee2fac79c8210d9ada3ea85df73bb06a --- daemon/codec.c | 4 +++- kernel-module/xt_RTPENGINE.c | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/daemon/codec.c b/daemon/codec.c index a13a9caf5..58a793248 100644 --- a/daemon/codec.c +++ b/daemon/codec.c @@ -3771,7 +3771,9 @@ void codec_calc_jitter(struct ssrc_ctx *ssrc, unsigned long ts, unsigned int clo sec->transit = transit; if (d < 0) d = -d; - sec->jitter += d - ((sec->jitter + 8) >> 4); + // ignore implausibly large values + if (d < 100000) + sec->jitter += d - ((sec->jitter + 8) >> 4); mutex_unlock(&sec->h.lock); } static void codec_calc_lost(struct ssrc_ctx *ssrc, uint16_t seq) { diff --git a/kernel-module/xt_RTPENGINE.c b/kernel-module/xt_RTPENGINE.c index 10ef435e7..4ea418d71 100644 --- a/kernel-module/xt_RTPENGINE.c +++ b/kernel-module/xt_RTPENGINE.c @@ -4443,7 +4443,9 @@ static void rtp_stats(struct rtpengine_target *g, struct rtp_parsed *rtp, s64 ar s->transit = transit; if (d < 0) d = -d; - s->jitter += d - ((s->jitter + 8) >> 4); + // ignore implausibly large values + if (d < 100000) + s->jitter += d - ((s->jitter + 8) >> 4); spin_unlock_irqrestore(&g->ssrc_stats_lock, flags); }