From 4606d74a665d861e8d3b1ac7966de248b106a807 Mon Sep 17 00:00:00 2001 From: Mark Spencer Date: Fri, 11 Nov 2005 04:07:03 +0000 Subject: Fix wrap around for rtp (bug #5595) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@7069 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- rtp.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'rtp.c') diff --git a/rtp.c b/rtp.c index 75979d821..653355e08 100755 --- a/rtp.c +++ b/rtp.c @@ -1098,6 +1098,8 @@ static unsigned int calc_txstamp(struct ast_rtp *rtp, struct timeval *delivery) /* Use previous txcore if available */ t = (delivery && !ast_tvzero(*delivery)) ? *delivery : ast_tvnow(); ms = ast_tvdiff_ms(t, rtp->txcore); + if (ms < 0) + ms = 0; /* Use what we just got for next time */ rtp->txcore = t; return (unsigned int) ms; @@ -1226,14 +1228,14 @@ static int ast_rtp_raw_write(struct ast_rtp *rtp, struct ast_frame *f, int codec char iabuf[INET_ADDRSTRLEN]; int hdrlen = 12; int res; - int ms; + unsigned int ms; int pred; int mark = 0; ms = calc_txstamp(rtp, &f->delivery); /* Default prediction */ if (f->subclass < AST_FORMAT_MAX_AUDIO) { - pred = rtp->lastts + f->samples; + pred = rtp->lastts + f->samples; /* Re-calculate last TS */ rtp->lastts = rtp->lastts + ms * 8; -- cgit v1.2.3