Mercurial > libavcodec.hg
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); |