mirror of
https://github.com/asterisk/asterisk.git
synced 2025-11-01 11:32:25 +00:00
Fix wrap around for rtp (bug #5595)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@7069 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
6
rtp.c
6
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;
|
||||
|
||||
Reference in New Issue
Block a user