From 23174512c03fe25d3dd3fd8ef5a1a09495e672a5 Mon Sep 17 00:00:00 2001 From: Mike Solar Date: Fri, 11 Sep 2026 19:37:27 +0800 Subject: [PATCH] codec: restore ffmpeg-next 9.0.0 (FFmpeg 8.1.2 stays) The 8.1.0 downgrade broke the build and the audio export: 8.1.0's typed video encoder has no set_color_primaries / set_color_transfer_characteristic, and its older audio path sent near-NaN samples into the AAC encoder (transcode_mp4 and the oak-task export test both failed). ffmpeg-next 9.0.0 supports ffmpeg_8_0/8_1 (the vcpkg pin of 8.1.2#3 is unaffected) and carries ffmpeg_9_0 cfg branches for the day FFmpeg 9 lands. --- Cargo.lock | 8 ++++---- crates/oak-audio/Cargo.toml | 2 +- crates/oak-codec/Cargo.toml | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0d9843666..1015c34d9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2332,9 +2332,9 @@ dependencies = [ [[package]] name = "ffmpeg-next" -version = "8.1.0" +version = "9.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7c4bd5ab1ac61f29c634df1175d350ded29cf74c3c6d4f7030431a5ae3c7d5d" +checksum = "6380599799e175191eb7ffe82c97f36a2a90a36cbc54c738a903e5287d7f516a" dependencies = [ "bitflags 2.13.1", "ffmpeg-sys-next", @@ -2343,9 +2343,9 @@ dependencies = [ [[package]] name = "ffmpeg-sys-next" -version = "8.1.0" +version = "9.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a314bc0e022a33a99567ed4bd2576bd58ffd8fcff7891c29194cfecc26a62547" +checksum = "9b939bf79dd5949412a4b81cfe21a07f48ea21b47fcbb5f57816c8c2de5ae30b" dependencies = [ "bindgen 0.72.1", "cc", diff --git a/crates/oak-audio/Cargo.toml b/crates/oak-audio/Cargo.toml index 7a4c70af9..bfefebb88 100644 --- a/crates/oak-audio/Cargo.toml +++ b/crates/oak-audio/Cargo.toml @@ -16,7 +16,7 @@ oak-codec = { path = "../oak-codec" } # ffmpeg_bridge library existed only to absorb FFmpeg API churn; the Rust # crate calls ffmpeg-next directly (same as oakcodec). The oak-ffmpeg-link # dependency above emits the transitive link flags of the static FFmpeg. -ffmpeg-next = "8" +ffmpeg-next = "9" # ASIO is intentionally not enabled: the asio-sys crate needs the proprietary # Steinberg ASIO SDK at link time, which CI and most dev machines do not have. diff --git a/crates/oak-codec/Cargo.toml b/crates/oak-codec/Cargo.toml index 8edb1b4c9..f59e0b568 100644 --- a/crates/oak-codec/Cargo.toml +++ b/crates/oak-codec/Cargo.toml @@ -25,6 +25,6 @@ oak-core = { path = "../oak-core" } # release/, and every such pairing is broken upstream # (9.0.0 -> FFmpeg 9.0 removed AVCodec fields; 8.1.0 -> FFmpeg 8.1 added # enum variants; 8.0.0 -> FFmpeg 8.0 renamed FF_PROFILE_*). -ffmpeg-next = { version = "8", features = ["static"] } +ffmpeg-next = { version = "9", features = ["static"] } # `std::error::Error` impls for the crate-internal error enum. thiserror = "2"