Commit b2453001 authored by Paul B Mahol's avatar Paul B Mahol

lavfi/blend: timeline support

Signed-off-by: 's avatarPaul B Mahol <onemda@gmail.com>
parent e751481c
...@@ -412,14 +412,19 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *buf) ...@@ -412,14 +412,19 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *buf)
top_buf = ff_bufqueue_get(&b->queue_top); top_buf = ff_bufqueue_get(&b->queue_top);
bottom_buf = ff_bufqueue_get(&b->queue_bottom); bottom_buf = ff_bufqueue_get(&b->queue_bottom);
out_buf = ff_get_video_buffer(outlink, outlink->w, outlink->h); if (!ctx->is_disabled) {
if (!out_buf) { out_buf = ff_get_video_buffer(outlink, outlink->w, outlink->h);
return AVERROR(ENOMEM); if (!out_buf)
return AVERROR(ENOMEM);
av_frame_copy_props(out_buf, top_buf);
blend_frame(ctx, top_buf, bottom_buf, out_buf);
} else {
out_buf = av_frame_clone(top_buf);
if (!out_buf)
return AVERROR(ENOMEM);
} }
av_frame_copy_props(out_buf, top_buf);
b->frame_requested = 0; b->frame_requested = 0;
blend_frame(ctx, top_buf, bottom_buf, out_buf);
ret = ff_filter_frame(outlink, out_buf); ret = ff_filter_frame(outlink, out_buf);
av_frame_free(&top_buf); av_frame_free(&top_buf);
av_frame_free(&bottom_buf); av_frame_free(&bottom_buf);
...@@ -460,4 +465,5 @@ AVFilter avfilter_vf_blend = { ...@@ -460,4 +465,5 @@ AVFilter avfilter_vf_blend = {
.inputs = blend_inputs, .inputs = blend_inputs,
.outputs = blend_outputs, .outputs = blend_outputs,
.priv_class = &blend_class, .priv_class = &blend_class,
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL,
}; };
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment