comparison h263dec.c @ 2261:bd09f4d1976f libavcodec

lowres slice fix
author michael
date Sun, 26 Sep 2004 13:03:43 +0000
parents 83ab15bd1638
children 514949de5d15
comparison
equal deleted inserted replaced
2260:33835650f5b6 2261:bd09f4d1976f
137 } 137 }
138 } 138 }
139 139
140 static int decode_slice(MpegEncContext *s){ 140 static int decode_slice(MpegEncContext *s){
141 const int part_mask= s->partitioned_frame ? (AC_END|AC_ERROR) : 0x7F; 141 const int part_mask= s->partitioned_frame ? (AC_END|AC_ERROR) : 0x7F;
142 const int mb_size= 16>>s->avctx->lowres;
142 s->last_resync_gb= s->gb; 143 s->last_resync_gb= s->gb;
143 s->first_slice_line= 1; 144 s->first_slice_line= 1;
144 145
145 s->resync_mb_x= s->mb_x; 146 s->resync_mb_x= s->mb_x;
146 s->resync_mb_y= s->mb_y; 147 s->resync_mb_y= s->mb_y;
212 213
213 s->padding_bug_score--; 214 s->padding_bug_score--;
214 215
215 if(++s->mb_x >= s->mb_width){ 216 if(++s->mb_x >= s->mb_width){
216 s->mb_x=0; 217 s->mb_x=0;
217 ff_draw_horiz_band(s, s->mb_y*16, 16); 218 ff_draw_horiz_band(s, s->mb_y*mb_size, mb_size);
218 s->mb_y++; 219 s->mb_y++;
219 } 220 }
220 return 0; 221 return 0;
221 }else if(ret==SLICE_NOEND){ 222 }else if(ret==SLICE_NOEND){
222 av_log(s->avctx, AV_LOG_ERROR, "Slice mismatch at MB: %d\n", xy); 223 av_log(s->avctx, AV_LOG_ERROR, "Slice mismatch at MB: %d\n", xy);
232 MPV_decode_mb(s, s->block); 233 MPV_decode_mb(s, s->block);
233 if(s->loop_filter) 234 if(s->loop_filter)
234 ff_h263_loop_filter(s); 235 ff_h263_loop_filter(s);
235 } 236 }
236 237
237 ff_draw_horiz_band(s, s->mb_y*16, 16); 238 ff_draw_horiz_band(s, s->mb_y*mb_size, mb_size);
238 239
239 s->mb_x= 0; 240 s->mb_x= 0;
240 } 241 }
241 242
242 assert(s->mb_x==0 && s->mb_y==s->mb_height); 243 assert(s->mb_x==0 && s->mb_y==s->mb_height);