Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul B Mahol <onemda@gmail.com>2018-05-14 18:58:27 +0300
committerPaul B Mahol <onemda@gmail.com>2018-05-14 19:08:35 +0300
commita27cab9eca631d9b27fafb4efadde99bae33383b (patch)
treefa7e56a933152ac41a389526397d079084a3df10 /libavfilter/vf_blend.c
parent1548d2a5a547dd043726c102687b184c7ac08575 (diff)
avfilter/vf_blend: add timeline support to tblend filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Diffstat (limited to 'libavfilter/vf_blend.c')
-rw-r--r--libavfilter/vf_blend.c14
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