aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2003-05-14 10:54:25 +0000
committerMichael Niedermayer <michaelni@gmx.at>2003-05-14 10:54:25 +0000
commit924311cd9828695b42cf639c4ea5f258c1a04efd (patch)
treee67890cd6415cf650bd278e0fc4c15d15cfba8ee
parentcfd06ceb27dafb230c5001852618963a57eb7bc9 (diff)
downloadffmpeg-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
-rw-r--r--libavcodec/dv.c15
1 files changed, 9 insertions, 6 deletions
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: