AGENTIC COMMONSAI industry briefings

繁中EN

TopicAI Coding & Developer ToolsPublished

All English articles

FFmpeg 9.0 'Lei': swscale Rewrite and Safer Defaults

Summary: FFmpeg 9.0, codename Lei, shipped on August 4, 2026 with an ABI break across all seven core libraries, requiring linked applications to be rebuilt. The release includes the long-running swscale rewrite with CPU and GPU backends and turns TLS peer-certificate verification on by default. Development has also moved to a Forgejo instance, where GitHub pull requests will be ignored.

FFmpeg shipped major version 9.0, codename “Lei,” on August 4, 2026, about four and a half months after 8.1 “Hoare.” The ABI break here is the real thing: all seven core libraries carry new version numbers (libavutil 61, libavcodec 63, libavformat 63, and the rest), so every application linked against them has to be rebuilt. By the numbers, the release brings in more than 2,200 commits from over 160 contributors, adding roughly 85,000 lines and removing 33,000. Jean-Baptiste Kempf’s write-up treats it as the release VLC 4 will be built on.

The swscale Rewrite, Years in the Making, Has Landed

Top of the bill is swscale’s rewrite, years in the making — the conversion code that nearly every pipeline runs into somewhere. Niklas Haas drove it with more than 300 commits of his own, while Ramiro Polla handled the ARM side. The new design takes a color conversion, breaks it into a list of elementary operations, and compiles those into kernel chains. Backends on offer include a C reference implementation, a memcpy path, x86 SIMD, AArch64 NEON and Vulkan SPIR-V, so a single conversion graph can execute on CPU or GPU. Exact 64-bit rational arithmetic replaces floating point internally, and the Vulkan backend honors SWS_BITEXACT as well. All of it still sits behind the SWS_UNSTABLE flag, which tells you how carefully the project is treading. PAL8 support came along for the ride.

New Decoding, Encoding, and HDR Capabilities

The feature list has real substance. Animated WebP is finally decodable: the ticket goes back to 2015, issue 4907, and its title was framed around the question of why only the first frame came out. The AAC decoder now copes with 960-sample frames for DAB+. NVENC picks up AV1 hierarchical B-frame references, 12-bit input, and Video Codec SDK 13.1 support. ProRes RAW becomes decodable through VideoToolbox and Vulkan. FFV1 gains lossless encoding of Bayer sensor data, plus a Vulkan GPU encoder and decoder — partly funded by the Sovereign Tech Fund. On the HDR front, a bitstream filter splits Dolby Vision Profile 7 enhancement layers, and SMPTE 2094-50 dynamic HDR metadata is supported. libavformat contributes a demuxer command API, first put to use for RTSP camera control, a shared: protocol built on cross-process memory mapping, LCEVC muxing as MP4 tracks, and IAMF dynamic parameters. Then there is the entry that is not important but is cool: a 1-bit 400x240 video encoder for the Playdate, introduced by its author in exactly those words.

Assembly work kept pace too. The last MMX code is gone from x86, mpegvideoenc’s remaining MMX routines having been ported to SSE2 and AVX2; ARM got a reworked NEON yuv2rgb; and RISC-V gained RVV implementations for HEVC and pixel operations.

Safer Defaults and a New Home for Development

Two of the changes reach everyone. TLS peer certificate verification now defaults to on — the old default-off behavior was security debt that drew criticism for years. The -vsync option is gone, replaced by -fps_mode. Shaders are compiled to SPIR-V at build time now, and hwcontext has picked up new pixel formats such as RGBAF16. The housekeeping reached the dead weight as well: the standalone CELT decoder, broken since 2014 and, in a maintainer’s words, missed by no one, has been dropped, together with Michael Niedermayer’s Sonic codecs from the early 2000s. The process changed too — the project’s home has moved to a Forgejo instance at code.ffmpeg.org, and it states plainly that GitHub pull requests will be ignored, so contributors who rely on the GitHub mirror need to use the official channels. An automated bug-finding bot landed nine hardening patches of its own.

What This Means for Developers

Maintainers of multimedia pipelines face an upgrade checklist in the near term: because the ABI broke, applications tied to prebuilt libraries have to wait for downstream rebuilds, and VLC 4 will follow the same version bumps. Longer term, the payoff is a cleaner swscale and a GPU path that actually works. The -re/-readrate throttling fix, now paced on the slowest stream, will quietly repair subtitle-starved restreams for anyone running 24/7 relays. Also worth tracking: DNN filters picked up an ONNX Runtime backend with CUDA and DirectML support, wiring local AI inference into FFmpeg’s filter graph — something for any team doing media processing to keep an eye on. None of this changes what FFmpeg is for; what it changes is how much of the modern GPU and AI stack the CLI can reach.

Sources

AGENTIC COMMONSOperated by PHLEGON LABS
ShareXEmail
Support us

Related reading

  1. Go 1.27 Lands: Generic Methods, json/v2, Post-Quantum TLS

    Released August 19, Go 1.27 adds generic methods, moves encoding/json onto the v2 implementation, brings ML-DSA signatures to TLS, and speeds small allocations.

    Developer Tools

  2. Haiku R1/beta6 Arrives: Two Years of Work After Beta5

    Two years after beta5, Haiku ships R1/beta6 in the project's 25th anniversary week: 530+ tickets resolved, official Firefox branding, NVMM virtualization for QEMU, and a Go port.

    Open Source

  3. DuckDB v2.0 Preview: Server Mode, New Parser, New Storage

    DuckDB v2.0 lands this fall: server mode, a new PEG-based SQL parser, storage format 2.0, asynchronous I/O, triggers, and 40x faster recursive queries.

    Developer Tools