diff options
author | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2000-08-11 15:40:57 +0000 |
---|---|---|
committer | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2000-08-11 15:40:57 +0000 |
commit | 0605979cbd2cbaee7362f8afcbacf55207cb6992 (patch) | |
tree | a9134109e74f265386d5547a27c732bc8f799b80 /translate.c | |
parent | 5d1d53514d5b47881e12b25db581f3c4a82a81ba (diff) |
Version 0.1.4 from FTP
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@216 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'translate.c')
-rwxr-xr-x | translate.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/translate.c b/translate.c index 7546b59a2..fc9c5f22b 100755 --- a/translate.c +++ b/translate.c @@ -304,7 +304,8 @@ struct ast_frame_chain *ast_translate(struct ast_trans_pvt *path, struct ast_fra #define FUDGE 0 -static void translator_apply(struct translator_pvt *pvt, struct ast_trans_pvt *path, struct ast_frame *f, int fd, struct ast_channel *c, struct timeval *last) +static void translator_apply(struct translator_pvt *pvt, struct ast_trans_pvt *path, struct ast_frame *f, int fd, struct ast_channel *c, + struct timeval *last) { struct ast_trans_pvt *p; struct ast_frame *out; @@ -328,7 +329,7 @@ static void translator_apply(struct translator_pvt *pvt, struct ast_trans_pvt *p #ifdef EXPERIMENTAL_TRANSLATION if (ms + FUDGE < out->timelen) schedule_delivery(pvt->sched, pvt, - c, fd, out, ms); + c, fd, out, out->timelen - ms); else { if (c) ast_write(c, out); @@ -340,13 +341,17 @@ static void translator_apply(struct translator_pvt *pvt, struct ast_trans_pvt *p /* Schedule this packet to be delivered at the right time */ } else + gettimeofday(last, NULL); #else +#if 0 /* XXX Not correct in the full duplex case XXX */ if (ms + FUDGE < out->timelen) usleep((out->timelen - ms - FUDGE) * 1000); +#endif last->tv_sec = tv.tv_sec; last->tv_usec = tv.tv_usec; - } + } else + gettimeofday(last, NULL); #endif if (c) ast_write(c, out); |