Update FFmpeg to 7.0
Hi all,
This is a MR to update our Meson port to FFmpeg 7.0. As usual, there have been some changes upstream:
- upstream now uses subfolders of
libxxx
to meant not only architectures, but also components or features e.g.dnn
,vvc
andbsf
- all bitstream filters have been moved to a standalone folder (see above)
- there are components within libavcodecs that now require file-level flags, a feature officially unsupported by Meson
- upstream now also reuses files across components, something that @meh has accounted for in the case of NASM files
-
ffplay
has its own set of optional sources - upstream now supports AudioToolbox as a backend, but the code targets macOS only without the corresponding checks in
configure
parse_sources.py
now supports these filesystem layout changes, and a "special" static library was added for those components that need the additional include flag. A couple bugs that I found when testing with MSYS2 CLANG64, around detection of atomics and threading support, were fixed along with the AudioToolbox missing checks.
As of 7.0, FFmpeg has begun to hard require C11 with atomics support. This was already added in !99 (merged) along with the Metal backend support, but this PR ports the configure
check that will kill the configure if atomics are not available.
This MR is based on, and requires !118 (merged). I also need to follow up on !117 (comment 2440379). It will most likely need a manual rebase, but I'm opening it up now for review and examination.
Thanks in advance for your comments!