From 924311cd9828695b42cf639c4ea5f258c1a04efd Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Wed, 14 May 2003 10:54:25 +0000 Subject: some libmpeg2 style bitstream reader fixes (no dv doesnt yet work with it) Originally committed as revision 1874 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/dv.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'libavcodec/dv.c') diff --git a/libavcodec/dv.c b/libavcodec/dv.c index 32d4c3a271..7727892081 100644 --- a/libavcodec/dv.c +++ b/libavcodec/dv.c @@ -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: -- cgit v1.2.3