[FFmpeg-devel] [PATCH] get_bits_left()

Ronald S. Bultje rsbultje
Mon Nov 9 16:29:07 CET 2009


Hi,

dv.c contains a get_bits_left().

$ grep -- "- get_bits_count" *.c
alac.c:    if (input_buffer_size * 8 - get_bits_count(&alac->gb) > 8)
alac.c:        av_log(avctx, AV_LOG_ERROR, "Error : %d bits left\n",
input_buffer_size * 8 - get_bits_count(&alac->gb));
cook.c:    bits_left =  p->bits_per_subpacket - get_bits_count(&q->gb);
h261dec.c:        left= s->gb.size_in_bits - get_bits_count(&s->gb);
h261dec.c:    for(i= s->gb.size_in_bits - get_bits_count(&s->gb); i>24; i-=1){
h263.c:    left= s->gb.size_in_bits - get_bits_count(&s->gb);
h263.c:    left= s->gb.size_in_bits - get_bits_count(&s->gb);
h263.c://printf("%06X %d\n", show_bits(&s->gb, 24), s->gb.size_in_bits
- get_bits_count(&s->gb));
h263.c:    for(i= s->gb.size_in_bits - get_bits_count(&s->gb); i>24; i-=8) {
h263.c:                    skip_bits_long(gb, pos - get_bits_count(gb));
h263.c:                    skip_bits_long(gb, pos - get_bits_count(gb));
h263dec.c://printf("%d %d %d %06X\n", s->mb_x, s->mb_y, s->gb.size*8 -
get_bits_count(&s->gb), show_bits(&s->gb, 24));
h263dec.c:       &&    s->gb.size_in_bits - get_bits_count(&s->gb) >=0
h263dec.c:       &&    s->gb.size_in_bits - get_bits_count(&s->gb) < 48
h263dec.c:        int left= s->gb.size_in_bits - get_bits_count(&s->gb);
h263dec.c:            s->gb.size_in_bits - get_bits_count(&s->gb),
h264.c:                               ( s->gb.size_in_bits -
get_bits_count(&s->gb) + 7)/8);
huffyuv.c:    if(count >= (s->gb.size_in_bits - get_bits_count(&s->gb))/(31*4)){
huffyuv.c:    if(count >= (s->gb.size_in_bits - get_bits_count(&s->gb))/(31*2)){
imc.c:    if(bit_allocation (q, stream_format_code, 512 - bitscount -
get_bits_count(&q->gb), flag) < 0) {
mlpdec.c:        if (substream_data_len[substr] * 8 -
get_bits_count(&gb) >= 32) {
mlpdec.c:            if (substream_data_len[substr] * 8 -
get_bits_count(&gb) != 16)
mpeg12.c:                int left= s->gb.size_in_bits - get_bits_count(&s->gb);
mpegaudiodec.c:    bits_left = end_pos2 - get_bits_count(&s->gb);
mpegaudiodec.c:            i= (s->gb.size_in_bits - get_bits_count(&s->gb))>>3;
mpegaudiodec.c:        i= (s->gb.size_in_bits - get_bits_count(&s->gb))>>3;
msmpeg4.c:    int left= buf_size*8 - get_bits_count(&s->gb);
msmpeg4.c:                const int left= s->gb.size_in_bits -
get_bits_count(&s->gb);
qdm2.c:#define BITS_LEFT(length,gb) ((length) - get_bits_count ((gb)))
qdm2.c:    packet_bytes = (q->compressed_size - get_bits_count(&gb) / 8);
rv34.c:    bits = r->bits - get_bits_count(&s->gb);
svq3.c:                skip_bits(&s->gb, h->next_slice_index -
get_bits_count(&s->gb));
vc1dec.c:        count = avctx->extradata_size*8 - get_bits_count(&gb);
vp3.c:        av_log(avctx, AV_LOG_WARNING, "%d bits left in packet
%X\n", 8*header_len[i] - get_bits_count(&gb), ptype);
wavpack.c:        const int left_bits = s->gb_extra_bits.size_in_bits
- get_bits_count(&s->gb_extra_bits);
wavpack.c:        const int size = s->gb_extra_bits.size_in_bits -
get_bits_count(&s->gb_extra_bits);

Let's move that somewhere sane so we can fix this travesty, see
attached. I'm using it also in my decoder, hence my interest.

Ronald
-------------- next part --------------
Index: get_bits.h
===================================================================
--- get_bits.h	(revision 19703)
+++ get_bits.h	(working copy)
@@ -702,4 +702,9 @@
         return 2 - get_bits1(gb);
 }
 
+static inline int get_bits_left(GetBitContext *gb)
+{
+    return gb->size_in_bits - get_bits_count(gb);
+}
+
 #endif /* AVCODEC_GET_BITS_H */
Index: dv.c
===================================================================
--- dv.c	(revision 19703)
+++ dv.c	(working copy)
@@ -416,11 +416,6 @@
 /* see dv_88_areas and dv_248_areas for details */
 static const int mb_area_start[5] = { 1, 6, 21, 43, 64 };
 
-static inline int get_bits_left(GetBitContext *s)
-{
-    return s->size_in_bits - get_bits_count(s);
-}
-
 static inline int put_bits_left(PutBitContext* s)
 {
     return (s->buf_end - s->buf) * 8 - put_bits_count(s);



More information about the ffmpeg-devel mailing list