diff --git a/libavcodec/adpcm.c b/libavcodec/adpcm.c
index 3ba941e8fc1e3312707ee03471c18359ad0704a3..efe12b573e75b3fabd7e3f1cb17a19fbfe443cdc 100644
--- a/libavcodec/adpcm.c
+++ b/libavcodec/adpcm.c
@@ -1348,7 +1348,7 @@ static int adpcm_decode_frame(AVCodecContext *avctx,
 
             /* Read in every sample for this channel.  */
             for (i = 0; i < samplecnt / 14; i++) {
-                uint8_t index = get_bits (&gb, 4) & 7;
+                int index = get_bits (&gb, 4) & 7;
                 unsigned int exp = get_bits (&gb, 4);
                 int factor1 = table[ch][index * 2];
                 int factor2 = table[ch][index * 2 + 1];