summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNanang Izzuddin <nanang@teluu.com>2008-10-06 18:42:13 +0000
committerNanang Izzuddin <nanang@teluu.com>2008-10-06 18:42:13 +0000
commit1849cf9a6535a490d9e430ccdbfca18125cd8f3d (patch)
tree97366ee13d9ac69ede69a31a0a0604f5ba48171b
parentf57d9c2eaff4de527d5dd9c2ffd1dcc462beb5ea (diff)
Fixed G.722 codec that is suppossed to work with 14 bits PCM for its input & output (thanks Olle Frimanson for the report).
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@2342 74dad513-b988-da41-8d7b-12977e46ad98
-rw-r--r--pjmedia/src/pjmedia-codec/g722/g722_dec.c4
-rw-r--r--pjmedia/src/pjmedia-codec/g722/g722_enc.c2
2 files changed, 3 insertions, 3 deletions
diff --git a/pjmedia/src/pjmedia-codec/g722/g722_dec.c b/pjmedia/src/pjmedia-codec/g722/g722_dec.c
index bb7e37d1..770ade06 100644
--- a/pjmedia/src/pjmedia-codec/g722/g722_dec.c
+++ b/pjmedia/src/pjmedia-codec/g722/g722_dec.c
@@ -529,8 +529,8 @@ PJ_DEF(pj_status_t) g722_dec_decode( g722_dec_t *dec,
/* rhigh <= output high band pcm */
rx_qmf(dec, rlow, rhigh, &pcm1, &pcm2);
- out[i*2] = (pj_int16_t)pcm1;
- out[i*2+1] = (pj_int16_t)pcm2;
+ out[i*2] = (pj_int16_t)(pcm1 << 2);
+ out[i*2+1] = (pj_int16_t)(pcm2 << 2);
}
*nsamples = in_size << 1;
diff --git a/pjmedia/src/pjmedia-codec/g722/g722_enc.c b/pjmedia/src/pjmedia-codec/g722/g722_enc.c
index 8f6ee5a5..1cf3307c 100644
--- a/pjmedia/src/pjmedia-codec/g722/g722_enc.c
+++ b/pjmedia/src/pjmedia-codec/g722/g722_enc.c
@@ -542,7 +542,7 @@ PJ_DEF(pj_status_t) g722_enc_encode( g722_enc_t *enc,
PJ_ASSERT_RETURN(*out_size >= (nsamples >> 1), PJ_ETOOSMALL);
for(i = 0; i < nsamples; i += 2) {
- tx_qmf(enc, in[i], in[i+1], &xlow, &xhigh);
+ tx_qmf(enc, in[i]>>2, in[i+1]>>2, &xlow, &xhigh);
/* low band encoder */
ilow = block1l (xlow, enc->slow, enc->detlow) ;