some libmpeg2 style bitstream reader fixes (no dv doesnt yet work with it)
authorMichael Niedermayer <michaelni@gmx.at>
Wed, 14 May 2003 10:54:25 +0000 (10:54 +0000)
committerMichael Niedermayer <michaelni@gmx.at>
Wed, 14 May 2003 10:54:25 +0000 (10:54 +0000)
Originally committed as revision 1874 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/dv.c

index 32d4c3a..7727892 100644 (file)
@@ -157,7 +157,7 @@ static const uint16_t block_sizes[6] = {
 };
 
 #ifndef ALT_BITSTREAM_READER
-#error only works with ALT_BITSTREAM_READER
+#warning only works with ALT_BITSTREAM_READER
 #endif
 
 /* decode ac coefs */
@@ -171,7 +171,10 @@ static void dv_decode_ac(DVVideoDecodeContext *s,
     int pos = mb->pos;
     int level, pos1, sign, run;
     int partial_bit_count;
-
+#ifndef ALT_BITSTREAM_READER //FIXME
+    int re_index=0; 
+    int re1_index=0;
+#endif
     OPEN_READER(re, &s->gb);
     
 #ifdef VLC_DEBUG
@@ -364,7 +367,7 @@ static inline void dv_decode_video_segment(DVVideoDecodeContext *s,
 
             /* write the remaining bits  in a new buffer only if the
                block is finished */
-            bits_left = last_index - s->gb.index;
+            bits_left = last_index - get_bits_count(&s->gb);
             if (mb->eob_reached) {
                 mb->partial_bit_count = 0;
                 mb_bit_count += bits_left;
@@ -389,13 +392,13 @@ static inline void dv_decode_video_segment(DVVideoDecodeContext *s,
         mb = mb1;
         init_get_bits(&s->gb, mb_bit_buffer, 80*8);
         for(j = 0;j < 6; j++) {
-            if (!mb->eob_reached && s->gb.index < mb_bit_count) {
+            if (!mb->eob_reached && get_bits_count(&s->gb) < mb_bit_count) {
                 dv_decode_ac(s, mb, block, mb_bit_count);
                 /* if still not finished, no need to parse other blocks */
                 if (!mb->eob_reached) {
                     /* we could not parse the current AC coefficient,
                        so we add the remaining bytes */
-                    bits_left = mb_bit_count - s->gb.index;
+                    bits_left = mb_bit_count - get_bits_count(&s->gb);
                     if (bits_left > 0) {
                         mb->partial_bit_count += bits_left;
                         mb->partial_bit_buffer = 
@@ -410,7 +413,7 @@ static inline void dv_decode_video_segment(DVVideoDecodeContext *s,
         }
         /* all blocks are finished, so the extra bytes can be used at
            the video segment level */
-        bits_left = mb_bit_count - s->gb.index;
+        bits_left = mb_bit_count - get_bits_count(&s->gb);
         vs_bit_count += bits_left;
         bit_copy(&vs_pb, &s->gb, bits_left);
     next_mb: