diff --git a/libavformat/aiff.c b/libavformat/aiff.c
index 00dc7c12b74195c365514817641ed241e89b82d7..3dbe6b152405afed08151964d59d37d684b77458 100644
--- a/libavformat/aiff.c
+++ b/libavformat/aiff.c
@@ -220,10 +220,10 @@ static int aiff_write_header(AVFormatContext *s)
     put_le32(pb, enc->codec_tag);
     if (coder_len & 1) {
         put_byte(pb, coder_len);
-        put_buffer(pb, (uint8_t*)enc->codec->name, coder_len);
+        put_buffer(pb, (const uint8_t*)enc->codec->name, coder_len);
     } else {
         put_byte(pb, coder_len+1);
-        put_buffer(pb, (uint8_t*)enc->codec->name, coder_len);
+        put_buffer(pb, (const uint8_t*)enc->codec->name, coder_len);
         put_byte(pb, 0);
     }
 
diff --git a/libavformat/asf-enc.c b/libavformat/asf-enc.c
index 1f8a993c66e8066d80c132ff642ce36930a225a3..cca441b165aff913187c3accd57fc8014d13dd01 100644
--- a/libavformat/asf-enc.c
+++ b/libavformat/asf-enc.c
@@ -349,7 +349,7 @@ static int asf_write_header1(AVFormatContext *s, int64_t file_size, int64_t data
     /* stream headers */
     for(n=0;n<s->nb_streams;n++) {
         int64_t es_pos;
-        uint8_t *er_spr = NULL;
+        const uint8_t *er_spr = NULL;
         int er_spr_len = 0;
         //        ASFStream *stream = &asf->streams[n];
 
@@ -360,7 +360,7 @@ static int asf_write_header1(AVFormatContext *s, int64_t file_size, int64_t data
 
         if (enc->codec_type == CODEC_TYPE_AUDIO) {
             if (enc->codec_id == CODEC_ID_ADPCM_G726) {
-                er_spr     = (uint8_t *)error_spread_ADPCM_G726;
+                er_spr     = error_spread_ADPCM_G726;
                 er_spr_len = sizeof(error_spread_ADPCM_G726);
             }
         }
diff --git a/libavformat/avformat.h b/libavformat/avformat.h
index 025826892a00561968fc12efb3d2ecc80b03842b..c94a9b1190c26bbd8e903a9403db2f2fbe7cd3d8 100644
--- a/libavformat/avformat.h
+++ b/libavformat/avformat.h
@@ -604,7 +604,7 @@ int fifo_init(FifoBuffer *f, int size);
 void fifo_free(FifoBuffer *f);
 int fifo_size(FifoBuffer *f, uint8_t *rptr);
 int fifo_read(FifoBuffer *f, uint8_t *buf, int buf_size, uint8_t **rptr_ptr);
-void fifo_write(FifoBuffer *f, uint8_t *buf, int size, uint8_t **wptr_ptr);
+void fifo_write(FifoBuffer *f, const uint8_t *buf, int size, uint8_t **wptr_ptr);
 int put_fifo(ByteIOContext *pb, FifoBuffer *f, int buf_size, uint8_t **rptr_ptr);
 void fifo_realloc(FifoBuffer *f, unsigned int size);
 
diff --git a/libavformat/dv.c b/libavformat/dv.c
index bec1759202abc60a36925cde7de4bebc3be9e5ee..beb94fa0a2fd52a1560b023f8ff298221ebb27fb 100644
--- a/libavformat/dv.c
+++ b/libavformat/dv.c
@@ -692,7 +692,7 @@ int dv_assemble_frame(DVMuxContext *c, AVStream* st,
             /* FIXME: we have to have more sensible approach than this one */
             if (fifo_size(&c->audio_data[i], c->audio_data[i].rptr) + data_size >= 100*AVCODEC_MAX_AUDIO_FRAME_SIZE)
                 av_log(st->codec, AV_LOG_ERROR, "Can't process DV frame #%d. Insufficient video data or severe sync problem.\n", c->frames);
-            fifo_write(&c->audio_data[i], (uint8_t *)data, data_size, &c->audio_data[i].wptr);
+            fifo_write(&c->audio_data[i], data, data_size, &c->audio_data[i].wptr);
         }
     }
 out:
diff --git a/libavformat/gif.c b/libavformat/gif.c
index 34d01c49f9cccf3a31c7a83328a27b692188020e..f81a70def5027bb520b202d0093f5ee4572a5197 100644
--- a/libavformat/gif.c
+++ b/libavformat/gif.c
@@ -187,7 +187,7 @@ static int gif_image_write_header(ByteIOContext *pb,
 
     /* the global palette */
     if (!palette) {
-        put_buffer(pb, (unsigned char *)gif_clut, 216*3);
+        put_buffer(pb, (const unsigned char *)gif_clut, 216*3);
         for(i=0;i<((256-216)*3);i++)
             put_byte(pb, 0);
     } else {
diff --git a/libavformat/matroska.c b/libavformat/matroska.c
index 9a1a69bc5a062dfcf97418ede65ee9da8cff52de..3e33eccab936e3ec9aeffb80d7a98703640e6aea 100644
--- a/libavformat/matroska.c
+++ b/libavformat/matroska.c
@@ -183,14 +183,14 @@ typedef enum {
  */
 
 typedef struct CodecTags{
-    char *str;
+    const char *str;
     enum CodecID id;
 }CodecTags;
 
 #define MATROSKA_CODEC_ID_VIDEO_VFW_FOURCC   "V_MS/VFW/FOURCC"
 #define MATROSKA_CODEC_ID_AUDIO_ACM          "A_MS/ACM"
 
-CodecTags codec_tags[]={
+static CodecTags codec_tags[]={
 //    {"V_MS/VFW/FOURCC"  , CODEC_ID_NONE},
     {"V_UNCOMPRESSED"   , CODEC_ID_RAWVIDEO},
     {"V_MPEG4/ISO/SP"   , CODEC_ID_MPEG4},
diff --git a/libavformat/movenc.c b/libavformat/movenc.c
index 9d1da5fdeba824b53e63dacbb8f11fa1b11db141..cc24e314ab86109501a5056eaa84e5741936e195 100644
--- a/libavformat/movenc.c
+++ b/libavformat/movenc.c
@@ -788,7 +788,7 @@ static int mov_write_vmhd_tag(ByteIOContext *pb)
 
 static int mov_write_hdlr_tag(ByteIOContext *pb, MOVTrack* track)
 {
-    char *descr, *hdlr, *hdlr_type;
+    const char *descr, *hdlr, *hdlr_type;
     offset_t pos = url_ftell(pb);
 
     if (!track) { /* no media --> data handler */
@@ -1085,7 +1085,7 @@ static int mov_write_string_data_tag(ByteIOContext *pb, const char *data, int lo
     }
 }
 
-static int mov_write_string_tag(ByteIOContext *pb, char *name, char *value, int long_style){
+static int mov_write_string_tag(ByteIOContext *pb, const char *name, const char *value, int long_style){
     int size = 0;
     if ( value && value[0] ) {
         offset_t pos = url_ftell(pb);
@@ -1225,7 +1225,7 @@ static size_t ascii_to_wc (ByteIOContext *pb, char *b, size_t n)
     return 2*n;
 }
 
-static uint16_t language_code (char *str)
+static uint16_t language_code (const char *str)
 {
     return ((((str[0]-0x60) & 0x1F)<<10) + (((str[1]-0x60) & 0x1F)<<5) + ((str[2]-0x60) & 0x1F));
 }
diff --git a/libavformat/png.c b/libavformat/png.c
index e775cc520ffafa810cb09ffe33083d90ca5f9dd6..4a41b21cc4bd7bc2375af4252faf6f1bf88d43e5 100644
--- a/libavformat/png.c
+++ b/libavformat/png.c
@@ -326,7 +326,7 @@ static void convert_from_rgba32(uint8_t *dst, const uint8_t *src, int width)
 
     d = dst;
     for(j = 0; j < width; j++) {
-        v = ((uint32_t *)src)[j];
+        v = ((const uint32_t *)src)[j];
         d[0] = v >> 16;
         d[1] = v >> 8;
         d[2] = v;
diff --git a/libavformat/utils.c b/libavformat/utils.c
index f011bc2d6506a0d56eede310fb234badd34483a4..375a878059e215f1a95a2d1d07071b20543054d1 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -342,7 +342,7 @@ void fifo_realloc(FifoBuffer *f, unsigned int new_size){
     }
 }
 
-void fifo_write(FifoBuffer *f, uint8_t *buf, int size, uint8_t **wptr_ptr)
+void fifo_write(FifoBuffer *f, const uint8_t *buf, int size, uint8_t **wptr_ptr)
 {
     int len;
     uint8_t *wptr;
diff --git a/libavformat/yuv4mpeg.c b/libavformat/yuv4mpeg.c
index dd623205da80f2cc05197f3d3f79d8223d48db8b..9993de43b422d4bbdb818466b2a0f318cf243707 100644
--- a/libavformat/yuv4mpeg.c
+++ b/libavformat/yuv4mpeg.c
@@ -35,7 +35,7 @@ static int yuv4_generate_header(AVFormatContext *s, char* buf)
     int width, height;
     int raten, rated, aspectn, aspectd, n;
     char inter;
-    char *colorspace = "";
+    const char *colorspace = "";
 
     st = s->streams[0];
     width = st->codec->width;