mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2026-10-24 02:09:03 +03:00
This is a behavior preserving change for all non-overflowing cases.
Slice-based filters computed per-slice boundaries as (dim * jobnr) / nb_jobs
in int, which overflows for large dimensions with many slice threads,
yielding wrong slice bounds and out-of-array accesses. ff_slice_pos()
performs the multiplication in 64bit.
Backported to 5.1: applied the ff_slice_pos() conversion to the filters
present in 5.1 (filters added after the 5.1 branch are skipped), and added
the required filters.h includes. ff_slice_pos() itself is already present
in 5.1. Channel-count based slices (bounded, cannot overflow) are left as
in 6.1.
(cherry picked from commit f7368f97b9)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>