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
This commit is contained in:
Michael Niedermayer 2003-05-14 10:54:25 +00:00
parent cfd06ceb27
commit 924311cd98
1 changed files with 9 additions and 6 deletions

View 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: