Author: vitor
Date: Sat May 16 12:20:11 2009
New Revision: 4272

Log:
Fix offsetting of the data pointers in copy_image in 
the overlay filter, so a fourth plane (alpha?) isn't offsetted as a 
subsampled plane.

Patch by Martin Storsjö - $firstn...@$firstname.st

Modified:
   libavfilter/vf_overlay.c

Modified: libavfilter/vf_overlay.c
==============================================================================
--- libavfilter/vf_overlay.c    Fri May 15 01:16:47 2009        (r4271)
+++ libavfilter/vf_overlay.c    Sat May 16 12:20:11 2009        (r4272)
@@ -186,12 +186,16 @@ static void copy_image(AVFilterPicRef *d
     int i;
 
     memcpy(&pic, &dst->data, sizeof(AVPicture));
-    pic.data[0] += x * bpp;
-    pic.data[0] += y * pic.linesize[0];
-    for(i = 1; i < 4; i ++) {
+    for(i = 0; i < 4; i ++) {
         if(pic.data[i]) {
-            pic.data[i] +=  x >> hsub;
-            pic.data[i] += (y >> vsub) * pic.linesize[i];
+            int x_off = x;
+            int y_off = y;
+            if (i == 1 || i == 2) {
+                x_off >>= hsub;
+                y_off >>= vsub;
+            }
+            pic.data[i] += x_off * bpp;
+            pic.data[i] += y_off * pic.linesize[i];
         }
     }
 
_______________________________________________
FFmpeg-soc mailing list
[email protected]
https://lists.mplayerhq.hu/mailman/listinfo/ffmpeg-soc

Reply via email to