diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2003-05-14 10:54:25 +0000 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2003-05-14 10:54:25 +0000 |
commit | 924311cd9828695b42cf639c4ea5f258c1a04efd (patch) | |
tree | e67890cd6415cf650bd278e0fc4c15d15cfba8ee /libavcodec/dv.c | |
parent | cfd06ceb27dafb230c5001852618963a57eb7bc9 (diff) | |
download | ffmpeg-streaming-924311cd9828695b42cf639c4ea5f258c1a04efd.zip ffmpeg-streaming-924311cd9828695b42cf639c4ea5f258c1a04efd.tar.gz |
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
Diffstat (limited to 'libavcodec/dv.c')
-rw-r--r-- | libavcodec/dv.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/libavcodec/dv.c b/libavcodec/dv.c index 32d4c3a..7727892 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: |