diff --git a/libavcodec/ac3enc.c b/libavcodec/ac3enc.c
index 2bd4179aab..30e3f87bda 100644
--- a/libavcodec/ac3enc.c
+++ b/libavcodec/ac3enc.c
@@ -599,7 +599,7 @@ static int bit_alloc(AC3EncodeContext *s,
         s->mant2_cnt = 0;
         s->mant4_cnt = 0;
         for(ch=0;ch<s->nb_channels;ch++) {
-            parametric_bit_allocation(s, bap[i][ch], encoded_exp[i][ch], 
+            parametric_bit_allocation(s, bap[i][ch], (INT8 *)encoded_exp[i][ch], 
                                       0, s->nb_coefs[ch], 
                                       (((csnroffst-15) << 4) + 
                                        fsnroffst) << 2, 
diff --git a/libavcodec/mpeg12data.h b/libavcodec/mpeg12data.h
index 7dbf2b2208..f397c4a175 100644
--- a/libavcodec/mpeg12data.h
+++ b/libavcodec/mpeg12data.h
@@ -127,7 +127,7 @@ static const UINT16 mpeg2_vlc[113][2] = {
   {0x06,4}, /* EOB */
 };
 
-static const UINT8 mpeg1_level[111] = {
+static const INT8 mpeg1_level[111] = {
   1,  2,  3,  4,  5,  6,  7,  8,
   9, 10, 11, 12, 13, 14, 15, 16,
  17, 18, 19, 20, 21, 22, 23, 24,
@@ -144,7 +144,7 @@ static const UINT8 mpeg1_level[111] = {
   1,  1,  1,  1,  1,  1,  1,
 };
 
-static const UINT8 mpeg1_run[111] = {
+static const INT8 mpeg1_run[111] = {
   0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,
diff --git a/libavcodec/msmpeg4.c b/libavcodec/msmpeg4.c
index c86fbedef8..885abc117d 100644
--- a/libavcodec/msmpeg4.c
+++ b/libavcodec/msmpeg4.c
@@ -361,10 +361,10 @@ void msmpeg4_dc_scale(MpegEncContext * s)
 
 /* dir = 0: left, dir = 1: top prediction */
 static int msmpeg4_pred_dc(MpegEncContext * s, int n, 
-                           UINT16 **dc_val_ptr, int *dir_ptr)
+                           INT16 **dc_val_ptr, int *dir_ptr)
 {
     int a, b, c, x, y, wrap, pred, scale;
-    UINT16 *dc_val;
+    INT16 *dc_val;
 
     /* find prediction */
     if (n < 4) {
@@ -417,7 +417,7 @@ static void msmpeg4_encode_dc(MpegEncContext * s, int level, int n, int *dir_ptr
 {
     int sign, code;
     int pred;
-    UINT16 *dc_val;
+    INT16 *dc_val;
 
     pred = msmpeg4_pred_dc(s, n, &dc_val, dir_ptr);
 
@@ -863,7 +863,7 @@ static int msmpeg4_decode_block(MpegEncContext * s, DCTELEM * block,
 static int msmpeg4_decode_dc(MpegEncContext * s, int n, int *dir_ptr)
 {
     int level, pred;
-    UINT16 *dc_val;
+    INT16 *dc_val;
 
     if (n < 4) {
         level = get_vlc(&s->gb, &dc_lum_vlc[s->dc_table_index]);