From fc016fd665903b61bcf37c5d23897fe951f5d8e6 Mon Sep 17 00:00:00 2001 From: Paul B Mahol Date: Sun, 4 Dec 2022 13:19:50 +0100 Subject: [PATCH] avfilter/vf_exposure: ensure that scale is always > 0 --- libavfilter/vf_exposure.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libavfilter/vf_exposure.c b/libavfilter/vf_exposure.c index 108fba7930..bbe951967b 100644 --- a/libavfilter/vf_exposure.c +++ b/libavfilter/vf_exposure.c @@ -67,8 +67,10 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *frame) { AVFilterContext *ctx = inlink->dst; ExposureContext *s = ctx->priv; + float diff = fabsf(exp2f(-s->exposure) - s->black); - s->scale = 1.f / (exp2f(-s->exposure) - s->black); + diff = diff > 0.f ? diff : 1.f / 1024.f; + s->scale = 1.f / diff; ff_filter_execute(ctx, s->do_slice, frame, NULL, FFMIN(frame->height, ff_filter_get_nb_threads(ctx)));