From df9f9caba58aeac461abb1232b46adbd93df7ed2 Mon Sep 17 00:00:00 2001
From: Michael Niedermayer <michaelni@gmx.at>
Date: Wed, 8 May 2013 21:58:40 +0200
Subject: [PATCH] avfilter: Make enabled/disabled state available as a field of
 the AVFilterContext

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
---
 libavfilter/avfilter.c | 4 +++-
 libavfilter/avfilter.h | 1 +
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/libavfilter/avfilter.c b/libavfilter/avfilter.c
index 06d92b2df5a..2dffccab89c 100644
--- a/libavfilter/avfilter.c
+++ b/libavfilter/avfilter.c
@@ -993,7 +993,9 @@ static int ff_filter_frame_framed(AVFilterLink *link, AVFrame *frame)
         dstctx->var_values[VAR_N] = link->frame_count;
         dstctx->var_values[VAR_T] = pts == AV_NOPTS_VALUE ? NAN : pts * av_q2d(link->time_base);
         dstctx->var_values[VAR_POS] = pos == -1 ? NAN : pos;
-        if (!av_expr_eval(dstctx->enable, dstctx->var_values, NULL))
+
+        dstctx->is_disabled = !av_expr_eval(dstctx->enable, dstctx->var_values, NULL);
+        if (dstctx->is_disabled)
             filter_frame = dst->passthrough_filter_frame ? dst->passthrough_filter_frame
                                                          : default_filter_frame;
     }
diff --git a/libavfilter/avfilter.h b/libavfilter/avfilter.h
index e7e979eed18..931433530bc 100644
--- a/libavfilter/avfilter.h
+++ b/libavfilter/avfilter.h
@@ -570,6 +570,7 @@ struct AVFilterContext {
     char *enable_str;               ///< enable expression string
     void *enable;                   ///< parsed expression (AVExpr*)
     double *var_values;             ///< variable values for the enable expression
+    int is_disabled;                ///< the enabled state from the last expression evaluation
 };
 
 /**
-- 
GitLab