2.5.0 - zvbi security update, dav1d 1.5.4, no concat demuxer
Rebuilds every slice on a refreshed dependency set and takes one demuxer out of the allowlist. FFmpeg stays on n8.1.2. Decoder count is unchanged at 46, parsers at 20; demuxers go from 25 to 24.
Security
-
libzvbi 0.2.44 to 0.2.45. Upstream advisory GHSA-86rm-g7qf-j2fh (2026-08-12, moderate, no CVE assigned) fixes an out-of-bounds read, an out-of-bounds write and an integer underflow. 0.2.44 was itself the release that fixed the previous set (CVE-2025-2173 through CVE-2025-2177), which is why it read as current until the advisory landed.
This build enables
libzvbi_teletext, so the affected code is reachable from a DVB teletext stream. Anyone consuming this package for live TV should take this release.
Changed
-
The
concatdemuxer is out of the allowlist. It is a script demuxer: a byte stream beginningffconcat version 1.0makes libavformat open the paths listed inside it through thefileprotocol. Nothing in the known consumers asks for it by name, so format probing was the only way to select it, and that made any stream handed toavformat_open_inputa potential file-open primitive. Verified absent from the generatedlibavformat/demuxer_list.cof all ten slices.hlsstays. It is a documented capability of this package, consumers rely on it, and it opens nothing on its own here: this build is configured--disable-networkwith only thefile,pipeanddataprotocols. -
The
dashflag is removed because it never built anything. configure answeredDisabled dash_demuxer because not all dependencies are satisfied: libxml2on every slice, so the allowlist and the README both promised a capability the binaries never had. Nothing changes in what you get; the flag and the README row now match reality. DASH content still arrives through themovandmpegtssegment demuxers, which is how it always did.
Updated
- dav1d 1.5.1 to 1.5.4. No advisory. 1.5.1 dated from January 2025 and the intervening releases are optimization and maintenance work. This is the only dependency whose binary grows measurably:
Libdav1don an arm64 device slice goes from 778,896 to 844,560 bytes (+64 KB). - zimg 3.0.5 to 3.0.6. No advisory, no measurable size change.
Size
| Target | FFmpeg | dav1d | zimg | zvbi | Total |
|---|---|---|---|---|---|
| iOS / tvOS / visionOS arm64 | ~8.7 MB | ~0.8 MB | ~0.3 MB | ~0.5 MB | ~10.5 MB |
| macOS universal (arm64 + x86_64) | ~18.3 MB | ~2.5 MB | ~0.9 MB | ~1.0 MB | ~22.7 MB |
Note for consumers
concat leaving the allowlist is the reason this is a minor rather than a patch. If you relied on the concat demuxer, this release removes it; open an issue and say what for.
Build reproducibility
build.sh used to skip the clone whenever a source directory already existed, so changing a version string alone rebuilt the old source and produced a release in which nothing had changed. discard_stale_source now drops a tree whose checked-out tag is not the one requested. It fired on this build: dav1d, zimg and zvbi were re-cloned, FFmpeg was left alone. Worth knowing if you build this yourself and have a build/ directory from an earlier version.