Skip to content

Update FFmpeg to 7.0

amyspark requested to merge amyspark/ffmpeg:meson-7.0 into meson-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 and bsf
  • 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!

Edited by amyspark

Merge request reports