TT#14008 fix 64-bit division on 32-bit archs

closes #1304

Change-Id: Id72a67c01c9a503b56eb4f99db23a4550a421728
Richard Fuchs 4 years ago
parent 8d06707a9f
commit d35c7981cb

@ -33,6 +33,7 @@
#include <linux/netfilter_ipv6.h>
#include <linux/netfilter/x_tables.h>
#include <linux/crc32.h>
#include <linux/math64.h>
#ifndef __RE_EXTERNAL
#include <linux/netfilter/xt_RTPENGINE.h>
#else
@ -4302,7 +4303,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;
@ -4546,7 +4547,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
}

Loading…
Cancel
Save