|
|
|
@ -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 |
|
|
|
} |
|
|
|
|