diff --git a/libavcodec/bitstream.h b/libavcodec/bitstream.h
index 5a9621d9b6327b64e8701c93c633475fa409cb24..fa4f6f576e7581f31e62f0ba4369a05ce88d43b3 100644
--- a/libavcodec/bitstream.h
+++ b/libavcodec/bitstream.h
@@ -824,4 +824,13 @@ static inline int get_xbits_trace(GetBitContext *s, int n, char *file, const cha
 #define tprintf(...) {}
 #endif
 
+static int decode012(GetBitContext *gb){
+    int n;
+    n = get_bits1(gb);
+    if (n == 0)
+        return 0;
+    else
+        return get_bits1(gb) + 1;
+}
+
 #endif /* BITSTREAM_H */
diff --git a/libavcodec/msmpeg4.c b/libavcodec/msmpeg4.c
index a22631c222d54b1948b9374f5c65559267324435..e839b3fdb18fb2ee954963ef37290a99e4d02c46 100644
--- a/libavcodec/msmpeg4.c
+++ b/libavcodec/msmpeg4.c
@@ -1195,16 +1195,6 @@ int ff_msmpeg4_decode_init(MpegEncContext *s)
     return 0;
 }
 
-static int decode012(GetBitContext *gb)
-{
-    int n;
-    n = get_bits1(gb);
-    if (n == 0)
-        return 0;
-    else
-        return get_bits1(gb) + 1;
-}
-
 int msmpeg4_decode_picture_header(MpegEncContext * s)
 {
     int code;
diff --git a/libavcodec/vc9.c b/libavcodec/vc9.c
index a0e22c20780f9f57085b8549bfa797efc33249c9..30c8e963e1c584ce14a925c864715719669bf0a5 100644
--- a/libavcodec/vc9.c
+++ b/libavcodec/vc9.c
@@ -299,16 +299,6 @@ static int get_prefix(GetBitContext *gb, int stop, int len)
 #endif
 }
 
-static int decode012(GetBitContext *gb)
-{
-    int n;
-    n = get_bits1(gb);
-    if (n == 0)
-        return 0;
-    else
-        return get_bits1(gb) + 1;
-}
-
 static int init_common(VC9Context *v)
 {
     static int done = 0;