FAST_TMIX_SLICE can work properly only in the case the filter is run
from the start and has never been disabled.  Therefore, once s->fast
is set to 0, it shall never be set back to 1.

Signed-off-by: Ignacy Gawędzki <b...@qult.net>
---
 libavfilter/vf_mix.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/libavfilter/vf_mix.c b/libavfilter/vf_mix.c
index 517bb2450f..c996cdd9fb 100644
--- a/libavfilter/vf_mix.c
+++ b/libavfilter/vf_mix.c
@@ -88,7 +88,6 @@ static int parse_weights(AVFilterContext *ctx)
     char *p, *arg, *saveptr = NULL;
     int i, last = 0;
 
-    s->fast = 1;
     s->wfactor = 0.f;
     p = s->weights_str;
     for (i = 0; i < s->nb_inputs; i++) {
@@ -150,6 +149,8 @@ static av_cold int init(AVFilterContext *ctx)
         }
     }
 
+    s->fast = 1;
+
     return parse_weights(ctx);
 }
 
@@ -295,6 +296,7 @@ static int process_frame(FFFrameSync *fs)
     }
 
     if (ctx->is_disabled) {
+        s->fast = 0;
         out = av_frame_clone(s->frames[0]);
         if (!out)
             return AVERROR(ENOMEM);
@@ -506,6 +508,7 @@ static int tmix_filter_frame(AVFilterLink *inlink, AVFrame 
*in)
     }
 
     if (ctx->is_disabled) {
+        s->fast = 0;
         out = av_frame_clone(s->frames[0]);
         if (!out)
             return AVERROR(ENOMEM);
-- 
2.48.1
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to