diff --git a/ffmpeg.c b/ffmpeg.c
index 55c8d38739a139ed7cf9cb5c98802c202ee80d12..d601dc5d6af4a30a69ef911d9b3c026bd2ef94c7 100644
--- a/ffmpeg.c
+++ b/ffmpeg.c
@@ -419,7 +419,7 @@ static int av_exit(int ret)
     av_free(video_standard);
 
 #ifdef CONFIG_POWERPC_PERF
-    extern void powerpc_display_perf_report(void);
+    void powerpc_display_perf_report(void);
     powerpc_display_perf_report();
 #endif /* CONFIG_POWERPC_PERF */
 
diff --git a/libavcodec/alpha/dsputil_alpha.c b/libavcodec/alpha/dsputil_alpha.c
index 6b80731bc9d505098cc4ee010468fda6fcb3fb4e..c1500b11f927143e8b2dbd960d645b0594bc4eac 100644
--- a/libavcodec/alpha/dsputil_alpha.c
+++ b/libavcodec/alpha/dsputil_alpha.c
@@ -22,9 +22,9 @@
 #include "libavcodec/dsputil.h"
 #include "asm.h"
 
-extern void simple_idct_axp(DCTELEM *block);
-extern void simple_idct_put_axp(uint8_t *dest, int line_size, DCTELEM *block);
-extern void simple_idct_add_axp(uint8_t *dest, int line_size, DCTELEM *block);
+void simple_idct_axp(DCTELEM *block);
+void simple_idct_put_axp(uint8_t *dest, int line_size, DCTELEM *block);
+void simple_idct_add_axp(uint8_t *dest, int line_size, DCTELEM *block);
 
 void put_pixels_axp_asm(uint8_t *block, const uint8_t *pixels,
                         int line_size, int h);
diff --git a/libavcodec/armv4l/dsputil_arm.c b/libavcodec/armv4l/dsputil_arm.c
index 695bf1c2cfad804422d147c9c99b8d2dc909ff92..385ef3d4d3a164bad806f73332358854be3ada09 100644
--- a/libavcodec/armv4l/dsputil_arm.c
+++ b/libavcodec/armv4l/dsputil_arm.c
@@ -24,23 +24,19 @@
 #include <ipp.h>
 #endif
 
-extern void dsputil_init_iwmmxt(DSPContext* c, AVCodecContext *avctx);
-extern void ff_float_init_arm_vfp(DSPContext* c, AVCodecContext *avctx);
+void dsputil_init_iwmmxt(DSPContext* c, AVCodecContext *avctx);
+void ff_float_init_arm_vfp(DSPContext* c, AVCodecContext *avctx);
 
-extern void j_rev_dct_ARM(DCTELEM *data);
-extern void simple_idct_ARM(DCTELEM *data);
+void j_rev_dct_ARM(DCTELEM *data);
+void simple_idct_ARM(DCTELEM *data);
 
-extern void simple_idct_armv5te(DCTELEM *data);
-extern void simple_idct_put_armv5te(uint8_t *dest, int line_size,
-                                    DCTELEM *data);
-extern void simple_idct_add_armv5te(uint8_t *dest, int line_size,
-                                    DCTELEM *data);
+void simple_idct_armv5te(DCTELEM *data);
+void simple_idct_put_armv5te(uint8_t *dest, int line_size, DCTELEM *data);
+void simple_idct_add_armv5te(uint8_t *dest, int line_size, DCTELEM *data);
 
-extern void ff_simple_idct_armv6(DCTELEM *data);
-extern void ff_simple_idct_put_armv6(uint8_t *dest, int line_size,
-                                     DCTELEM *data);
-extern void ff_simple_idct_add_armv6(uint8_t *dest, int line_size,
-                                     DCTELEM *data);
+void ff_simple_idct_armv6(DCTELEM *data);
+void ff_simple_idct_put_armv6(uint8_t *dest, int line_size, DCTELEM *data);
+void ff_simple_idct_add_armv6(uint8_t *dest, int line_size, DCTELEM *data);
 
 /* XXX: local hack */
 static void (*ff_put_pixels_clamped)(const DCTELEM *block, uint8_t *pixels, int line_size);
@@ -57,7 +53,7 @@ void put_no_rnd_pixels8_xy2_arm(uint8_t *block, const uint8_t *pixels, int line_
 
 void put_pixels16_arm(uint8_t *block, const uint8_t *pixels, int line_size, int h);
 
-extern void ff_prefetch_arm(void *mem, int stride, int h);
+void ff_prefetch_arm(void *mem, int stride, int h);
 
 CALL_2X_PIXELS(put_pixels16_x2_arm , put_pixels8_x2_arm , 8)
 CALL_2X_PIXELS(put_pixels16_y2_arm , put_pixels8_y2_arm , 8)
@@ -66,7 +62,7 @@ CALL_2X_PIXELS(put_no_rnd_pixels16_x2_arm , put_no_rnd_pixels8_x2_arm , 8)
 CALL_2X_PIXELS(put_no_rnd_pixels16_y2_arm , put_no_rnd_pixels8_y2_arm , 8)
 CALL_2X_PIXELS(put_no_rnd_pixels16_xy2_arm, put_no_rnd_pixels8_xy2_arm, 8)
 
-extern void ff_add_pixels_clamped_ARM(short *block, unsigned char *dest,
+void ff_add_pixels_clamped_ARM(short *block, unsigned char *dest,
                                       int line_size);
 
 /* XXX: those functions should be suppressed ASAP when all IDCTs are
diff --git a/libavcodec/armv4l/float_arm_vfp.c b/libavcodec/armv4l/float_arm_vfp.c
index fb827b3f494b22266c48ea8eba248754e4f9acb9..5598aa9c02cd427d95f26d85815a992b0661b30b 100644
--- a/libavcodec/armv4l/float_arm_vfp.c
+++ b/libavcodec/armv4l/float_arm_vfp.c
@@ -20,10 +20,10 @@
 
 #include "libavcodec/dsputil.h"
 
-extern void ff_vector_fmul_vfp(float *dst, const float *src, int len);
-extern void ff_vector_fmul_reverse_vfp(float *dst, const float *src0,
-                                       const float *src1, int len);
-extern void ff_float_to_int16_vfp(int16_t *dst, const float *src, long len);
+void ff_vector_fmul_vfp(float *dst, const float *src, int len);
+void ff_vector_fmul_reverse_vfp(float *dst, const float *src0,
+                                const float *src1, int len);
+void ff_float_to_int16_vfp(int16_t *dst, const float *src, long len);
 
 void ff_float_init_arm_vfp(DSPContext* c, AVCodecContext *avctx)
 {
diff --git a/libavcodec/armv4l/mpegvideo_arm.c b/libavcodec/armv4l/mpegvideo_arm.c
index 1a11d7a0fbf0000adf1cb10608cc03083bf6936c..657fc03d5a6aab859b8506c4e09a61310fb1c48d 100644
--- a/libavcodec/armv4l/mpegvideo_arm.c
+++ b/libavcodec/armv4l/mpegvideo_arm.c
@@ -22,8 +22,8 @@
 #include "libavcodec/dsputil.h"
 #include "libavcodec/mpegvideo.h"
 
-extern void MPV_common_init_iwmmxt(MpegEncContext *s);
-extern void MPV_common_init_armv5te(MpegEncContext *s);
+void MPV_common_init_iwmmxt(MpegEncContext *s);
+void MPV_common_init_armv5te(MpegEncContext *s);
 
 void MPV_common_init_armv4l(MpegEncContext *s)
 {
diff --git a/libavcodec/armv4l/mpegvideo_armv5te.c b/libavcodec/armv4l/mpegvideo_armv5te.c
index 9e6c324f741beb7e54ed1efa532f90814fd2699b..b213cf1de3a31f0ad222d67b6f137fb136fc63ab 100644
--- a/libavcodec/armv4l/mpegvideo_armv5te.c
+++ b/libavcodec/armv4l/mpegvideo_armv5te.c
@@ -23,8 +23,7 @@
 #include "libavcodec/dsputil.h"
 #include "libavcodec/mpegvideo.h"
 
-extern void ff_dct_unquantize_h263_armv5te(DCTELEM *block, int qmul, int qadd,
-                                           int count);
+void ff_dct_unquantize_h263_armv5te(DCTELEM *block, int qmul, int qadd, int count);
 
 #ifdef ENABLE_ARM_TESTS
 /**
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
index 2afcce91dbe7c8eed99aa240376f73f652807ea4..1ee01c48664c5cdc045032692fa9387e9644e34c 100644
--- a/libavcodec/avcodec.h
+++ b/libavcodec/avcodec.h
@@ -2972,7 +2972,7 @@ int av_picture_crop(AVPicture *dst, const AVPicture *src,
 int av_picture_pad(AVPicture *dst, const AVPicture *src, int height, int width, int pix_fmt,
             int padtop, int padbottom, int padleft, int padright, int *color);
 
-extern unsigned int av_xiphlacing(unsigned char *s, unsigned int v);
+unsigned int av_xiphlacing(unsigned char *s, unsigned int v);
 
 /**
  * Parses \p str and put in \p width_ptr and \p height_ptr the detected values.
diff --git a/libavcodec/bfin/dsputil_bfin.c b/libavcodec/bfin/dsputil_bfin.c
index ccdb19cec6a3afa57fad75fde5352caf79a06336..1a8ae3b5055789c4aa26b9dc2ed540527d6ec8cb 100644
--- a/libavcodec/bfin/dsputil_bfin.c
+++ b/libavcodec/bfin/dsputil_bfin.c
@@ -29,35 +29,35 @@
 int off;
 
 
-extern void ff_bfin_idct (DCTELEM *block) attribute_l1_text;
-extern void ff_bfin_fdct (DCTELEM *block) attribute_l1_text;
-extern void ff_bfin_vp3_idct (DCTELEM *block);
-extern void ff_bfin_vp3_idct_put (uint8_t *dest, int line_size, DCTELEM *block);
-extern void ff_bfin_vp3_idct_add (uint8_t *dest, int line_size, DCTELEM *block);
-extern void ff_bfin_add_pixels_clamped (DCTELEM *block, uint8_t *dest, int line_size) attribute_l1_text;
-extern void ff_bfin_put_pixels_clamped (DCTELEM *block, uint8_t *dest, int line_size) attribute_l1_text;
-extern void ff_bfin_diff_pixels (DCTELEM *block, uint8_t *s1, uint8_t *s2, int stride)  attribute_l1_text;
-extern void ff_bfin_get_pixels  (DCTELEM *restrict block, const uint8_t *pixels, int line_size) attribute_l1_text;
-extern int  ff_bfin_pix_norm1  (uint8_t * pix, int line_size) attribute_l1_text;
-extern int  ff_bfin_z_sad8x8   (uint8_t *blk1, uint8_t *blk2, int dsz, int line_size, int h) attribute_l1_text;
-extern int  ff_bfin_z_sad16x16 (uint8_t *blk1, uint8_t *blk2, int dsz, int line_size, int h) attribute_l1_text;
-
-extern void ff_bfin_z_put_pixels16_xy2     (uint8_t *block, const uint8_t *s0, int dest_size, int line_size, int h) attribute_l1_text;
-extern void ff_bfin_z_put_pixels8_xy2      (uint8_t *block, const uint8_t *s0, int dest_size, int line_size, int h) attribute_l1_text;
-extern void ff_bfin_put_pixels16_xy2_nornd (uint8_t *block, const uint8_t *s0, int line_size, int h) attribute_l1_text;
-extern void ff_bfin_put_pixels8_xy2_nornd  (uint8_t *block, const uint8_t *s0, int line_size, int h) attribute_l1_text;
-
-
-extern int  ff_bfin_pix_sum (uint8_t *p, int stride) attribute_l1_text;
-
-extern void ff_bfin_put_pixels8uc        (uint8_t *block, const uint8_t *s0, const uint8_t *s1, int dest_size, int line_size, int h) attribute_l1_text;
-extern void ff_bfin_put_pixels16uc       (uint8_t *block, const uint8_t *s0, const uint8_t *s1, int dest_size, int line_size, int h) attribute_l1_text;
-extern void ff_bfin_put_pixels8uc_nornd  (uint8_t *block, const uint8_t *s0, const uint8_t *s1, int line_size, int h) attribute_l1_text;
-extern void ff_bfin_put_pixels16uc_nornd (uint8_t *block, const uint8_t *s0, const uint8_t *s1, int line_size, int h) attribute_l1_text;
-
-extern int ff_bfin_sse4  (void *v, uint8_t *pix1, uint8_t *pix2, int line_size, int h) attribute_l1_text;
-extern int ff_bfin_sse8  (void *v, uint8_t *pix1, uint8_t *pix2, int line_size, int h) attribute_l1_text;
-extern int ff_bfin_sse16 (void *v, uint8_t *pix1, uint8_t *pix2, int line_size, int h) attribute_l1_text;
+void ff_bfin_idct (DCTELEM *block) attribute_l1_text;
+void ff_bfin_fdct (DCTELEM *block) attribute_l1_text;
+void ff_bfin_vp3_idct (DCTELEM *block);
+void ff_bfin_vp3_idct_put (uint8_t *dest, int line_size, DCTELEM *block);
+void ff_bfin_vp3_idct_add (uint8_t *dest, int line_size, DCTELEM *block);
+void ff_bfin_add_pixels_clamped (DCTELEM *block, uint8_t *dest, int line_size) attribute_l1_text;
+void ff_bfin_put_pixels_clamped (DCTELEM *block, uint8_t *dest, int line_size) attribute_l1_text;
+void ff_bfin_diff_pixels (DCTELEM *block, uint8_t *s1, uint8_t *s2, int stride)  attribute_l1_text;
+void ff_bfin_get_pixels  (DCTELEM *restrict block, const uint8_t *pixels, int line_size) attribute_l1_text;
+int  ff_bfin_pix_norm1  (uint8_t * pix, int line_size) attribute_l1_text;
+int  ff_bfin_z_sad8x8   (uint8_t *blk1, uint8_t *blk2, int dsz, int line_size, int h) attribute_l1_text;
+int  ff_bfin_z_sad16x16 (uint8_t *blk1, uint8_t *blk2, int dsz, int line_size, int h) attribute_l1_text;
+
+void ff_bfin_z_put_pixels16_xy2     (uint8_t *block, const uint8_t *s0, int dest_size, int line_size, int h) attribute_l1_text;
+void ff_bfin_z_put_pixels8_xy2      (uint8_t *block, const uint8_t *s0, int dest_size, int line_size, int h) attribute_l1_text;
+void ff_bfin_put_pixels16_xy2_nornd (uint8_t *block, const uint8_t *s0, int line_size, int h) attribute_l1_text;
+void ff_bfin_put_pixels8_xy2_nornd  (uint8_t *block, const uint8_t *s0, int line_size, int h) attribute_l1_text;
+
+
+int  ff_bfin_pix_sum (uint8_t *p, int stride) attribute_l1_text;
+
+void ff_bfin_put_pixels8uc        (uint8_t *block, const uint8_t *s0, const uint8_t *s1, int dest_size, int line_size, int h) attribute_l1_text;
+void ff_bfin_put_pixels16uc       (uint8_t *block, const uint8_t *s0, const uint8_t *s1, int dest_size, int line_size, int h) attribute_l1_text;
+void ff_bfin_put_pixels8uc_nornd  (uint8_t *block, const uint8_t *s0, const uint8_t *s1, int line_size, int h) attribute_l1_text;
+void ff_bfin_put_pixels16uc_nornd (uint8_t *block, const uint8_t *s0, const uint8_t *s1, int line_size, int h) attribute_l1_text;
+
+int ff_bfin_sse4  (void *v, uint8_t *pix1, uint8_t *pix2, int line_size, int h) attribute_l1_text;
+int ff_bfin_sse8  (void *v, uint8_t *pix1, uint8_t *pix2, int line_size, int h) attribute_l1_text;
+int ff_bfin_sse16 (void *v, uint8_t *pix1, uint8_t *pix2, int line_size, int h) attribute_l1_text;
 
 
 static void bfin_idct_add (uint8_t *dest, int line_size, DCTELEM *block)
diff --git a/libavcodec/bfin/mpegvideo_bfin.c b/libavcodec/bfin/mpegvideo_bfin.c
index 05743e7f5023d5fd63c7c39e0fdbbc1b9fda1279..d1c33a10ace25b49d99e722f99a26c06a3ca9de6 100644
--- a/libavcodec/bfin/mpegvideo_bfin.c
+++ b/libavcodec/bfin/mpegvideo_bfin.c
@@ -26,7 +26,7 @@
 #include "dsputil_bfin.h"
 
 
-extern void ff_bfin_fdct (DCTELEM *block) attribute_l1_text;
+void ff_bfin_fdct (DCTELEM *block) attribute_l1_text;
 
 
 static int dct_quantize_bfin (MpegEncContext *s,
diff --git a/libavcodec/bfin/vp3_bfin.c b/libavcodec/bfin/vp3_bfin.c
index 62990f65b1e4b7488c7714af356d7bb252cd6cbc..190645352341b3b304ca991a7b808c98bfd4b7f3 100644
--- a/libavcodec/bfin/vp3_bfin.c
+++ b/libavcodec/bfin/vp3_bfin.c
@@ -22,10 +22,10 @@
 #include "libavcodec/dsputil.h"
 #include "dsputil_bfin.h"
 
-extern void ff_bfin_vp3_idct (DCTELEM *block) attribute_l1_text;
-extern void ff_bfin_idct (DCTELEM *block) attribute_l1_text;
-extern void ff_bfin_add_pixels_clamped (DCTELEM *block, uint8_t *dest, int line_size) attribute_l1_text;
-extern void ff_bfin_put_pixels_clamped (DCTELEM *block, uint8_t *dest, int line_size) attribute_l1_text;
+void ff_bfin_vp3_idct (DCTELEM *block) attribute_l1_text;
+void ff_bfin_idct (DCTELEM *block) attribute_l1_text;
+void ff_bfin_add_pixels_clamped (DCTELEM *block, uint8_t *dest, int line_size) attribute_l1_text;
+void ff_bfin_put_pixels_clamped (DCTELEM *block, uint8_t *dest, int line_size) attribute_l1_text;
 
 /* Intra iDCT offset 128 */
 void ff_bfin_vp3_idct_put (uint8_t *dest, int line_size, DCTELEM *block)
diff --git a/libavcodec/celp_math.h b/libavcodec/celp_math.h
index ce0726fba114efbc6ea4336b16bc0ac8f3219edf..96f4158a4e93c6e9c0ac2e9f3ce6bfc53aeaa5be 100644
--- a/libavcodec/celp_math.h
+++ b/libavcodec/celp_math.h
@@ -91,6 +91,6 @@ static inline int bidir_sal(int value, int offset)
  *
  * @return dot product = sum of elementwise products
  */
-extern float ff_dot_productf(const float* a, const float* b, int length);
+float ff_dot_productf(const float* a, const float* b, int length);
 
 #endif /* AVCODEC_CELP_MATH_H */
diff --git a/libavcodec/dct-test.c b/libavcodec/dct-test.c
index e00569c50cf0c1b4b5953093f33cc269fe002231..bc7b34ba6a993478be7bac30350db08e29850afd 100644
--- a/libavcodec/dct-test.c
+++ b/libavcodec/dct-test.c
@@ -46,22 +46,22 @@
 void *fast_memcpy(void *a, const void *b, size_t c){return memcpy(a,b,c);};
 
 /* reference fdct/idct */
-extern void fdct(DCTELEM *block);
-extern void idct(DCTELEM *block);
-extern void init_fdct();
+void fdct(DCTELEM *block);
+void idct(DCTELEM *block);
+void init_fdct();
 
-extern void ff_mmx_idct(DCTELEM *data);
-extern void ff_mmxext_idct(DCTELEM *data);
+void ff_mmx_idct(DCTELEM *data);
+void ff_mmxext_idct(DCTELEM *data);
 
-extern void odivx_idct_c (short *block);
+void odivx_idct_c(short *block);
 
 // BFIN
-extern void ff_bfin_idct (DCTELEM *block)  ;
-extern void ff_bfin_fdct (DCTELEM *block) ;
+void ff_bfin_idct(DCTELEM *block);
+void ff_bfin_fdct(DCTELEM *block);
 
 // ALTIVEC
-extern void fdct_altivec (DCTELEM *block);
-//extern void idct_altivec (DCTELEM *block);?? no routine
+void fdct_altivec(DCTELEM *block);
+//void idct_altivec(DCTELEM *block);?? no routine
 
 
 struct algo {
diff --git a/libavcodec/i386/dsputil_mmx.c b/libavcodec/i386/dsputil_mmx.c
index 161afab16b277c925c947dfcc934e10d896e031e..28e0e83bbd0b62e5ecb82bfc9bdd20278ab421c4 100644
--- a/libavcodec/i386/dsputil_mmx.c
+++ b/libavcodec/i386/dsputil_mmx.c
@@ -2403,14 +2403,14 @@ static void float_to_int16_interleave_3dn2(int16_t *dst, const float **src, long
 }
 
 
-extern void ff_snow_horizontal_compose97i_sse2(IDWTELEM *b, int width);
-extern void ff_snow_horizontal_compose97i_mmx(IDWTELEM *b, int width);
-extern void ff_snow_vertical_compose97i_sse2(IDWTELEM *b0, IDWTELEM *b1, IDWTELEM *b2, IDWTELEM *b3, IDWTELEM *b4, IDWTELEM *b5, int width);
-extern void ff_snow_vertical_compose97i_mmx(IDWTELEM *b0, IDWTELEM *b1, IDWTELEM *b2, IDWTELEM *b3, IDWTELEM *b4, IDWTELEM *b5, int width);
-extern void ff_snow_inner_add_yblock_sse2(const uint8_t *obmc, const int obmc_stride, uint8_t * * block, int b_w, int b_h,
-                           int src_x, int src_y, int src_stride, slice_buffer * sb, int add, uint8_t * dst8);
-extern void ff_snow_inner_add_yblock_mmx(const uint8_t *obmc, const int obmc_stride, uint8_t * * block, int b_w, int b_h,
-                          int src_x, int src_y, int src_stride, slice_buffer * sb, int add, uint8_t * dst8);
+void ff_snow_horizontal_compose97i_sse2(IDWTELEM *b, int width);
+void ff_snow_horizontal_compose97i_mmx(IDWTELEM *b, int width);
+void ff_snow_vertical_compose97i_sse2(IDWTELEM *b0, IDWTELEM *b1, IDWTELEM *b2, IDWTELEM *b3, IDWTELEM *b4, IDWTELEM *b5, int width);
+void ff_snow_vertical_compose97i_mmx(IDWTELEM *b0, IDWTELEM *b1, IDWTELEM *b2, IDWTELEM *b3, IDWTELEM *b4, IDWTELEM *b5, int width);
+void ff_snow_inner_add_yblock_sse2(const uint8_t *obmc, const int obmc_stride, uint8_t * * block, int b_w, int b_h,
+                                   int src_x, int src_y, int src_stride, slice_buffer * sb, int add, uint8_t * dst8);
+void ff_snow_inner_add_yblock_mmx(const uint8_t *obmc, const int obmc_stride, uint8_t * * block, int b_w, int b_h,
+                                  int src_x, int src_y, int src_stride, slice_buffer * sb, int add, uint8_t * dst8);
 
 
 static void add_int16_sse2(int16_t * v1, int16_t * v2, int order)
diff --git a/libavcodec/libxvidff.c b/libavcodec/libxvidff.c
index 36f27c7eed30c1102907fb9cfec21165cecf753f..3ab1374f444eae92bd6b6a9055b52ae272bfb070 100644
--- a/libavcodec/libxvidff.c
+++ b/libavcodec/libxvidff.c
@@ -38,7 +38,7 @@
 #define BUFFER_CAT(x)               (&((x)[strlen(x)]))
 
 /* For PPC Use */
-extern int has_altivec(void);
+int has_altivec(void);
 
 /**
  * Structure for the private Xvid context.
diff --git a/libavcodec/mpc.h b/libavcodec/mpc.h
index 304013554a4eaa7884ce14886d9b8d5e4335bca6..038c34f20aa32635874842820c3f7734af4c7990 100644
--- a/libavcodec/mpc.h
+++ b/libavcodec/mpc.h
@@ -74,7 +74,7 @@ typedef struct {
     DECLARE_ALIGNED_16(int32_t, sb_samples[MPA_MAX_CHANNELS][36][SBLIMIT]);
 } MPCContext;
 
-extern void ff_mpc_init();
-extern void ff_mpc_dequantize_and_synth(MPCContext *c, int maxband, void *dst);
+void ff_mpc_init();
+void ff_mpc_dequantize_and_synth(MPCContext *c, int maxband, void *dst);
 
 #endif /* AVCODEC_MPC_H */
diff --git a/libavcodec/mpeg12.c b/libavcodec/mpeg12.c
index 8b6a93ed26f236890b031f422b92095dc7a9c3e4..3122bb191cf466dc3de56cf59e183212cd451c27 100644
--- a/libavcodec/mpeg12.c
+++ b/libavcodec/mpeg12.c
@@ -63,10 +63,10 @@ static inline int mpeg2_fast_decode_block_intra(MpegEncContext *s, DCTELEM *bloc
 static int mpeg_decode_motion(MpegEncContext *s, int fcode, int pred);
 static void exchange_uv(MpegEncContext *s);
 
-extern int XVMC_field_start(MpegEncContext *s, AVCodecContext *avctx);
-extern int XVMC_field_end(MpegEncContext *s);
-extern void XVMC_pack_pblocks(MpegEncContext *s,int cbp);
-extern void XVMC_init_block(MpegEncContext *s);//set s->block
+int XVMC_field_start(MpegEncContext *s, AVCodecContext *avctx);
+int XVMC_field_end(MpegEncContext *s);
+void XVMC_pack_pblocks(MpegEncContext *s,int cbp);
+void XVMC_init_block(MpegEncContext *s);//set s->block
 
 static const enum PixelFormat pixfmt_xvmc_mpg2_420[] = {
                                            PIX_FMT_XVMC_MPEG2_IDCT,
diff --git a/libavcodec/mpegvideo.c b/libavcodec/mpegvideo.c
index ddc4d091aa85c09161ccba8ade0c38eb9dd8e459..9b2f34c13f366412e2332f122b3bb60dd35d5ce3 100644
--- a/libavcodec/mpegvideo.c
+++ b/libavcodec/mpegvideo.c
@@ -54,9 +54,9 @@ static void dct_unquantize_h263_intra_c(MpegEncContext *s,
 static void dct_unquantize_h263_inter_c(MpegEncContext *s,
                                   DCTELEM *block, int n, int qscale);
 
-extern int  XVMC_field_start(MpegEncContext*s, AVCodecContext *avctx);
-extern void XVMC_field_end(MpegEncContext *s);
-extern void XVMC_decode_mb(MpegEncContext *s);
+int  XVMC_field_start(MpegEncContext*s, AVCodecContext *avctx);
+void XVMC_field_end(MpegEncContext *s);
+void XVMC_decode_mb(MpegEncContext *s);
 
 
 /* enable all paranoid tests for rounding, overflows, etc... */
diff --git a/libavcodec/png.h b/libavcodec/png.h
index 0fde3f41d6bf55265477ede55c395729b025ec88..17b1466fa87a295a82207f0dca5ccc72e439525e 100644
--- a/libavcodec/png.h
+++ b/libavcodec/png.h
@@ -64,14 +64,13 @@ extern const uint8_t ff_png_pass_xshift[NB_PASSES];
 /* Mask to determine which pixels are valid in a pass */
 extern const uint8_t ff_png_pass_mask[NB_PASSES];
 
-extern void *ff_png_zalloc(void *opaque, unsigned int items,
-                           unsigned int size);
+void *ff_png_zalloc(void *opaque, unsigned int items, unsigned int size);
 
-extern void ff_png_zfree(void *opaque, void *ptr);
+void ff_png_zfree(void *opaque, void *ptr);
 
-extern int ff_png_get_nb_channels(int color_type);
+int ff_png_get_nb_channels(int color_type);
 
 /* compute the row size of an interleaved pass */
-extern int ff_png_pass_row_size(int pass, int bits_per_pixel, int width);
+int ff_png_pass_row_size(int pass, int bits_per_pixel, int width);
 
 #endif /* AVCODEC_PNG_H */
diff --git a/libavcodec/ppc/dsputil_altivec.h b/libavcodec/ppc/dsputil_altivec.h
index 63f817a215847783c2b3238e6c6c31286d97583f..03ff0b9fc8f09105f11a638cc53a9ebb120178b9 100644
--- a/libavcodec/ppc/dsputil_altivec.h
+++ b/libavcodec/ppc/dsputil_altivec.h
@@ -25,7 +25,7 @@
 
 #include <stdint.h>
 
-extern int has_altivec(void);
+int has_altivec(void);
 
 void put_pixels16_altivec(uint8_t *block, const uint8_t *pixels, int line_size, int h);
 
diff --git a/libavcodec/ppc/dsputil_ppc.c b/libavcodec/ppc/dsputil_ppc.c
index 443e1db3c06f1c949fd6cea8f97e96d54cf4f5c5..124453ef9b4e21886022c0d257379c2b5b6df626 100644
--- a/libavcodec/ppc/dsputil_ppc.c
+++ b/libavcodec/ppc/dsputil_ppc.c
@@ -27,11 +27,11 @@
 #ifdef HAVE_ALTIVEC
 #include "dsputil_altivec.h"
 
-extern void fdct_altivec(int16_t *block);
-extern void gmc1_altivec(uint8_t *dst, uint8_t *src, int stride, int h,
-                         int x16, int y16, int rounder);
-extern void idct_put_altivec(uint8_t *dest, int line_size, int16_t *block);
-extern void idct_add_altivec(uint8_t *dest, int line_size, int16_t *block);
+void fdct_altivec(int16_t *block);
+void gmc1_altivec(uint8_t *dst, uint8_t *src, int stride, int h,
+                  int x16, int y16, int rounder);
+void idct_put_altivec(uint8_t *dest, int line_size, int16_t *block);
+void idct_add_altivec(uint8_t *dest, int line_size, int16_t *block);
 
 void dsputil_h264_init_ppc(DSPContext* c, AVCodecContext *avctx);
 
diff --git a/libavcodec/ppc/mpegvideo_altivec.c b/libavcodec/ppc/mpegvideo_altivec.c
index ba1719f45e994f74e48f8a40053cfbd178fd77d3..28ada7a316f4181f4d745775b57af23a5a70b51f 100644
--- a/libavcodec/ppc/mpegvideo_altivec.c
+++ b/libavcodec/ppc/mpegvideo_altivec.c
@@ -585,8 +585,8 @@ POWERPC_PERF_STOP_COUNT(altivec_dct_unquantize_h263_num, nCoeffs == 63);
 }
 
 
-extern void idct_put_altivec(uint8_t *dest, int line_size, int16_t *block);
-extern void idct_add_altivec(uint8_t *dest, int line_size, int16_t *block);
+void idct_put_altivec(uint8_t *dest, int line_size, int16_t *block);
+void idct_add_altivec(uint8_t *dest, int line_size, int16_t *block);
 
 void MPV_common_init_altivec(MpegEncContext *s)
 {
diff --git a/libavcodec/sh4/dsputil_sh4.c b/libavcodec/sh4/dsputil_sh4.c
index c8d0eae9314c4f44652f414acbadd3449319283f..2c86a7aa48e7bf8d26320bf406af307cbc9dff4d 100644
--- a/libavcodec/sh4/dsputil_sh4.c
+++ b/libavcodec/sh4/dsputil_sh4.c
@@ -51,7 +51,7 @@ static void clear_blocks_sh4(DCTELEM *blocks)
         memzero_align8(blocks,sizeof(DCTELEM)*6*64);
 }
 
-extern void idct_sh4(DCTELEM *block);
+void idct_sh4(DCTELEM *block);
 static void idct_put(uint8_t *dest, int line_size, DCTELEM *block)
 {
         int i;
@@ -89,7 +89,7 @@ static void idct_add(uint8_t *dest, int line_size, DCTELEM *block)
         }
 }
 
-extern void dsputil_init_align(DSPContext* c, AVCodecContext *avctx);
+void dsputil_init_align(DSPContext* c, AVCodecContext *avctx);
 
 void dsputil_init_sh4(DSPContext* c, AVCodecContext *avctx)
 {
diff --git a/libavcodec/snow.h b/libavcodec/snow.h
index 67dbbd80c02067cac8ce9b84256a26e2f21c95f7..b208e5fe6a5764c7e9f643606f8a55047f468f0f 100644
--- a/libavcodec/snow.h
+++ b/libavcodec/snow.h
@@ -121,9 +121,9 @@ struct slice_buffer_s {
 #define W_DS 9
 #endif
 
-extern void ff_snow_vertical_compose97i(IDWTELEM *b0, IDWTELEM *b1, IDWTELEM *b2, IDWTELEM *b3, IDWTELEM *b4, IDWTELEM *b5, int width);
-extern void ff_snow_horizontal_compose97i(IDWTELEM *b, int width);
-extern void ff_snow_inner_add_yblock(const uint8_t *obmc, const int obmc_stride, uint8_t * * block, int b_w, int b_h, int src_x, int src_y, int src_stride, slice_buffer * sb, int add, uint8_t * dst8);
+void ff_snow_vertical_compose97i(IDWTELEM *b0, IDWTELEM *b1, IDWTELEM *b2, IDWTELEM *b3, IDWTELEM *b4, IDWTELEM *b5, int width);
+void ff_snow_horizontal_compose97i(IDWTELEM *b, int width);
+void ff_snow_inner_add_yblock(const uint8_t *obmc, const int obmc_stride, uint8_t * * block, int b_w, int b_h, int src_x, int src_y, int src_stride, slice_buffer * sb, int add, uint8_t * dst8);
 
 #ifdef CONFIG_SNOW_ENCODER
 int w53_32_c(void *v, uint8_t * pix1, uint8_t * pix2, int line_size, int h);
diff --git a/libavcodec/sparc/dsputil_vis.c b/libavcodec/sparc/dsputil_vis.c
index a01eea31bbe66251fb3bac041a73326a2c4b6526..0779395986667a9251e3b589003eb8eca3228fae 100644
--- a/libavcodec/sparc/dsputil_vis.c
+++ b/libavcodec/sparc/dsputil_vis.c
@@ -31,9 +31,9 @@
 
 #include "vis.h"
 
-extern void ff_simple_idct_put_vis(uint8_t *dest, int line_size, DCTELEM *data);
-extern void ff_simple_idct_add_vis(uint8_t *dest, int line_size, DCTELEM *data);
-extern void ff_simple_idct_vis(DCTELEM *data);
+void ff_simple_idct_put_vis(uint8_t *dest, int line_size, DCTELEM *data);
+void ff_simple_idct_add_vis(uint8_t *dest, int line_size, DCTELEM *data);
+void ff_simple_idct_vis(DCTELEM *data);
 
 /* The trick used in some of this file is the formula from the MMX
  * motion comp code, which is:
diff --git a/libavformat/asf.c b/libavformat/asf.c
index 0faa46fae88d233379518b33721fece7ec6cc305..695cfeca75e51336e0e49163123fef853794c4f1 100644
--- a/libavformat/asf.c
+++ b/libavformat/asf.c
@@ -26,7 +26,7 @@
 #include "asf.h"
 #include "asfcrypt.h"
 
-extern void ff_mms_set_stream_selection(URLContext *h, AVFormatContext *format);
+void ff_mms_set_stream_selection(URLContext *h, AVFormatContext *format);
 
 #undef NDEBUG
 #include <assert.h>
diff --git a/libavformat/framehook.h b/libavformat/framehook.h
index 9dc144b0d45d1f08573868335e4783cc47fe735b..0bad6067ac523d7856f4f48aaed8dcfd9fa1a41e 100644
--- a/libavformat/framehook.h
+++ b/libavformat/framehook.h
@@ -45,8 +45,8 @@ typedef void (FrameHookRelease)(void *ctx);
 typedef FrameHookRelease *FrameHookReleaseFn;
 extern FrameHookRelease Release;
 
-extern int frame_hook_add(int argc, char *argv[]);
-extern void frame_hook_process(struct AVPicture *pict, enum PixelFormat pix_fmt, int width, int height, int64_t pts);
-extern void frame_hook_release(void);
+int frame_hook_add(int argc, char *argv[]);
+void frame_hook_process(struct AVPicture *pict, enum PixelFormat pix_fmt, int width, int height, int64_t pts);
+void frame_hook_release(void);
 
 #endif /* AVFORMAT_FRAMEHOOK_H */
diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c
index 48aca43d4650816542a7c53615dd04f486bf0d9c..f1212853ba29065e37a83f431c2803fc8de8efbc 100644
--- a/libavformat/mpegts.c
+++ b/libavformat/mpegts.c
@@ -38,8 +38,8 @@ typedef struct PESContext PESContext;
 
 static PESContext* add_pes_stream(MpegTSContext *ts, int pid, int pcr_pid, int stream_type);
 static AVStream* new_pes_av_stream(PESContext *pes, uint32_t code);
-extern void av_set_program_name(AVProgram *program, char *provider_name, char *name);
-extern void av_program_add_stream_index(AVFormatContext *ac, int progid, unsigned int idx);
+void av_set_program_name(AVProgram *program, char *provider_name, char *name);
+void av_program_add_stream_index(AVFormatContext *ac, int progid, unsigned int idx);
 
 enum MpegTSFilterType {
     MPEGTS_PES,
diff --git a/libavformat/oggdec.h b/libavformat/oggdec.h
index 1a73fe0bcbbd7be61a4c17fdf121a43572018491..d238e99a4b047d9becd76f91c205b3a3672943a7 100644
--- a/libavformat/oggdec.h
+++ b/libavformat/oggdec.h
@@ -85,6 +85,6 @@ extern const struct ogg_codec ff_speex_codec;
 extern const struct ogg_codec ff_theora_codec;
 extern const struct ogg_codec ff_vorbis_codec;
 
-extern int vorbis_comment(AVFormatContext *ms, uint8_t *buf, int size);
+int vorbis_comment(AVFormatContext *ms, uint8_t *buf, int size);
 
 #endif /* AVFORMAT_OGGDEC_H */
diff --git a/libavformat/oggparsevorbis.c b/libavformat/oggparsevorbis.c
index 1f0bcfe89cffb0886b7997665b9b140523cf1ddf..a1eb20dea21c40bc969617ceaaf414e1ae364e1b 100644
--- a/libavformat/oggparsevorbis.c
+++ b/libavformat/oggparsevorbis.c
@@ -30,7 +30,7 @@
 #include "avformat.h"
 #include "oggdec.h"
 
-extern int
+int
 vorbis_comment(AVFormatContext * as, uint8_t *buf, int size)
 {
     const uint8_t *p = buf;
diff --git a/libavformat/os_support.h b/libavformat/os_support.h
index 2fd3112b7e3735b3b9fd037115ab5578f86bb301..0b6a292d6d4ef36c899af6c537a1aea50be8a9fc 100644
--- a/libavformat/os_support.h
+++ b/libavformat/os_support.h
@@ -93,7 +93,7 @@ struct pollfd {
 #define POLLNVAL   0x1000  /* invalid file descriptor */
 
 
-extern int poll(struct pollfd *fds, nfds_t numfds, int timeout);
+int poll(struct pollfd *fds, nfds_t numfds, int timeout);
 #endif /* HAVE_POLL_H */
 #endif /* CONFIG_FFSERVER */
 #endif /* CONFIG_NETWORK */