]> git.sesse.net Git - ffmpeg/blobdiff - libavfilter/vf_blend.c
Merge commit '4be292dac7e7f0586053fcced8d530ccf4ebef29'
[ffmpeg] / libavfilter / vf_blend.c
index 1152361c9ac6f6d9d2e42fb198c5817865d3efb1..a5c8e9fb288e736859bd021d7fd74640ca383d95 100644 (file)
@@ -368,6 +368,7 @@ static int config_output(AVFilterLink *outlink)
     AVFilterLink *bottomlink = ctx->inputs[BOTTOM];
     BlendContext *b = ctx->priv;
     const AVPixFmtDescriptor *pix_desc = av_pix_fmt_desc_get(toplink->format);
+    int ret;
 
     if (toplink->format != bottomlink->format) {
         av_log(ctx, AV_LOG_ERROR, "inputs must be of same pixel format\n");
@@ -399,6 +400,9 @@ static int config_output(AVFilterLink *outlink)
     b->vsub = pix_desc->log2_chroma_h;
     b->nb_planes = av_pix_fmt_count_planes(toplink->format);
 
+    if ((ret = ff_dualinput_init(ctx, &b->dinput)) < 0)
+        return ret;
+
     return 0;
 }
 
@@ -418,27 +422,21 @@ static int request_frame(AVFilterLink *outlink)
     return ff_dualinput_request_frame(&b->dinput, outlink);
 }
 
-static int filter_frame_top(AVFilterLink *inlink, AVFrame *buf)
-{
-    BlendContext *b = inlink->dst->priv;
-    return ff_dualinput_filter_frame_main(&b->dinput, inlink, buf);
-}
-
-static int filter_frame_bottom(AVFilterLink *inlink, AVFrame *buf)
+static int filter_frame(AVFilterLink *inlink, AVFrame *buf)
 {
     BlendContext *b = inlink->dst->priv;
-    return ff_dualinput_filter_frame_second(&b->dinput, inlink, buf);
+    return ff_dualinput_filter_frame(&b->dinput, inlink, buf);
 }
 
 static const AVFilterPad blend_inputs[] = {
     {
         .name          = "top",
         .type          = AVMEDIA_TYPE_VIDEO,
-        .filter_frame  = filter_frame_top,
+        .filter_frame  = filter_frame,
     },{
         .name          = "bottom",
         .type          = AVMEDIA_TYPE_VIDEO,
-        .filter_frame  = filter_frame_bottom,
+        .filter_frame  = filter_frame,
     },
     { NULL }
 };