Browse Source

lavfi/blend: timeline support

Signed-off-by: Paul B Mahol <onemda@gmail.com>
tags/n2.0
Paul B Mahol 12 years ago
parent
commit
b24530019f
1 changed files with 11 additions and 5 deletions
  1. +11
    -5
      libavfilter/vf_blend.c

+ 11
- 5
libavfilter/vf_blend.c View File

@@ -412,14 +412,19 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *buf)
top_buf = ff_bufqueue_get(&b->queue_top);
bottom_buf = ff_bufqueue_get(&b->queue_bottom);

out_buf = ff_get_video_buffer(outlink, outlink->w, outlink->h);
if (!out_buf) {
return AVERROR(ENOMEM);
if (!ctx->is_disabled) {
out_buf = ff_get_video_buffer(outlink, outlink->w, outlink->h);
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;
blend_frame(ctx, top_buf, bottom_buf, out_buf);
ret = ff_filter_frame(outlink, out_buf);
av_frame_free(&top_buf);
av_frame_free(&bottom_buf);
@@ -460,4 +465,5 @@ AVFilter avfilter_vf_blend = {
.inputs = blend_inputs,
.outputs = blend_outputs,
.priv_class = &blend_class,
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL,
};

Loading…
Cancel
Save