summaryrefslogtreecommitdiff
path: root/libavfilter/vf_phase.c
diff options
context:
space:
mode:
authorClément Bœsch <u@pkh.me>2014-05-03 22:43:20 +0200
committerClément Bœsch <u@pkh.me>2014-05-08 23:34:51 +0200
commit69d72140accb8f6e61f046fa5b91f0f9c2f52f22 (patch)
tree002e5b57e65538784fa02df2771ff90fc3654c61 /libavfilter/vf_phase.c
parent8de600de553a133bead1b54128c482bcaaa2d292 (diff)
avfilter/phase: add timeline support.
Diffstat (limited to 'libavfilter/vf_phase.c')
-rw-r--r--libavfilter/vf_phase.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/libavfilter/vf_phase.c b/libavfilter/vf_phase.c
index dd3ecedd10..297ef70ec5 100644
--- a/libavfilter/vf_phase.c
+++ b/libavfilter/vf_phase.c
@@ -243,6 +243,15 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in)
int plane, top, y;
AVFrame *out;
+ if (ctx->is_disabled) {
+ av_frame_free(&s->frame);
+ /* we keep a reference to the previous frame so the filter can start
+ * being useful as soon as it's not disabled, avoiding the 1-frame
+ * delay. */
+ s->frame = av_frame_clone(in);
+ return ff_filter_frame(outlink, in);
+ }
+
out = ff_get_video_buffer(outlink, outlink->w, outlink->h);
if (!out) {
av_frame_free(&in);
@@ -311,4 +320,5 @@ AVFilter ff_vf_phase = {
.query_formats = query_formats,
.inputs = phase_inputs,
.outputs = phase_outputs,
+ .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL,
};