diff options
author | Benny Prijono <bennylp@teluu.com> | 2006-11-30 01:35:00 +0000 |
---|---|---|
committer | Benny Prijono <bennylp@teluu.com> | 2006-11-30 01:35:00 +0000 |
commit | 634423cd1e3f12d6cc70c8e6564d40e986eb0312 (patch) | |
tree | 02911836861d548916367a6e1b572bc005383d32 /pjmedia/src/pjmedia/g711.c | |
parent | a35cd16ec8ea8289b0c8a975ee858d39461a9cd9 (diff) |
Implement task #26: integrate table based Alaw/Ulaw/linear conversion into pjmedia (thanks Toni Rutar for the original contribution)
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@838 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjmedia/src/pjmedia/g711.c')
-rw-r--r-- | pjmedia/src/pjmedia/g711.c | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/pjmedia/src/pjmedia/g711.c b/pjmedia/src/pjmedia/g711.c index a28051a0..cf8a2a33 100644 --- a/pjmedia/src/pjmedia/g711.c +++ b/pjmedia/src/pjmedia/g711.c @@ -20,6 +20,7 @@ * notice in the second half of this file. */ #include <pjmedia/codec.h> +#include <pjmedia/alaw_ulaw.h> #include <pjmedia/endpoint.h> #include <pjmedia/errno.h> #include <pjmedia/port.h> @@ -42,12 +43,6 @@ PJ_DECL(pj_status_t) g711_init_factory (pjmedia_codec_factory *factory, pj_pool_t *pool); -/* Algorithm prototypes. */ -unsigned char linear2alaw(int pcm_val); -int alaw2linear(unsigned char a_val); -unsigned char linear2ulaw(int pcm_val); -int ulaw2linear(unsigned char u_val); - /* Prototypes for G711 factory */ static pj_status_t g711_test_alloc( pjmedia_codec_factory *factory, const pjmedia_codec_info *id ); @@ -477,14 +472,14 @@ static pj_status_t g711_encode(pjmedia_codec *codec, pj_uint8_t *dst = output->buf; for (i=0; i!=input->size/2; ++i, ++dst) { - *dst = linear2alaw(samples[i]); + *dst = pjmedia_linear2alaw(samples[i]); } } else if (priv->pt == PJMEDIA_RTP_PT_PCMU) { unsigned i; pj_uint8_t *dst = output->buf; for (i=0; i!=input->size/2; ++i, ++dst) { - *dst = linear2ulaw(samples[i]); + *dst = pjmedia_linear2ulaw(samples[i]); } } else { @@ -519,7 +514,7 @@ static pj_status_t g711_decode(pjmedia_codec *codec, pj_uint16_t *dst = output->buf; for (i=0; i!=input->size; ++i) { - *dst++ = (pj_uint16_t) alaw2linear(*src++); + *dst++ = (pj_uint16_t) pjmedia_alaw2linear(*src++); } } else if (priv->pt == PJMEDIA_RTP_PT_PCMU) { unsigned i; @@ -527,7 +522,7 @@ static pj_status_t g711_decode(pjmedia_codec *codec, pj_uint16_t *dst = output->buf; for (i=0; i!=input->size; ++i) { - *dst++ = (pj_uint16_t) ulaw2linear(*src++); + *dst++ = (pj_uint16_t) pjmedia_ulaw2linear(*src++); } } else { |