vsrc_testsrc: do not assume non-padded lines in test_fill_picture()
authorStefano Sabatini <stefasab@gmail.com>
Sun, 23 Oct 2011 21:51:33 +0000 (23:51 +0200)
committerStefano Sabatini <stefasab@gmail.com>
Sun, 23 Oct 2011 21:54:37 +0000 (23:54 +0200)
In particular, fix sliding color bar with padded data, for example with
testsrc,pad=iw+200:ih.

libavfilter/vsrc_testsrc.c

index 2447cb3..47b045a 100644 (file)
@@ -283,7 +283,7 @@ static void test_fill_picture(AVFilterContext *ctx, AVFilterBufferRef *picref)
     }
 
     /* draw sliding color line */
-    p = data + picref->linesize[0] * height * 3/4;
+    p0 = p = data + picref->linesize[0] * height * 3/4;
     grad = (256 * test->nb_frame * test->time_base.num / test->time_base.den) %
         GRADIENT_SIZE;
     rgrad = 0;
@@ -311,8 +311,9 @@ static void test_fill_picture(AVFilterContext *ctx, AVFilterBufferRef *picref)
         if (grad >= GRADIENT_SIZE)
             grad -= GRADIENT_SIZE;
     }
+    p = p0;
     for (y = height / 8; y > 0; y--) {
-        memcpy(p, p - picref->linesize[0], 3 * width);
+        memcpy(p+picref->linesize[0], p, 3 * width);
         p += picref->linesize[0];
     }