diff --git a/libavcodec/bitstream.c b/libavcodec/bitstream.c index 8e5d15aceb..79a3f6c2f1 100644 --- a/libavcodec/bitstream.c +++ b/libavcodec/bitstream.c @@ -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>(16-bits)); +} + /* VLC decoding */ //#define DEBUG_VLC diff --git a/libavcodec/bitstream.h b/libavcodec/bitstream.h index dcaba8ab2c..fd1b4a94f8 100644 --- a/libavcodec/bitstream.h +++ b/libavcodec/bitstream.h @@ -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 */ diff --git a/libavcodec/mpegvideo.h b/libavcodec/mpegvideo.h index f7a87a3432..7935a71441 100644 --- a/libavcodec/mpegvideo.h +++ b/libavcodec/mpegvideo.h @@ -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); diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c index 2ac8a6fc68..4f933a6997 100644 --- a/libavcodec/mpegvideo_enc.c +++ b/libavcodec/mpegvideo_enc.c @@ -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>(16-bits)); -} - static inline void copy_context_before_encode(MpegEncContext *d, MpegEncContext *s, int type){ int i;