diff options
author | Paul B Mahol <onemda@gmail.com> | 2018-05-14 17:58:27 +0200 |
---|---|---|
committer | Paul B Mahol <onemda@gmail.com> | 2018-05-14 18:08:35 +0200 |
commit | a27cab9eca631d9b27fafb4efadde99bae33383b (patch) | |
tree | fa7e56a933152ac41a389526397d079084a3df10 /libavfilter | |
parent | 1548d2a5a547dd043726c102687b184c7ac08575 (diff) | |
download | ffmpeg-a27cab9eca631d9b27fafb4efadde99bae33383b.tar.gz |
avfilter/vf_blend: add timeline support to tblend filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Diffstat (limited to 'libavfilter')
-rw-r--r-- | libavfilter/vf_blend.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/libavfilter/vf_blend.c b/libavfilter/vf_blend.c index 70c37c75da..e83a0db640 100644 --- a/libavfilter/vf_blend.c +++ b/libavfilter/vf_blend.c @@ -626,11 +626,17 @@ AVFilter ff_vf_blend = { static int tblend_filter_frame(AVFilterLink *inlink, AVFrame *frame) { - BlendContext *s = inlink->dst->priv; - AVFilterLink *outlink = inlink->dst->outputs[0]; + AVFilterContext *ctx = inlink->dst; + BlendContext *s = ctx->priv; + AVFilterLink *outlink = ctx->outputs[0]; if (s->prev_frame) { - AVFrame *out = blend_frame(inlink->dst, frame, s->prev_frame); + AVFrame *out; + + if (ctx->is_disabled) + out = av_frame_clone(frame); + else + out = blend_frame(ctx, frame, s->prev_frame); av_frame_free(&s->prev_frame); s->prev_frame = frame; return ff_filter_frame(outlink, out); @@ -674,7 +680,7 @@ AVFilter ff_vf_tblend = { .uninit = uninit, .inputs = tblend_inputs, .outputs = tblend_outputs, - .flags = AVFILTER_FLAG_SLICE_THREADS, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS, }; #endif |