comparison h263dec.c @ 1338:e0e5483c32c5 libavcodec

fix last_block_index<=0 bug
author michaelni
date Thu, 03 Jul 2003 22:35:39 +0000
parents 6e039762d5cb
children cfc80b3a4ada
comparison
equal deleted inserted replaced
1337:c4e6ed5319e7 1338:e0e5483c32c5
203 s->mv_dir = MV_DIR_FORWARD; 203 s->mv_dir = MV_DIR_FORWARD;
204 s->mv_type = MV_TYPE_16X16; 204 s->mv_type = MV_TYPE_16X16;
205 // s->mb_skiped = 0; 205 // s->mb_skiped = 0;
206 //printf("%d %d %06X\n", ret, get_bits_count(&s->gb), show_bits(&s->gb, 24)); 206 //printf("%d %d %06X\n", ret, get_bits_count(&s->gb), show_bits(&s->gb, 24));
207 ret= s->decode_mb(s, s->block); 207 ret= s->decode_mb(s, s->block);
208
209 MPV_decode_mb(s, s->block);
210 208
211 if(ret<0){ 209 if(ret<0){
212 const int xy= s->mb_x + s->mb_y*s->mb_stride; 210 const int xy= s->mb_x + s->mb_y*s->mb_stride;
213 if(ret==SLICE_END){ 211 if(ret==SLICE_END){
212 MPV_decode_mb(s, s->block);
213
214 //printf("%d %d %d %06X\n", s->mb_x, s->mb_y, s->gb.size*8 - get_bits_count(&s->gb), show_bits(&s->gb, 24)); 214 //printf("%d %d %d %06X\n", s->mb_x, s->mb_y, s->gb.size*8 - get_bits_count(&s->gb), show_bits(&s->gb, 24));
215 ff_er_add_slice(s, s->resync_mb_x, s->resync_mb_y, s->mb_x, s->mb_y, (AC_END|DC_END|MV_END)&part_mask); 215 ff_er_add_slice(s, s->resync_mb_x, s->resync_mb_y, s->mb_x, s->mb_y, (AC_END|DC_END|MV_END)&part_mask);
216 216
217 s->padding_bug_score--; 217 s->padding_bug_score--;
218 218
230 fprintf(stderr,"Error at MB: %d\n", xy); 230 fprintf(stderr,"Error at MB: %d\n", xy);
231 ff_er_add_slice(s, s->resync_mb_x, s->resync_mb_y, s->mb_x, s->mb_y, (AC_ERROR|DC_ERROR|MV_ERROR)&part_mask); 231 ff_er_add_slice(s, s->resync_mb_x, s->resync_mb_y, s->mb_x, s->mb_y, (AC_ERROR|DC_ERROR|MV_ERROR)&part_mask);
232 232
233 return -1; 233 return -1;
234 } 234 }
235
236 MPV_decode_mb(s, s->block);
235 } 237 }
236 238
237 ff_draw_horiz_band(s, s->mb_y*16, 16); 239 ff_draw_horiz_band(s, s->mb_y*16, 16);
238 240
239 s->mb_x= 0; 241 s->mb_x= 0;