diff options
-rw-r--r-- | pjmedia/src/pjmedia-codec/g722.c | 2 | ||||
-rw-r--r-- | pjmedia/src/pjmedia-codec/g722/g722_dec.c | 5 |
2 files changed, 5 insertions, 2 deletions
diff --git a/pjmedia/src/pjmedia-codec/g722.c b/pjmedia/src/pjmedia-codec/g722.c index 842612c9..5b43a61b 100644 --- a/pjmedia/src/pjmedia-codec/g722.c +++ b/pjmedia/src/pjmedia-codec/g722.c @@ -588,7 +588,7 @@ static pj_status_t g722_codec_encode(pjmedia_codec *codec, pj_int16_t *p, *end; p = (pj_int16_t*)input->buf; - end = p + input->size; + end = p + input->size/2; while (p < end) { *p++ >>= g722_data->pcm_shift; } diff --git a/pjmedia/src/pjmedia-codec/g722/g722_dec.c b/pjmedia/src/pjmedia-codec/g722/g722_dec.c index 1579d06e..70e23109 100644 --- a/pjmedia/src/pjmedia-codec/g722/g722_dec.c +++ b/pjmedia/src/pjmedia-codec/g722/g722_dec.c @@ -504,6 +504,7 @@ PJ_DEF(pj_status_t) g722_dec_decode( g722_dec_t *dec, unsigned i; int ilowr, ylow, rlow, dlowt; int ihigh, rhigh, dhigh; + int pcm1, pcm2; pj_uint8_t *in_ = (pj_uint8_t*) in; PJ_ASSERT_RETURN(dec && in && in_size && out && nsamples, PJ_EINVAL); @@ -528,7 +529,9 @@ PJ_DEF(pj_status_t) g722_dec_decode( g722_dec_t *dec, dec->shigh = block4h (dec, dhigh) ; /* rhigh <= output high band pcm */ - rx_qmf(dec, rlow, rhigh, &out[i*2], &out[i*2+1]); + rx_qmf(dec, rlow, rhigh, &pcm1, &pcm2); + out[i*2] = (pj_int16_t)pcm1; + out[i*2+1] = (pj_int16_t)pcm2; } *nsamples = in_size << 1; |