diff --git a/libavcodec/dct-test.c b/libavcodec/dct-test.c
index 8a601dff7512dedd709c51baadf1885d1d44da7a..b278869f436550311c8b10561b56633e7daa2e59 100644
--- a/libavcodec/dct-test.c
+++ b/libavcodec/dct-test.c
@@ -47,6 +47,7 @@
 #include "faanidct.h"
 #include "x86/fdct.h"
 #include "x86/idct_xvid.h"
+#include "x86/simple_idct.h"
 #include "dctref.h"
 
 // ALTIVEC
diff --git a/libavcodec/simple_idct.h b/libavcodec/simple_idct.h
index e25729085e39800f9d01b9e1e623fced4e521a4c..7f14aae5d05d428a8bb43861550acd7cd09f5095 100644
--- a/libavcodec/simple_idct.h
+++ b/libavcodec/simple_idct.h
@@ -44,10 +44,6 @@ void ff_simple_idct_10(int16_t *block);
  */
 void ff_prores_idct(int16_t *block, const int16_t *qmat);
 
-void ff_simple_idct_mmx(int16_t *block);
-void ff_simple_idct_add_mmx(uint8_t *dest, int line_size, int16_t *block);
-void ff_simple_idct_put_mmx(uint8_t *dest, int line_size, int16_t *block);
-
 void ff_simple_idct248_put(uint8_t *dest, int line_size, int16_t *block);
 
 void ff_simple_idct84_add(uint8_t *dest, int line_size, int16_t *block);
diff --git a/libavcodec/x86/idctdsp_init.c b/libavcodec/x86/idctdsp_init.c
index 40ed0ac5fc5b8cb69fd76e69b8443e08a3980df3..f0511f5115eb1fa8b0a9d53f5ab58366ab08359a 100644
--- a/libavcodec/x86/idctdsp_init.c
+++ b/libavcodec/x86/idctdsp_init.c
@@ -22,9 +22,9 @@
 #include "libavutil/x86/cpu.h"
 #include "libavcodec/avcodec.h"
 #include "libavcodec/idctdsp.h"
-#include "libavcodec/simple_idct.h"
 #include "idct_xvid.h"
 #include "idctdsp.h"
+#include "simple_idct.h"
 
 /* Input permutation for the simple_idct_mmx */
 static const uint8_t simple_mmx_permutation[64] = {
diff --git a/libavcodec/x86/simple_idct.c b/libavcodec/x86/simple_idct.c
index bbe5a6747274e8b8856dfa45e6752ba22315a255..1002a782c0fa43a33482a98aa4d3f9bdaa7b37e9 100644
--- a/libavcodec/x86/simple_idct.c
+++ b/libavcodec/x86/simple_idct.c
@@ -19,11 +19,12 @@
  * License along with Libav; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
-#include "libavcodec/simple_idct.h"
+
 #include "libavutil/internal.h"
 #include "libavutil/mem.h"
 #include "libavutil/x86/asm.h"
 #include "idctdsp.h"
+#include "simple_idct.h"
 
 #if HAVE_INLINE_ASM
 
diff --git a/libavcodec/x86/simple_idct.h b/libavcodec/x86/simple_idct.h
new file mode 100644
index 0000000000000000000000000000000000000000..4fc29141b5d21b4ad8bf48fb8c3eaa47182f24dc
--- /dev/null
+++ b/libavcodec/x86/simple_idct.h
@@ -0,0 +1,28 @@
+/*
+ * This file is part of Libav.
+ *
+ * Libav is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * Libav is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with Libav; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifndef AVCODEC_X86_SIMPLE_IDCT_H
+#define AVCODEC_X86_SIMPLE_IDCT_H
+
+#include <stdint.h>
+
+void ff_simple_idct_mmx(int16_t *block);
+void ff_simple_idct_add_mmx(uint8_t *dest, int line_size, int16_t *block);
+void ff_simple_idct_put_mmx(uint8_t *dest, int line_size, int16_t *block);
+
+#endif /* AVCODEC_X86_SIMPLE_IDCT_H */