diff --git a/libavformat/Makefile b/libavformat/Makefile
index 257c0466d30636adfe1108fe568c11e75dbdf8d9..fd2ac2a29f105d9664d2e76309e5f46d55b6fd69 100644
--- a/libavformat/Makefile
+++ b/libavformat/Makefile
@@ -25,7 +25,7 @@ OBJS-$(CONFIG_AU_MUXER)                  += au.o riff.o
 OBJS-$(CONFIG_AVI_DEMUXER)               += avidec.o riff.o
 OBJS-$(CONFIG_AVI_MUXER)                 += avienc.o riff.o
 OBJS-$(CONFIG_AVISYNTH)                  += avisynth.o
-OBJS-$(CONFIG_AVS_DEMUXER)               += avs.o vocdec.o riff.o
+OBJS-$(CONFIG_AVS_DEMUXER)               += avs.o vocdec.o voc.o riff.o
 OBJS-$(CONFIG_CRC_MUXER)                 += crc.o
 OBJS-$(CONFIG_FRAMECRC_MUXER)            += crc.o
 OBJS-$(CONFIG_DAUD_DEMUXER)              += daud.o
@@ -115,8 +115,8 @@ OBJS-$(CONFIG_SWF_DEMUXER)               += swf.o
 OBJS-$(CONFIG_SWF_MUXER)                 += swf.o
 OBJS-$(CONFIG_TIERTEXSEQ_DEMUXER)        += tiertexseq.o
 OBJS-$(CONFIG_TTA_DEMUXER)               += tta.o
-OBJS-$(CONFIG_VOC_DEMUXER)               += vocdec.o riff.o
-OBJS-$(CONFIG_VOC_MUXER)                 += vocenc.o riff.o
+OBJS-$(CONFIG_VOC_DEMUXER)               += vocdec.o voc.o riff.o
+OBJS-$(CONFIG_VOC_MUXER)                 += vocenc.o voc.o riff.o
 OBJS-$(CONFIG_WAV_DEMUXER)               += wav.o riff.o
 OBJS-$(CONFIG_WAV_MUXER)                 += wav.o riff.o
 OBJS-$(CONFIG_WC3_DEMUXER)               += wc3movie.o
diff --git a/libavformat/voc.c b/libavformat/voc.c
new file mode 100644
index 0000000000000000000000000000000000000000..329f07739cdfde9b78d1bbff7b6b97c174e8a3f8
--- /dev/null
+++ b/libavformat/voc.c
@@ -0,0 +1,36 @@
+/*
+ * Creative Voice File common data.
+ * Copyright (c) 2006  Aurelien Jacobs <aurel@gnuage.org>
+ *
+ * This file is part of FFmpeg.
+ *
+ * FFmpeg 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.
+ *
+ * FFmpeg 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 FFmpeg; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ */
+
+#include "voc.h"
+
+const unsigned char voc_magic[21] = "Creative Voice File\x1A";
+
+const CodecTag voc_codec_tags[] = {
+    {CODEC_ID_PCM_U8,        0x00},
+    {CODEC_ID_ADPCM_SBPRO_4, 0x01},
+    {CODEC_ID_ADPCM_SBPRO_3, 0x02},
+    {CODEC_ID_ADPCM_SBPRO_2, 0x03},
+    {CODEC_ID_PCM_S16LE,     0x04},
+    {CODEC_ID_PCM_ALAW,      0x06},
+    {CODEC_ID_PCM_MULAW,     0x07},
+    {CODEC_ID_ADPCM_CT,    0x0200},
+    {0, 0},
+};
diff --git a/libavformat/voc.h b/libavformat/voc.h
index a709765d96d4d5da7aeb04f8abe6a2597cf724d1..16adb0078225b7b23515fdf59029bc8a1d6b2a54 100644
--- a/libavformat/voc.h
+++ b/libavformat/voc.h
@@ -23,6 +23,7 @@
 #define VOC_H
 
 #include "avformat.h"
+#include "riff.h"    /* for CodecTag */
 
 typedef struct voc_dec_context {
     int remaining_size;
@@ -41,6 +42,8 @@ typedef enum voc_type {
     VOC_TYPE_NEW_VOICE_DATA   = 0x09,
 } voc_type_t;
 
+extern const unsigned char voc_magic[21];
+extern const CodecTag voc_codec_tags[];
 
 int voc_get_packet(AVFormatContext *s, AVPacket *pkt,
                    AVStream *st, int max_size);
diff --git a/libavformat/vocdec.c b/libavformat/vocdec.c
index 3a8bd28c52aeb75f4accf06ba17e1c50cd88dc96..6a786922784a090276140613f34db4edadfeb615 100644
--- a/libavformat/vocdec.c
+++ b/libavformat/vocdec.c
@@ -19,25 +19,10 @@
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
-#include "avformat.h"
-#include "riff.h"    /* for CodecTag */
 #include "voc.h"
 
 
 static const int voc_max_pkt_size = 2048;
-static const unsigned char voc_magic[] = "Creative Voice File\x1A";
-
-static const CodecTag voc_codec_tags[] = {
-    {CODEC_ID_PCM_U8,        0x00},
-    {CODEC_ID_ADPCM_SBPRO_4, 0x01},
-    {CODEC_ID_ADPCM_SBPRO_3, 0x02},
-    {CODEC_ID_ADPCM_SBPRO_2, 0x03},
-    {CODEC_ID_PCM_S16LE,     0x04},
-    {CODEC_ID_PCM_ALAW,      0x06},
-    {CODEC_ID_PCM_MULAW,     0x07},
-    {CODEC_ID_ADPCM_CT,    0x0200},
-    {0, 0},
-};
 
 
 static int voc_probe(AVProbeData *p)
diff --git a/libavformat/vocenc.c b/libavformat/vocenc.c
index 64e8ccf473f2dec8b60bc719cfcf76dfcf171085..ed304883d13e500089bc76b1f78e6e1ed5ba4729 100644
--- a/libavformat/vocenc.c
+++ b/libavformat/vocenc.c
@@ -19,26 +19,9 @@
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
-#include "avformat.h"
-#include "riff.h"    /* for CodecTag */
 #include "voc.h"
 
 
-static const unsigned char voc_magic[] = "Creative Voice File\x1A";
-
-static const CodecTag voc_codec_tags[] = {
-    {CODEC_ID_PCM_U8,        0x00},
-    {CODEC_ID_ADPCM_SBPRO_4, 0x01},
-    {CODEC_ID_ADPCM_SBPRO_3, 0x02},
-    {CODEC_ID_ADPCM_SBPRO_2, 0x03},
-    {CODEC_ID_PCM_S16LE,     0x04},
-    {CODEC_ID_PCM_ALAW,      0x06},
-    {CODEC_ID_PCM_MULAW,     0x07},
-    {CODEC_ID_ADPCM_CT,    0x0200},
-    {0, 0},
-};
-
-
 typedef struct voc_enc_context {
     int param_written;
 } voc_enc_context_t;