This commit was created by a combination of scripts and tools:
- an ast-grep script to prefix things in meta with `lib.`,
- a modified nixf-diagnose / nixf combination to remove unused `with
lib;`, and
- regular nixfmt.
Co-authored-by: Wolfgang Walther <walther@technowledgy.de>
The defaults with the `generic` CPU target are somewhere between the ppc64 and ppc64le baseline.
More specific CPU targets don't have perfect settings either.
Just try to configure together a set of baseline-compatible settings.
This is the latest major version of ffmpeg, codenamed "Huffman".
The feature flags added are one for Whisper filter support via
whisper-cpp, and APV encoding support via OpenAPV(which needed to be
packaged)
Further, the withPostproc feature flag is restricted to before version
8.0, as it was removed.
Currently, nasm is the only supported assembler on 8.0+, so we use that.
in order to not cause a mass rebuild, we don't change the assembler for
older builds, even though nasm has been supported since 3.4.
Those were there from the very start, seemingly as platform checks,
but aren't actually necessary, and in fact Jellyfin explicitly wants
svt-av1 on all platforms.
Provides support for newer hardware (from Tiger Lake, 11th gen), which
was released in late 2020. Also, this adds support for the Intel GPUs,
which also work on aarch64-linux.
The intel-media-sdk/libmfx repo was archived back in 2023 and to this day
there are five known local privilege escalation vulnerabilites, that I
do not want us to ship by default anymore.
Older hardware can probably[1][2] still rely on VA-API instead, which
should be sufficient harm reduction.
[1] https://trac.ffmpeg.org/wiki/Hardware/VAAPI
[2] https://jellyfin.org/docs/general/post-install/transcoding/hardware-acceleration/intel/