diff options
author | Paul B Mahol <onemda@gmail.com> | 2022-12-04 13:19:50 +0100 |
---|---|---|
committer | Paul B Mahol <onemda@gmail.com> | 2022-12-04 13:22:36 +0100 |
commit | fc016fd665903b61bcf37c5d23897fe951f5d8e6 (patch) | |
tree | 8ae79404c23964aa295c18055613d80074338bef | |
parent | ec32c62cadac6a8f8dfa5d56d0da2e49719d9802 (diff) | |
download | ffmpeg-fc016fd665903b61bcf37c5d23897fe951f5d8e6.tar.gz |
avfilter/vf_exposure: ensure that scale is always > 0
-rw-r--r-- | libavfilter/vf_exposure.c | 4 |
1 files changed, 3 insertions, 1 deletions
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))); |