Fix transmissions
authorMark Spencer <markster@digium.com>
Thu, 17 Apr 2003 19:19:12 +0000 (19:19 +0000)
committerMark Spencer <markster@digium.com>
Thu, 17 Apr 2003 19:19:12 +0000 (19:19 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@864 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_iax.c
channels/chan_iax2.c
rtp.c

index deb739b..9f5724c 100755 (executable)
@@ -638,7 +638,10 @@ static int get_samples(struct ast_frame *f)
                samples = 160 * (f->datalen / 33);
                break;
        case AST_FORMAT_ILBC:
-               samples = 240 * (f->datalen / 52);
+               samples = 240 * (f->datalen / 50);
+               break;
+       case AST_FORMAT_G729A:
+               samples = 160 * (f->datalen / 20);
                break;
        case AST_FORMAT_SLINEAR:
                samples = f->datalen / 2;
index d7dcd47..8b91597 100755 (executable)
@@ -539,7 +539,7 @@ static int get_samples(struct ast_frame *f)
                samples = 240 /* XXX Not necessarily true XXX */;
                break;
        case AST_FORMAT_ILBC:
-               samples = 240 * (f->datalen / 52);
+               samples = 240 * (f->datalen / 50);
                break;
        case AST_FORMAT_GSM:
                samples = 160 * (f->datalen / 33);
diff --git a/rtp.c b/rtp.c
index b5cecbb..a5d6ca2 100755 (executable)
--- a/rtp.c
+++ b/rtp.c
@@ -334,7 +334,7 @@ struct ast_frame *ast_rtp_read(struct ast_rtp *rtp)
                rtp->f.samples = 160 * (rtp->f.datalen / 33);
                break;
        case AST_FORMAT_ILBC:
-               rtp->f.samples = 240 * (rtp->f.datalen / 52);
+               rtp->f.samples = 240 * (rtp->f.datalen / 50);
                break;
        case AST_FORMAT_ADPCM:
                rtp->f.samples = rtp->f.datalen * 2;
@@ -717,7 +717,7 @@ static int ast_rtp_raw_write(struct ast_rtp *rtp, struct ast_frame *f, int codec
                pred = rtp->lastts + (f->datalen * 160 / 33);
                break;
        case AST_FORMAT_ILBC:
-               pred = rtp->lastts + (f->datalen * 240 / 52);
+               pred = rtp->lastts + (f->datalen * 240 / 50);
                break;
        case AST_FORMAT_G723_1:
                pred = rtp->lastts + g723_samples(f->data, f->datalen);
@@ -833,7 +833,7 @@ int ast_rtp_write(struct ast_rtp *rtp, struct ast_frame *_f)
                break;
        case AST_FORMAT_ILBC:
                if (!rtp->smoother) {
-                       rtp->smoother = ast_smoother_new(52);
+                       rtp->smoother = ast_smoother_new(50);
                }
                if (!rtp->smoother) {
                        ast_log(LOG_WARNING, "Unable to create ILBC smoother :(\n");