diff --git a/libavcodec/ac3dec.h b/libavcodec/ac3dec.h
index cc44a0300adf817bab68b5989ff745cf9369377f..78869b5e26e40d51746d916299f1790ce6a420a4 100644
--- a/libavcodec/ac3dec.h
+++ b/libavcodec/ac3dec.h
@@ -179,4 +179,7 @@ int ff_eac3_parse_header(AC3DecodeContext *s);
  */
 void ff_eac3_decode_transform_coeffs_aht_ch(AC3DecodeContext *s, int ch);
 
+void ff_ac3_downmix_c(float (*samples)[256], float (*matrix)[2],
+                      int out_ch, int in_ch, int len);
+
 #endif /* AVCODEC_AC3DEC_H */
diff --git a/libavcodec/dsputil.c b/libavcodec/dsputil.c
index 1670c23684055754552b4dca9092dd34e85dbf12..9709d4aab05de36532ae5c84b718b4e8641c1b20 100644
--- a/libavcodec/dsputil.c
+++ b/libavcodec/dsputil.c
@@ -36,22 +36,14 @@
 #include "snow.h"
 #include "mpegvideo.h"
 #include "config.h"
+#include "lpc.h"
+#include "ac3dec.h"
+#include "vorbis.h"
+#include "png.h"
 
 /* snow.c */
 void ff_spatial_dwt(int *buffer, int width, int height, int stride, int type, int decomposition_count);
 
-/* vorbis.c */
-void vorbis_inverse_coupling(float *mag, float *ang, int blocksize);
-
-/* ac3dec.c */
-void ff_ac3_downmix_c(float (*samples)[256], float (*matrix)[2], int out_ch, int in_ch, int len);
-
-/* lpc.c */
-void ff_lpc_compute_autocorr(const int32_t *data, int len, int lag, double *autoc);
-
-/* pngdec.c */
-void ff_add_png_paeth_prediction(uint8_t *dst, uint8_t *src, uint8_t *top, int w, int bpp);
-
 /* eaidct.c */
 void ff_ea_idct_put_c(uint8_t *dest, int linesize, DCTELEM *block);
 
diff --git a/libavcodec/lpc.h b/libavcodec/lpc.h
index 05a1deea67656a61e84fa0aef91ec2fe234c28c0..d3754f04d284153a4d4cc7f367e168458e50b527 100644
--- a/libavcodec/lpc.h
+++ b/libavcodec/lpc.h
@@ -45,6 +45,9 @@ int ff_lpc_calc_coefs(DSPContext *s,
                       int32_t coefs[][MAX_LPC_ORDER], int *shift, int use_lpc,
                       int omethod, int max_shift, int zero_shift);
 
+void ff_lpc_compute_autocorr(const int32_t *data, int len, int lag,
+                             double *autoc);
+
 #ifdef LPC_USE_DOUBLE
 #define LPC_TYPE double
 #else
diff --git a/libavcodec/png.h b/libavcodec/png.h
index 97e81f5628a2f297177e44369ad882dd20ed442b..7c0ab9f6c6055bbf2838ce8655670d73525dd6f1 100644
--- a/libavcodec/png.h
+++ b/libavcodec/png.h
@@ -73,4 +73,6 @@ int ff_png_get_nb_channels(int color_type);
 /* compute the row size of an interleaved pass */
 int ff_png_pass_row_size(int pass, int bits_per_pixel, int width);
 
+void ff_add_png_paeth_prediction(uint8_t *dst, uint8_t *src, uint8_t *top, int w, int bpp);
+
 #endif /* AVCODEC_PNG_H */
diff --git a/libavcodec/vorbis.h b/libavcodec/vorbis.h
index 03d448a640ab2263c9eef4719d0279f066b15a05..ce9bead425b1bcb823beb542424c462ae2f1fd2a 100644
--- a/libavcodec/vorbis.h
+++ b/libavcodec/vorbis.h
@@ -41,6 +41,7 @@ int ff_vorbis_len2vlc(uint8_t *bits, uint32_t *codes, uint_fast32_t num);
 void ff_vorbis_floor1_render_list(vorbis_floor1_entry * list, int values,
                                   uint_fast16_t * y_list, int * flag,
                                   int multiplier, float * out, int samples);
+void vorbis_inverse_coupling(float *mag, float *ang, int blocksize);
 
 #define ilog(i) av_log2(2*(i))