avfilter/vf_alphamerge: use av_image_copy_plane()
authorPaul B Mahol <onemda@gmail.com>
Mon, 10 Apr 2017 15:23:49 +0000 (17:23 +0200)
committerPaul B Mahol <onemda@gmail.com>
Mon, 10 Apr 2017 15:37:07 +0000 (17:37 +0200)
Signed-off-by: Paul B Mahol <onemda@gmail.com>
libavfilter/vf_alphamerge.c

index a8a8d56..a4aa8db 100644 (file)
@@ -25,6 +25,7 @@
 
 #include <string.h>
 
+#include "libavutil/imgutils.h"
 #include "libavutil/pixfmt.h"
 #include "avfilter.h"
 #include "bufferqueue.h"
@@ -129,14 +130,11 @@ static void draw_frame(AVFilterContext *ctx,
             }
         }
     } else {
-        int y;
         const int main_linesize = main_buf->linesize[A];
         const int alpha_linesize = alpha_buf->linesize[Y];
-        for (y = 0; y < h && y < alpha_buf->height; y++) {
-            memcpy(main_buf->data[A] + y * main_linesize,
-                   alpha_buf->data[Y] + y * alpha_linesize,
-                   FFMIN(main_linesize, alpha_linesize));
-        }
+        av_image_copy_plane(main_buf->data[A], main_linesize,
+                            alpha_buf->data[Y], alpha_linesize,
+                            FFMIN(main_linesize, alpha_linesize), alpha_buf->height);
     }
 }