Only draw the actually visible area in vp3_draw_horiz_band.

Fixes a black line in non-swapped, non-mod-16-height Theora videos
when vp3_draw_horiz_band is used.

Originally committed as revision 25073 to svn://svn.ffmpeg.org/ffmpeg/trunk
oldabi
Reimar Döffinger 14 years ago
parent 6950cca97f
commit 83f72f138e
  1. 6
      libavcodec/vp3.c

@ -1326,9 +1326,7 @@ static void vp3_draw_horiz_band(Vp3DecodeContext *s, int y)
y -= h; y -= h;
if (!s->flipped_image) { if (!s->flipped_image) {
if (y == 0) y = s->avctx->height - y - h;
h -= s->height - s->avctx->height; // account for non-mod16
y = s->height - y - h;
} }
cy = y >> s->chroma_y_shift; cy = y >> s->chroma_y_shift;
@ -1850,7 +1848,7 @@ static int vp3_decode_frame(AVCodecContext *avctx,
int row = (s->height >> (3+(i && s->chroma_y_shift))) - 1; int row = (s->height >> (3+(i && s->chroma_y_shift))) - 1;
apply_loop_filter(s, i, row, row+1); apply_loop_filter(s, i, row, row+1);
} }
vp3_draw_horiz_band(s, s->height); vp3_draw_horiz_band(s, s->avctx->height);
*data_size=sizeof(AVFrame); *data_size=sizeof(AVFrame);
*(AVFrame*)data= s->current_frame; *(AVFrame*)data= s->current_frame;

Loading…
Cancel
Save