mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2024-12-11 01:25:25 +00:00
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:
parent
cfd06ceb27
commit
924311cd98
@ -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:
|
||||
|
Loading…
Reference in New Issue
Block a user