At one point during working on this module, I had the lin/lin16 versions of the
authorRussell Bryant <russell@russellbryant.com>
Fri, 11 Jan 2008 17:17:54 +0000 (17:17 +0000)
committerRussell Bryant <russell@russellbryant.com>
Fri, 11 Jan 2008 17:17:54 +0000 (17:17 +0000)
framein callbacks different.  However, they are now the same again, so remove
the duplicate code and use the same functions for the lin/lin16 versions.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@98218 65c4cc65-6c06-0410-ace0-fbb531ad65f3

codecs/codec_g722.c

index b8df7b7..99c3856 100644 (file)
@@ -101,28 +101,11 @@ static int g722tolin16_new(struct ast_trans_pvt *pvt)
 static int g722tolin_framein(struct ast_trans_pvt *pvt, struct ast_frame *f)
 {
        struct g722_decoder_pvt *tmp = pvt->pvt;
-       unsigned char *src = f->data;
-       int out_samples;
-
-       out_samples = g722_decode(&tmp->g722, (int16_t *) &pvt->outbuf[pvt->samples * sizeof(int16_t)], 
-               src, f->samples);
-
-       pvt->samples += out_samples;
-
-       pvt->datalen += (out_samples * sizeof(int16_t));
-
-       return 0;
-}
-
-static int g722tolin16_framein(struct ast_trans_pvt *pvt, struct ast_frame *f)
-{
-       struct g722_decoder_pvt *tmp = pvt->pvt;
        int out_samples;
 
        out_samples = g722_decode(&tmp->g722, (int16_t *) &pvt->outbuf[pvt->samples * sizeof(int16_t)], 
                (uint8_t *) f->data, f->samples);
 
-       /* sample rate the same between formats, but don't assume that it won't output more ... */
        pvt->samples += out_samples;
 
        pvt->datalen += (out_samples * sizeof(int16_t));
@@ -145,21 +128,6 @@ static int lintog722_framein(struct ast_trans_pvt *pvt, struct ast_frame *f)
        return 0;
 }
 
-static int lin16tog722_framein(struct ast_trans_pvt *pvt, struct ast_frame *f)
-{
-       struct g722_encoder_pvt *tmp = pvt->pvt;
-       int16_t *src = f->data;
-       int outlen;
-
-       outlen = g722_encode(&tmp->g722, (uint8_t*)(&pvt->outbuf[pvt->datalen]), src, f->samples);
-
-       pvt->samples += outlen;
-
-       pvt->datalen += outlen;
-
-       return 0;
-}
-
 static struct ast_frame *g722tolin_sample(void)
 {
        static struct ast_frame f = {
@@ -246,7 +214,7 @@ static struct ast_translator g722tolin16 = {
        .srcfmt = AST_FORMAT_G722,
        .dstfmt = AST_FORMAT_SLINEAR16,
        .newpvt = g722tolin16_new,      /* same for both directions */
-       .framein = g722tolin16_framein,
+       .framein = g722tolin_framein,
        .sample = g722tolin16_sample,
        .desc_size = sizeof(struct g722_decoder_pvt),
        .buffer_samples = BUFFER_SAMPLES / sizeof(int16_t),
@@ -259,7 +227,7 @@ static struct ast_translator lin16tog722 = {
        .srcfmt = AST_FORMAT_SLINEAR16,
        .dstfmt = AST_FORMAT_G722,
        .newpvt = lin16tog722_new,      /* same for both directions */
-       .framein = lin16tog722_framein,
+       .framein = lintog722_framein,
        .sample = lin16tog722_sample,
        .desc_size = sizeof(struct g722_encoder_pvt),
        .buffer_samples = BUFFER_SAMPLES * 2,