if (h > 16)
h = 16;
offset = y * s->linesize;
- src_ptr[0] = s->current_picture[0] + offset;
- src_ptr[1] = s->current_picture[1] + (offset >> 2);
- src_ptr[2] = s->current_picture[2] + (offset >> 2);
+ if(s->pict_type==B_TYPE || (!s->has_b_frames)){
+ src_ptr[0] = s->current_picture[0] + offset;
+ src_ptr[1] = s->current_picture[1] + (offset >> 2);
+ src_ptr[2] = s->current_picture[2] + (offset >> 2);
+ } else {
+ src_ptr[0] = s->last_picture[0] + offset;
+ src_ptr[1] = s->last_picture[1] + (offset >> 2);
+ src_ptr[2] = s->last_picture[2] + (offset >> 2);
+ }
avctx->draw_horiz_band(avctx, src_ptr, s->linesize,
y, s->width, h);
}