libavcodec/vc1: Remove bits variable

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
pull/331/head
Michael Niedermayer 5 years ago
parent 32fb919836
commit fea90e9438
  1. 2
      libavcodec/mss2.c
  2. 2
      libavcodec/vc1.h
  3. 16
      libavcodec/vc1_block.c
  4. 2
      libavcodec/vc1dec.c

@ -412,8 +412,6 @@ static int decode_wmv9(AVCodecContext *avctx, const uint8_t *buf, int buf_size,
ff_mpeg_er_frame_start(s); ff_mpeg_er_frame_start(s);
v->bits = buf_size * 8;
v->end_mb_x = (w + 15) >> 4; v->end_mb_x = (w + 15) >> 4;
s->end_mb_y = (h + 15) >> 4; s->end_mb_y = (h + 15) >> 4;
if (v->respic & 1) if (v->respic & 1)

@ -176,8 +176,6 @@ typedef struct VC1Context{
H264ChromaContext h264chroma; H264ChromaContext h264chroma;
VC1DSPContext vc1dsp; VC1DSPContext vc1dsp;
int bits;
/** Simple/Main Profile sequence header */ /** Simple/Main Profile sequence header */
//@{ //@{
int res_sprite; ///< reserved, sprite mode int res_sprite; ///< reserved, sprite mode

@ -2632,10 +2632,10 @@ static void vc1_decode_i_blocks(VC1Context *v)
if (v->s.loop_filter) if (v->s.loop_filter)
ff_vc1_i_loop_filter(v); ff_vc1_i_loop_filter(v);
if (get_bits_count(&s->gb) > v->bits) { if (get_bits_left(&s->gb) < 0) {
ff_er_add_slice(&s->er, 0, 0, s->mb_x, s->mb_y, ER_MB_ERROR); ff_er_add_slice(&s->er, 0, 0, s->mb_x, s->mb_y, ER_MB_ERROR);
av_log(s->avctx, AV_LOG_ERROR, "Bits overconsumption: %i > %i\n", av_log(s->avctx, AV_LOG_ERROR, "Bits overconsumption: %i > %i\n",
get_bits_count(&s->gb), v->bits); get_bits_count(&s->gb), s->gb.size_in_bits);
return; return;
} }
@ -2778,11 +2778,11 @@ static int vc1_decode_i_blocks_adv(VC1Context *v)
if (v->s.loop_filter) if (v->s.loop_filter)
ff_vc1_i_loop_filter(v); ff_vc1_i_loop_filter(v);
if (get_bits_count(&s->gb) > v->bits) { if (get_bits_left(&s->gb) < 0) {
// TODO: may need modification to handle slice coding // TODO: may need modification to handle slice coding
ff_er_add_slice(&s->er, 0, s->start_mb_y, s->mb_x, s->mb_y, ER_MB_ERROR); ff_er_add_slice(&s->er, 0, s->start_mb_y, s->mb_x, s->mb_y, ER_MB_ERROR);
av_log(s->avctx, AV_LOG_ERROR, "Bits overconsumption: %i > %i\n", av_log(s->avctx, AV_LOG_ERROR, "Bits overconsumption: %i > %i\n",
get_bits_count(&s->gb), v->bits); get_bits_count(&s->gb), s->gb.size_in_bits);
return 0; return 0;
} }
inc_blk_idx(v->topleft_blk_idx); inc_blk_idx(v->topleft_blk_idx);
@ -2862,11 +2862,11 @@ static void vc1_decode_p_blocks(VC1Context *v)
if (apply_loop_filter) if (apply_loop_filter)
ff_vc1_p_loop_filter(v); ff_vc1_p_loop_filter(v);
} }
if (get_bits_count(&s->gb) > v->bits || get_bits_count(&s->gb) < 0) { if (get_bits_left(&s->gb) < 0 || get_bits_count(&s->gb) < 0) {
// TODO: may need modification to handle slice coding // TODO: may need modification to handle slice coding
ff_er_add_slice(&s->er, 0, s->start_mb_y, s->mb_x, s->mb_y, ER_MB_ERROR); ff_er_add_slice(&s->er, 0, s->start_mb_y, s->mb_x, s->mb_y, ER_MB_ERROR);
av_log(s->avctx, AV_LOG_ERROR, "Bits overconsumption: %i > %i at %ix%i\n", av_log(s->avctx, AV_LOG_ERROR, "Bits overconsumption: %i > %i at %ix%i\n",
get_bits_count(&s->gb), v->bits, s->mb_x, s->mb_y); get_bits_count(&s->gb), s->gb.size_in_bits, s->mb_x, s->mb_y);
return; return;
} }
inc_blk_idx(v->topleft_blk_idx); inc_blk_idx(v->topleft_blk_idx);
@ -2951,11 +2951,11 @@ static void vc1_decode_b_blocks(VC1Context *v)
if (v->s.loop_filter) if (v->s.loop_filter)
ff_vc1_i_loop_filter(v); ff_vc1_i_loop_filter(v);
} }
if (get_bits_count(&s->gb) > v->bits || get_bits_count(&s->gb) < 0) { if (get_bits_left(&s->gb) < 0 || get_bits_count(&s->gb) < 0) {
// TODO: may need modification to handle slice coding // TODO: may need modification to handle slice coding
ff_er_add_slice(&s->er, 0, s->start_mb_y, s->mb_x, s->mb_y, ER_MB_ERROR); ff_er_add_slice(&s->er, 0, s->start_mb_y, s->mb_x, s->mb_y, ER_MB_ERROR);
av_log(s->avctx, AV_LOG_ERROR, "Bits overconsumption: %i > %i at %ix%i\n", av_log(s->avctx, AV_LOG_ERROR, "Bits overconsumption: %i > %i at %ix%i\n",
get_bits_count(&s->gb), v->bits, s->mb_x, s->mb_y); get_bits_count(&s->gb), s->gb.size_in_bits, s->mb_x, s->mb_y);
return; return;
} }
} }

@ -1038,7 +1038,6 @@ static int vc1_decode_frame(AVCodecContext *avctx, void *data,
ff_mpeg_er_frame_start(s); ff_mpeg_er_frame_start(s);
v->bits = FFMIN(buf_size * 8, s->gb.size_in_bits);
v->end_mb_x = s->mb_width; v->end_mb_x = s->mb_width;
if (v->field_mode) { if (v->field_mode) {
s->current_picture.f->linesize[0] <<= 1; s->current_picture.f->linesize[0] <<= 1;
@ -1114,7 +1113,6 @@ static int vc1_decode_frame(AVCodecContext *avctx, void *data,
ff_vc1_decode_blocks(v); ff_vc1_decode_blocks(v);
if (i != n_slices) { if (i != n_slices) {
s->gb = slices[i].gb; s->gb = slices[i].gb;
v->bits = FFMIN(buf_size * 8, s->gb.size_in_bits);
} }
} }
if (v->field_mode) { if (v->field_mode) {

Loading…
Cancel
Save