Commit b194c327 authored by Michael Niedermayer's avatar Michael Niedermayer

yamaha adpcm nibbles in the wrong order fix by (Vidar Madsen: vidarino, gmail com)

Originally committed as revision 4446 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent 7885603a
...@@ -406,8 +406,8 @@ static int adpcm_encode_frame(AVCodecContext *avctx, ...@@ -406,8 +406,8 @@ static int adpcm_encode_frame(AVCodecContext *avctx,
for (; n>0; n--) { for (; n>0; n--) {
for(i = 0; i < avctx->channels; i++) { for(i = 0; i < avctx->channels; i++) {
int nibble; int nibble;
nibble = adpcm_yamaha_compress_sample(&c->status[i], samples[i]) << 4; nibble = adpcm_yamaha_compress_sample(&c->status[i], samples[i]);
nibble |= adpcm_yamaha_compress_sample(&c->status[i], samples[i+avctx->channels]); nibble |= adpcm_yamaha_compress_sample(&c->status[i], samples[i+avctx->channels]) << 4;
*dst++ = nibble; *dst++ = nibble;
} }
samples += 2 * avctx->channels; samples += 2 * avctx->channels;
...@@ -1047,14 +1047,14 @@ static int adpcm_decode_frame(AVCodecContext *avctx, ...@@ -1047,14 +1047,14 @@ static int adpcm_decode_frame(AVCodecContext *avctx,
while (src < buf + buf_size) { while (src < buf + buf_size) {
if (st) { if (st) {
*samples++ = adpcm_yamaha_expand_nibble(&c->status[0], *samples++ = adpcm_yamaha_expand_nibble(&c->status[0],
(src[0] >> 4) & 0x0F);
*samples++ = adpcm_yamaha_expand_nibble(&c->status[1],
src[0] & 0x0F); src[0] & 0x0F);
} else { *samples++ = adpcm_yamaha_expand_nibble(&c->status[1],
*samples++ = adpcm_yamaha_expand_nibble(&c->status[0],
(src[0] >> 4) & 0x0F); (src[0] >> 4) & 0x0F);
} else {
*samples++ = adpcm_yamaha_expand_nibble(&c->status[0], *samples++ = adpcm_yamaha_expand_nibble(&c->status[0],
src[0] & 0x0F); src[0] & 0x0F);
*samples++ = adpcm_yamaha_expand_nibble(&c->status[0],
(src[0] >> 4) & 0x0F);
} }
src++; src++;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment