aboutsummaryrefslogtreecommitdiffstats
path: root/codecs
diff options
context:
space:
mode:
authorrussell <russell@f38db490-d61c-443f-a65b-d21fe96a405b>2008-01-11 17:17:54 +0000
committerrussell <russell@f38db490-d61c-443f-a65b-d21fe96a405b>2008-01-11 17:17:54 +0000
commit2f83bcc869cb22608e47293be017dac698a4bffd (patch)
treee37671beb1811dc58a9bcc16a8628f9d99133856 /codecs
parentabdb54a56946177c425741d922d11c4add2eb162 (diff)
At one point during working on this module, I had the lin/lin16 versions of the
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: http://svn.digium.com/svn/asterisk/trunk@98218 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'codecs')
-rw-r--r--codecs/codec_g722.c36
1 files changed, 2 insertions, 34 deletions
diff --git a/codecs/codec_g722.c b/codecs/codec_g722.c
index b8df7b76b..99c3856bc 100644
--- a/codecs/codec_g722.c
+++ b/codecs/codec_g722.c
@@ -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,