move ff_copy_bits to bitstream.c
authorAurelien Jacobs <aurel@gnuage.org>
Fri, 6 Jul 2007 14:13:25 +0000 (14:13 +0000)
committerAurelien Jacobs <aurel@gnuage.org>
Fri, 6 Jul 2007 14:13:25 +0000 (14:13 +0000)
Originally committed as revision 9503 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/bitstream.c
libavcodec/bitstream.h
libavcodec/mpegvideo.h
libavcodec/mpegvideo_enc.c

index 8e5d15a..79a3f6c 100644 (file)
@@ -60,6 +60,30 @@ void ff_put_string(PutBitContext * pbc, char *s, int put_zero)
         put_bits(pbc, 8, 0);
 }
 
+void ff_copy_bits(PutBitContext *pb, uint8_t *src, int length)
+{
+    const uint16_t *srcw= (uint16_t*)src;
+    int words= length>>4;
+    int bits= length&15;
+    int i;
+
+    if(length==0) return;
+
+    if(words < 16){
+        for(i=0; i<words; i++) put_bits(pb, 16, be2me_16(srcw[i]));
+    }else if(put_bits_count(pb)&7){
+        for(i=0; i<words; i++) put_bits(pb, 16, be2me_16(srcw[i]));
+    }else{
+        for(i=0; put_bits_count(pb)&31; i++)
+            put_bits(pb, 8, src[i]);
+        flush_put_bits(pb);
+        memcpy(pbBufPtr(pb), src+i, 2*words-i);
+        skip_put_bytes(pb, 2*words-i);
+    }
+
+    put_bits(pb, bits, be2me_16(srcw[words])>>(16-bits));
+}
+
 /* VLC decoding */
 
 //#define DEBUG_VLC
index dcaba8a..fd1b4a9 100644 (file)
@@ -137,6 +137,7 @@ static inline void flush_put_bits(PutBitContext *s)
 
 void align_put_bits(PutBitContext *s);
 void ff_put_string(PutBitContext * pbc, char *s, int put_zero);
+void ff_copy_bits(PutBitContext *pb, uint8_t *src, int length);
 
 /* bit input */
 /* buffer, buffer_end and size_in_bits must be present and used by every reader */
index f7a87a3..7935a71 100644 (file)
@@ -717,7 +717,6 @@ void MPV_common_init_armv4l(MpegEncContext *s);
 void MPV_common_init_ppc(MpegEncContext *s);
 #endif
 extern void (*draw_edges)(uint8_t *buf, int wrap, int width, int height, int w);
-void ff_copy_bits(PutBitContext *pb, uint8_t *src, int length);
 void ff_clean_intra_table_entries(MpegEncContext *s);
 void ff_init_scantable(uint8_t *, ScanTable *st, const uint8_t *src_scantable);
 void ff_draw_horiz_band(MpegEncContext *s, int y, int h);
index 2ac8a6f..4f933a6 100644 (file)
@@ -1734,30 +1734,6 @@ static av_always_inline void encode_mb(MpegEncContext *s, int motion_x, int moti
     else                                encode_mb_internal(s, motion_x, motion_y, 16, 8);
 }
 
-void ff_copy_bits(PutBitContext *pb, uint8_t *src, int length)
-{
-    const uint16_t *srcw= (uint16_t*)src;
-    int words= length>>4;
-    int bits= length&15;
-    int i;
-
-    if(length==0) return;
-
-    if(words < 16){
-        for(i=0; i<words; i++) put_bits(pb, 16, be2me_16(srcw[i]));
-    }else if(put_bits_count(pb)&7){
-        for(i=0; i<words; i++) put_bits(pb, 16, be2me_16(srcw[i]));
-    }else{
-        for(i=0; put_bits_count(pb)&31; i++)
-            put_bits(pb, 8, src[i]);
-        flush_put_bits(pb);
-        memcpy(pbBufPtr(pb), src+i, 2*words-i);
-        skip_put_bytes(pb, 2*words-i);
-    }
-
-    put_bits(pb, bits, be2me_16(srcw[words])>>(16-bits));
-}
-
 static inline void copy_context_before_encode(MpegEncContext *d, MpegEncContext *s, int type){
     int i;