[SCM] libav/experimental: yamaha adpcm nibbles in the wrong order fix by (Vidar Madsen: vidarino, gmail com)

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Sun Jun 30 15:44:39 UTC 2013


The following commit has been merged in the experimental branch:
commit b194c327fcedaf3fa9605840466ebcfeb622edb3
Author: Michael Niedermayer <michaelni at gmx.at>
Date:   Sat Jul 16 11:18:42 2005 +0000

    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

diff --git a/libavcodec/adpcm.c b/libavcodec/adpcm.c
index 67a9876..3c67242 100644
--- a/libavcodec/adpcm.c
+++ b/libavcodec/adpcm.c
@@ -406,8 +406,8 @@ static int adpcm_encode_frame(AVCodecContext *avctx,
         for (; n>0; n--) {
             for(i = 0; i < avctx->channels; i++) {
                 int nibble;
-                nibble  = adpcm_yamaha_compress_sample(&c->status[i], samples[i]) << 4;
-                nibble |= adpcm_yamaha_compress_sample(&c->status[i], samples[i+avctx->channels]);
+                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;
@@ -1047,14 +1047,14 @@ static int adpcm_decode_frame(AVCodecContext *avctx,
         while (src < buf + buf_size) {
             if (st) {
                 *samples++ = adpcm_yamaha_expand_nibble(&c->status[0],
-                        (src[0] >> 4) & 0x0F);
-                *samples++ = adpcm_yamaha_expand_nibble(&c->status[1],
                         src[0] & 0x0F);
-            } else {
-                *samples++ = adpcm_yamaha_expand_nibble(&c->status[0],
+                *samples++ = adpcm_yamaha_expand_nibble(&c->status[1],
                         (src[0] >> 4) & 0x0F);
+            } else {
                 *samples++ = adpcm_yamaha_expand_nibble(&c->status[0],
                         src[0] & 0x0F);
+                *samples++ = adpcm_yamaha_expand_nibble(&c->status[0],
+                        (src[0] >> 4) & 0x0F);
             }
             src++;
         }

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list