diff options
author | Yoshihisa Uchida <yoshihisa.uchida@gmail.com> | 2009-06-20 13:07:21 +0000 |
---|---|---|
committer | Carl Eugen Hoyos <cehoyos@rainbow.studorg.tuwien.ac.at> | 2009-06-20 13:07:21 +0000 |
commit | d8b2d834735cc83c5681bcb0b63837e8c37d2686 (patch) | |
tree | 78a25563210f050985a6ef202e154e493663521c | |
parent | 3f3f3ba799587cfd27d6011b19784bc30864b32f (diff) | |
download | ffmpeg-d8b2d834735cc83c5681bcb0b63837e8c37d2686.tar.gz |
Fix yamaha adpcm stereo (issue 1117).
Patch by Yoshihisa Uchida, yoshihisa D uchida A gmail
Originally committed as revision 19237 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r-- | libavcodec/adpcm.c | 13 | ||||
-rw-r--r-- | tests/rotozoom.regression.ref | 6 | ||||
-rw-r--r-- | tests/vsynth.regression.ref | 6 |
3 files changed, 11 insertions, 14 deletions
diff --git a/libavcodec/adpcm.c b/libavcodec/adpcm.c index 8184378a16..4d2146f23a 100644 --- a/libavcodec/adpcm.c +++ b/libavcodec/adpcm.c @@ -648,14 +648,11 @@ static int adpcm_encode_frame(AVCodecContext *avctx, *dst++ = buf[0][i] | (buf[1][i] << 4); } } else - for (; n>0; n--) { - for(i = 0; i < avctx->channels; i++) { - int nibble; - nibble = adpcm_yamaha_compress_sample(&c->status[i], samples[i]); - nibble |= adpcm_yamaha_compress_sample(&c->status[i], samples[i+avctx->channels]) << 4; - *dst++ = nibble; - } - samples += 2 * avctx->channels; + for (n *= avctx->channels; n>0; n--) { + int nibble; + nibble = adpcm_yamaha_compress_sample(&c->status[ 0], *samples++); + nibble |= adpcm_yamaha_compress_sample(&c->status[st], *samples++) << 4; + *dst++ = nibble; } break; default: diff --git a/tests/rotozoom.regression.ref b/tests/rotozoom.regression.ref index 99f077725f..d7060639c5 100644 --- a/tests/rotozoom.regression.ref +++ b/tests/rotozoom.regression.ref @@ -193,10 +193,10 @@ stddev: 914.63 PSNR: 37.09 bytes: 1058604/ 1058444 268344 ./tests/data/a-adpcm_ms.wav 7be370f937c51e8a967e6a3d08d5156a *./tests/data/adpcm_ms.rotozoom.out.wav stddev: 1050.00 PSNR: 35.90 bytes: 1060620/ 1058444 -14df8b8bb7c127ec70c0167df1c0dbf7 *./tests/data/a-adpcm_yam.wav +2546d72df736b5ffa1557e8c9c9ef788 *./tests/data/a-adpcm_yam.wav 266296 ./tests/data/a-adpcm_yam.wav -2f73107dafef6db42e545f9e466d3f05 *./tests/data/adpcm_yam.rotozoom.out.wav -stddev:18302.45 PSNR: 11.07 bytes: 1065004/ 1058444 +c80c847a53a0fee17a88fa889ec34a4e *./tests/data/adpcm_yam.rotozoom.out.wav +stddev: 1247.64 PSNR: 34.40 bytes: 1065004/ 1058444 42d4639866ed4d692eaf126228a4fa2a *./tests/data/a-adpcm_swf.flv 269166 ./tests/data/a-adpcm_swf.flv 628089745a7059ae4055c2515b6d668b *./tests/data/adpcm_swf.rotozoom.out.wav diff --git a/tests/vsynth.regression.ref b/tests/vsynth.regression.ref index dd4f4733c9..9a671c9b58 100644 --- a/tests/vsynth.regression.ref +++ b/tests/vsynth.regression.ref @@ -193,10 +193,10 @@ stddev: 914.63 PSNR: 37.09 bytes: 1058604/ 1058444 268344 ./tests/data/a-adpcm_ms.wav 7be370f937c51e8a967e6a3d08d5156a *./tests/data/adpcm_ms.vsynth.out.wav stddev: 1050.00 PSNR: 35.90 bytes: 1060620/ 1058444 -14df8b8bb7c127ec70c0167df1c0dbf7 *./tests/data/a-adpcm_yam.wav +2546d72df736b5ffa1557e8c9c9ef788 *./tests/data/a-adpcm_yam.wav 266296 ./tests/data/a-adpcm_yam.wav -2f73107dafef6db42e545f9e466d3f05 *./tests/data/adpcm_yam.vsynth.out.wav -stddev:18302.45 PSNR: 11.07 bytes: 1065004/ 1058444 +c80c847a53a0fee17a88fa889ec34a4e *./tests/data/adpcm_yam.vsynth.out.wav +stddev: 1247.64 PSNR: 34.40 bytes: 1065004/ 1058444 42d4639866ed4d692eaf126228a4fa2a *./tests/data/a-adpcm_swf.flv 269166 ./tests/data/a-adpcm_swf.flv 628089745a7059ae4055c2515b6d668b *./tests/data/adpcm_swf.vsynth.out.wav |