diff --git a/kernel-module/xt_RTPENGINE.c b/kernel-module/xt_RTPENGINE.c index 9aba69eb4..b142a0041 100644 --- a/kernel-module/xt_RTPENGINE.c +++ b/kernel-module/xt_RTPENGINE.c @@ -33,6 +33,7 @@ #include #include #include +#include #ifndef __RE_EXTERNAL #include #else @@ -4196,7 +4197,7 @@ static void rtp_stats(struct rtpengine_target *g, struct rtp_parsed *rtp, s64 ar // jitter // RFC 3550 A.8 clockrate = g->target.clock_rates[pt_idx]; - transit = (((arrival_time / 1000) * clockrate) / 1000) - ts; + transit = ((uint32_t) (div64_s64(arrival_time, 1000) * clockrate) / 1000) - ts; d = 0; if (s->transit) d = transit - s->transit; @@ -4417,7 +4418,7 @@ no_intercept: g->stats.delay_avg = g->stats.delay_avg * (atomic64_read(&g->stats.packets)-1); g->stats.delay_avg = g->stats.delay_avg + delay; - g->stats.delay_avg = g->stats.delay_avg / atomic64_read(&g->stats.packets); + g->stats.delay_avg = div64_u64(g->stats.delay_avg, atomic64_read(&g->stats.packets)); } #endif }