OSDN Git Service

Only draw the actually visible area in vp3_draw_horiz_band.
authorReimar Döffinger <Reimar.Doeffinger@gmx.de>
Wed, 8 Sep 2010 05:51:31 +0000 (05:51 +0000)
committerReimar Döffinger <Reimar.Doeffinger@gmx.de>
Wed, 8 Sep 2010 05:51:31 +0000 (05:51 +0000)
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

libavcodec/vp3.c

index 457c699..59719e7 100644 (file)
@@ -1326,9 +1326,7 @@ static void vp3_draw_horiz_band(Vp3DecodeContext *s, int y)
     y -= h;
 
     if (!s->flipped_image) {
-        if (y == 0)
-            h -= s->height - s->avctx->height;  // account for non-mod16
-        y = s->height - y - h;
+        y = s->avctx->height - y - h;
     }
 
     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;
         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);
     *(AVFrame*)data= s->current_frame;