FFmpeg 7.1 support (#74)

* Add new build-lib features

* Update CI to use 7.1

jrottenberg/ffmpeg does not have 7.1 yet

* Add libavcodec version for 7.1

* Add FF_API flags for 7.1

* Update crate versions, bump MSRV to 1.65

* Add new audio channel masks

* Add new AVColorSpace variants

* Add new AVFrameSideDataType variants

* Add new AVCodecID variants

* Add new AVPacketSideDataType variants
This commit is contained in:
FreezyLemon 2024-10-18 06:06:01 +02:00 committed by GitHub
parent fd44dd339b
commit 814f8b9464
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
12 changed files with 337 additions and 157 deletions

View File

@ -30,7 +30,15 @@ jobs:
strategy:
matrix:
ffmpeg_version:
["4.2", "4.3", "4.4", "5.0", "5.1", "6.0", "6.1", "7.0"]
- "4.2"
- "4.3"
- "4.4"
- "5.0"
- "5.1"
- "6.0"
- "6.1"
- "7.0"
- "7.1"
fail-fast: false
steps:
@ -45,9 +53,9 @@ jobs:
components: rustfmt, clippy
- uses: Swatinem/rust-cache@v2
with:
prefix-key: "v2-rust"
prefix-key: "v3-rust"
# Only save cache for one FFmpeg version
save-if: ${{ matrix.ffmpeg_version == '7.0' }}
save-if: ${{ matrix.ffmpeg_version == '7.1' }}
- name: Check format
run: cargo fmt -- --check
@ -108,7 +116,7 @@ jobs:
strategy:
matrix:
# GyanD builds don't go as far back as the Ubuntu builds
ffmpeg_version: ["4.4", "5.0", "5.1", "6.0", "6.1", "7.0"]
ffmpeg_version: ["4.4", "5.0", "5.1", "6.0", "6.1", "7.0", "7.1"]
fail-fast: false
env:
@ -138,8 +146,8 @@ jobs:
components: rustfmt, clippy
- uses: Swatinem/rust-cache@v2
with:
prefix-key: "v2-rust"
save-if: ${{ matrix.ffmpeg_version == '7.0' }}
prefix-key: "v3-rust"
save-if: ${{ matrix.ffmpeg_version == '7.1' }}
- name: Check format
run: cargo fmt -- --check
@ -167,8 +175,8 @@ jobs:
apt-get update
apt-get install -y --no-install-recommends clang curl pkg-config
# rust-version from Cargo.toml
- name: Install Rust 1.61.0
uses: dtolnay/rust-toolchain@1.61.0
- name: Install Rust 1.65.0
uses: dtolnay/rust-toolchain@1.65.0
- uses: Swatinem/rust-cache@v2
with:
prefix-key: "v2-rust"

View File

@ -8,6 +8,12 @@ version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
[[package]]
name = "adler2"
version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627"
[[package]]
name = "aho-corasick"
version = "1.1.3"
@ -25,9 +31,9 @@ checksum = "4aa90d7ce82d4be67b64039a3d588d38dbcc6736577de4a847025ce5b0c468d1"
[[package]]
name = "anyhow"
version = "1.0.83"
version = "1.0.89"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "25bdb32cbbdce2b519a9cd7df3a678443100e265d5e25ca763b7572a5104f5f3"
checksum = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6"
[[package]]
name = "arbitrary"
@ -48,15 +54,15 @@ dependencies = [
[[package]]
name = "arrayvec"
version = "0.7.4"
version = "0.7.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711"
checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50"
[[package]]
name = "autocfg"
version = "1.3.0"
version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"
checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26"
[[package]]
name = "av1-grain"
@ -83,11 +89,11 @@ dependencies = [
[[package]]
name = "bindgen"
version = "0.69.4"
version = "0.69.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a00dc851838a2120612785d195287475a3ac45514741da670b735818822129a0"
checksum = "271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088"
dependencies = [
"bitflags 2.5.0",
"bitflags 2.6.0",
"cexpr",
"clang-sys",
"itertools",
@ -115,21 +121,21 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
[[package]]
name = "bitflags"
version = "2.5.0"
version = "2.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de"
[[package]]
name = "bitstream-io"
version = "2.3.0"
version = "2.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7c12d1856e42f0d817a835fe55853957c85c8c8a470114029143d3f12671446e"
checksum = "b81e1519b0d82120d2fd469d5bfb2919a9361c48b02d82d04befc1cdd2002452"
[[package]]
name = "built"
version = "0.7.2"
version = "0.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "41bfbdb21256b87a8b5e80fab81a8eed158178e812fd7ba451907518b2742f16"
checksum = "236e6289eda5a812bc6b53c3b024039382a2895fbbeef2d748b2931546d392c4"
[[package]]
name = "bumpalo"
@ -139,9 +145,9 @@ checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c"
[[package]]
name = "bytemuck"
version = "1.15.0"
version = "1.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5d6d68c57235a3a081186990eca2867354726650f42f7516ca50c28d6281fd15"
checksum = "94bbb0ad554ad961ddc5da507a12a29b14e4ae5bda06b19f575a3e6079d2e2ae"
[[package]]
name = "byteorder"
@ -157,12 +163,13 @@ checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495"
[[package]]
name = "cc"
version = "1.0.94"
version = "1.1.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "17f6e324229dc011159fcc089755d1e2e216a90d43a7dea6853ca740b84f35e7"
checksum = "2e80e3b6a3ab07840e1cae9b0666a63970dc28e8ed5ffbcdacbfc760c281bfc1"
dependencies = [
"jobserver",
"libc",
"shlex",
]
[[package]]
@ -202,9 +209,9 @@ dependencies = [
[[package]]
name = "clang-sys"
version = "1.7.0"
version = "1.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "67523a3b4be3ce1989d607a828d036249522dd9c1c8de7f4dd2dae43a37369d1"
checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4"
dependencies = [
"glob",
"libc",
@ -219,9 +226,9 @@ checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b"
[[package]]
name = "crc32fast"
version = "1.4.0"
version = "1.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa"
checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3"
dependencies = [
"cfg-if",
]
@ -247,9 +254,9 @@ dependencies = [
[[package]]
name = "crossbeam-utils"
version = "0.8.19"
version = "0.8.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80"
[[package]]
name = "crunchy"
@ -259,9 +266,9 @@ checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"
[[package]]
name = "either"
version = "1.11.0"
version = "1.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a47c1c47d2f5964e29c61246e81db715514cd532db6b5116a25ea3c03d6780a2"
checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0"
[[package]]
name = "equivalent"
@ -279,7 +286,7 @@ dependencies = [
"flume",
"half",
"lebe",
"miniz_oxide",
"miniz_oxide 0.7.4",
"rayon-core",
"smallvec",
"zune-inflate",
@ -287,16 +294,16 @@ dependencies = [
[[package]]
name = "fdeflate"
version = "0.3.4"
version = "0.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4f9bfee30e4dedf0ab8b422f03af778d9612b63f502710fc500a334ebe2de645"
checksum = "d8090f921a24b04994d9929e204f50b498a33ea6ba559ffaa05e04f7ee7fb5ab"
dependencies = [
"simd-adler32",
]
[[package]]
name = "ffmpeg-sys-the-third"
version = "2.0.0+ffmpeg-7.0"
version = "2.1.0+ffmpeg-7.1"
dependencies = [
"bindgen",
"cc",
@ -308,9 +315,9 @@ dependencies = [
[[package]]
name = "ffmpeg-the-third"
version = "2.0.1+ffmpeg-7.0"
version = "2.1.0+ffmpeg-7.1"
dependencies = [
"bitflags 2.5.0",
"bitflags 2.6.0",
"ffmpeg-sys-the-third",
"image",
"libc",
@ -319,12 +326,12 @@ dependencies = [
[[package]]
name = "flate2"
version = "1.0.30"
version = "1.0.34"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae"
checksum = "a1b589b4dc103969ad3cf85c950899926ec64300a1a46d76c03a6072957036f0"
dependencies = [
"crc32fast",
"miniz_oxide",
"miniz_oxide 0.8.0",
]
[[package]]
@ -375,9 +382,9 @@ dependencies = [
[[package]]
name = "hashbrown"
version = "0.14.5"
version = "0.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
checksum = "1e087f84d4f86bf4b218b927129862374b72199ae7d8657835f1e89000eea4fb"
[[package]]
name = "heck"
@ -387,12 +394,12 @@ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
[[package]]
name = "image"
version = "0.25.1"
version = "0.25.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fd54d660e773627692c524beaad361aca785a4f9f5730ce91f42aabe5bce3d11"
checksum = "99314c8a2152b8ddb211f924cdae532d8c5e4c8bb54728e12fff1b0cd5963a10"
dependencies = [
"bytemuck",
"byteorder",
"byteorder-lite",
"color_quant",
"exr",
"gif",
@ -410,12 +417,12 @@ dependencies = [
[[package]]
name = "image-webp"
version = "0.1.2"
version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d730b085583c4d789dfd07fdcf185be59501666a90c97c40162b37e4fdad272d"
checksum = "f79afb8cbee2ef20f59ccd477a218c12a93943d075b492015ecb1bb81f8ee904"
dependencies = [
"byteorder-lite",
"thiserror",
"quick-error",
]
[[package]]
@ -426,9 +433,9 @@ checksum = "44feda355f4159a7c757171a77de25daf6411e217b4cabd03bd6650690468126"
[[package]]
name = "indexmap"
version = "2.2.6"
version = "2.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26"
checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da"
dependencies = [
"equivalent",
"hashbrown",
@ -456,9 +463,9 @@ dependencies = [
[[package]]
name = "jobserver"
version = "0.1.31"
version = "0.1.32"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d2b099aaa34a9751c5bf0878add70444e1ed2dd73f347be99003d4577277de6e"
checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0"
dependencies = [
"libc",
]
@ -471,9 +478,9 @@ checksum = "f5d4a7da358eff58addd2877a45865158f0d78c911d43a5784ceb7bbf52833b0"
[[package]]
name = "lazy_static"
version = "1.4.0"
version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
[[package]]
name = "lazycell"
@ -489,9 +496,9 @@ checksum = "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8"
[[package]]
name = "libc"
version = "0.2.154"
version = "0.2.159"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ae743338b92ff9146ce83992f766a31066a91a8c84a45e0e9f21e7cf6de6d346"
checksum = "561d97a539a36e26a9a5fad1ea11a3039a67714694aaa379433e580854bc3dc5"
[[package]]
name = "libfuzzer-sys"
@ -506,9 +513,9 @@ dependencies = [
[[package]]
name = "libloading"
version = "0.8.3"
version = "0.8.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19"
checksum = "4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4"
dependencies = [
"cfg-if",
"windows-targets",
@ -526,9 +533,9 @@ dependencies = [
[[package]]
name = "log"
version = "0.4.21"
version = "0.4.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24"
[[package]]
name = "loop9"
@ -546,14 +553,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8ea1f30cedd69f0a2954655f7188c6a834246d2bcf1e315e2ac40c4b24dc9519"
dependencies = [
"cfg-if",
"rayon",
]
[[package]]
name = "memchr"
version = "2.7.2"
version = "2.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d"
checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"
[[package]]
name = "minimal-lexical"
@ -563,11 +569,20 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
[[package]]
name = "miniz_oxide"
version = "0.7.2"
version = "0.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7"
checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08"
dependencies = [
"adler",
]
[[package]]
name = "miniz_oxide"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1"
dependencies = [
"adler2",
"simd-adler32",
]
@ -595,9 +610,9 @@ checksum = "0676bb32a98c1a483ce53e500a81ad9c3d5b3f7c920c28c24e9cb0980d0b5bc8"
[[package]]
name = "num-bigint"
version = "0.4.5"
version = "0.4.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c165a9ab64cf766f73521c0dd2cfdff64f488b8f0b3e621face3462d3db536d7"
checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9"
dependencies = [
"num-integer",
"num-traits",
@ -645,9 +660,9 @@ dependencies = [
[[package]]
name = "once_cell"
version = "1.19.0"
version = "1.20.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775"
[[package]]
name = "paste"
@ -657,34 +672,37 @@ checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a"
[[package]]
name = "pkg-config"
version = "0.3.30"
version = "0.3.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2"
[[package]]
name = "png"
version = "0.17.13"
version = "0.17.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "06e4b0d3d1312775e782c86c91a111aa1f910cbb65e1337f9975b5f9a554b5e1"
checksum = "52f9d46a34a05a6a57566bc2bfae066ef07585a6e3fa30fbbdff5936380623f0"
dependencies = [
"bitflags 1.3.2",
"crc32fast",
"fdeflate",
"flate2",
"miniz_oxide",
"miniz_oxide 0.8.0",
]
[[package]]
name = "ppv-lite86"
version = "0.2.17"
version = "0.2.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04"
dependencies = [
"zerocopy",
]
[[package]]
name = "proc-macro2"
version = "1.0.82"
version = "1.0.87"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b"
checksum = "b3e4daa0dcf6feba26f985457cdf104d4b4256fc5a09547140f3631bb076b19a"
dependencies = [
"unicode-ident",
]
@ -725,9 +743,9 @@ checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3"
[[package]]
name = "quote"
version = "1.0.36"
version = "1.0.37"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af"
dependencies = [
"proc-macro2",
]
@ -799,16 +817,15 @@ dependencies = [
[[package]]
name = "ravif"
version = "0.11.5"
version = "0.11.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bc13288f5ab39e6d7c9d501759712e6969fcc9734220846fc9ed26cae2cc4234"
checksum = "a8f0bfd976333248de2078d350bfdf182ff96e168a24d23d2436cef320dd4bdd"
dependencies = [
"avif-serialize",
"imgref",
"loop9",
"quick-error",
"rav1e",
"rayon",
"rgb",
]
@ -834,9 +851,9 @@ dependencies = [
[[package]]
name = "regex"
version = "1.9.6"
version = "1.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ebee201405406dbf528b8b672104ae6d6d63e6d118cb10e4d51abbc7b58044ff"
checksum = "38200e5ee88914975b69f657f0801b6f6dccafd44fd9326302a4aaeecfacb1d8"
dependencies = [
"aho-corasick",
"memchr",
@ -846,9 +863,9 @@ dependencies = [
[[package]]
name = "regex-automata"
version = "0.3.9"
version = "0.4.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "59b23e92ee4318893fa3fe3e6fb365258efbfe6ac6ab30f090cdcbb7aa37efa9"
checksum = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3"
dependencies = [
"aho-corasick",
"memchr",
@ -857,15 +874,15 @@ dependencies = [
[[package]]
name = "regex-syntax"
version = "0.7.5"
version = "0.8.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da"
checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c"
[[package]]
name = "rgb"
version = "0.8.37"
version = "0.8.50"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "05aaa8004b64fd573fc9d002f4e632d51ad4f026c2b5ba95fcb6c2f32c2c47d8"
checksum = "57397d16646700483b67d2dd6511d79318f9d057fdbd21a4066aeac8b41d310a"
dependencies = [
"bytemuck",
]
@ -884,18 +901,18 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
[[package]]
name = "serde"
version = "1.0.201"
version = "1.0.210"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "780f1cebed1629e4753a1a38a3c72d30b97ec044f0aef68cb26650a3c5cf363c"
checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
version = "1.0.201"
version = "1.0.210"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c5e405930b9796f1c00bee880d03fc7e0bb4b9a11afc776885ffe84320da2865"
checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f"
dependencies = [
"proc-macro2",
"quote",
@ -904,9 +921,9 @@ dependencies = [
[[package]]
name = "serde_spanned"
version = "0.6.5"
version = "0.6.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1"
checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1"
dependencies = [
"serde",
]
@ -949,9 +966,9 @@ dependencies = [
[[package]]
name = "syn"
version = "2.0.61"
version = "2.0.79"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9"
checksum = "89132cd0bf050864e1d38dc3bbc07a0eb8e7530af26344d3d2bbbef83499f590"
dependencies = [
"proc-macro2",
"quote",
@ -973,24 +990,24 @@ dependencies = [
[[package]]
name = "target-lexicon"
version = "0.12.14"
version = "0.12.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f"
checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1"
[[package]]
name = "thiserror"
version = "1.0.60"
version = "1.0.64"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "579e9083ca58dd9dcf91a9923bb9054071b9ebbd800b342194c9feb0ee89fc18"
checksum = "d50af8abc119fb8bb6dbabcfa89656f46f84aa0ac7688088608076ad2b459a84"
dependencies = [
"thiserror-impl",
]
[[package]]
name = "thiserror-impl"
version = "1.0.60"
version = "1.0.64"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e2470041c06ec3ac1ab38d0356a6119054dedaea53e12fbefc0de730a1c08524"
checksum = "08904e7672f5eb876eaaf87e0ce17857500934f4981c4a0ab2b4aa98baac7fc3"
dependencies = [
"proc-macro2",
"quote",
@ -1010,9 +1027,9 @@ dependencies = [
[[package]]
name = "toml"
version = "0.8.12"
version = "0.8.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e9dd1545e8208b4a5af1aa9bbd0b4cf7e9ea08fabc5d0a5c67fcaafa17433aa3"
checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e"
dependencies = [
"serde",
"serde_spanned",
@ -1022,18 +1039,18 @@ dependencies = [
[[package]]
name = "toml_datetime"
version = "0.6.5"
version = "0.6.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41"
dependencies = [
"serde",
]
[[package]]
name = "toml_edit"
version = "0.22.12"
version = "0.22.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d3328d4f68a705b2a4498da1d580585d39a6510f98318a2cec3018a7ec61ddef"
checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5"
dependencies = [
"indexmap",
"serde",
@ -1044,9 +1061,9 @@ dependencies = [
[[package]]
name = "unicode-ident"
version = "1.0.12"
version = "1.0.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe"
[[package]]
name = "v_frame"
@ -1079,19 +1096,20 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
[[package]]
name = "wasm-bindgen"
version = "0.2.92"
version = "0.2.94"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8"
checksum = "ef073ced962d62984fb38a36e5fdc1a2b23c9e0e1fa0689bb97afa4202ef6887"
dependencies = [
"cfg-if",
"once_cell",
"wasm-bindgen-macro",
]
[[package]]
name = "wasm-bindgen-backend"
version = "0.2.92"
version = "0.2.94"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da"
checksum = "c4bfab14ef75323f4eb75fa52ee0a3fb59611977fd3240da19b2cf36ff85030e"
dependencies = [
"bumpalo",
"log",
@ -1104,9 +1122,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro"
version = "0.2.92"
version = "0.2.94"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726"
checksum = "a7bec9830f60924d9ceb3ef99d55c155be8afa76954edffbb5936ff4509474e7"
dependencies = [
"quote",
"wasm-bindgen-macro-support",
@ -1114,9 +1132,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro-support"
version = "0.2.92"
version = "0.2.94"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
checksum = "4c74f6e152a76a2ad448e223b0fc0b6b5747649c3d769cc6bf45737bf97d0ed6"
dependencies = [
"proc-macro2",
"quote",
@ -1127,9 +1145,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-shared"
version = "0.2.92"
version = "0.2.94"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"
checksum = "a42f6c679374623f295a8623adfe63d9284091245c3504bde47c17a3ce2777d9"
[[package]]
name = "weezl"
@ -1139,9 +1157,9 @@ checksum = "53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082"
[[package]]
name = "windows-targets"
version = "0.52.5"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb"
checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
dependencies = [
"windows_aarch64_gnullvm",
"windows_aarch64_msvc",
@ -1155,61 +1173,82 @@ dependencies = [
[[package]]
name = "windows_aarch64_gnullvm"
version = "0.52.5"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263"
checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
[[package]]
name = "windows_aarch64_msvc"
version = "0.52.5"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6"
checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
[[package]]
name = "windows_i686_gnu"
version = "0.52.5"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670"
checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
[[package]]
name = "windows_i686_gnullvm"
version = "0.52.5"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9"
checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
[[package]]
name = "windows_i686_msvc"
version = "0.52.5"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf"
checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
[[package]]
name = "windows_x86_64_gnu"
version = "0.52.5"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9"
checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
[[package]]
name = "windows_x86_64_gnullvm"
version = "0.52.5"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596"
checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
[[package]]
name = "windows_x86_64_msvc"
version = "0.52.5"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0"
checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
[[package]]
name = "winnow"
version = "0.6.8"
version = "0.6.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c3c52e9c97a68071b23e836c9380edae937f17b9c4667bd021973efc689f618d"
checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b"
dependencies = [
"memchr",
]
[[package]]
name = "zerocopy"
version = "0.7.35"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0"
dependencies = [
"byteorder",
"zerocopy-derive",
]
[[package]]
name = "zerocopy-derive"
version = "0.7.35"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "zune-core"
version = "0.4.12"
@ -1227,9 +1266,9 @@ dependencies = [
[[package]]
name = "zune-jpeg"
version = "0.4.11"
version = "0.4.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ec866b44a2a1fd6133d363f073ca1b179f438f99e7e5bfb1e33f7181facfe448"
checksum = "16099418600b4d8f028622f73ff6e3deaabdff330fb9a2a131dea781ee8b0768"
dependencies = [
"zune-core",
]

View File

@ -1,6 +1,6 @@
[package]
name = "ffmpeg-the-third"
version = "2.0.1+ffmpeg-7.0"
version = "2.1.0+ffmpeg-7.1"
edition = "2021"
authors = ["meh. <meh@schizofreni.co>", "Zhiming Wang <i@zhimingwang.org>"]
@ -16,7 +16,7 @@ categories = ["multimedia"]
include = ["LICENSE", "build.rs", "src/"]
# When changing MSRV: Also update build.yml and README.md
rust-version = "1.61.0"
rust-version = "1.65.0"
[dependencies]
libc = "0.2"
@ -27,7 +27,7 @@ version = "0.25"
optional = true
[dependencies.ffmpeg-sys-the-third]
version = "2.0.0"
version = "2.1.0"
default-features = false
path = "ffmpeg-sys-the-third"

View File

@ -20,7 +20,7 @@ _See [CHANGELOG.md](CHANGELOG.md) for other information on version upgrades._
## Minimum supported Rust version (MSRV)
Both `ffmpeg-the-third` and `ffmpeg-sys-the-third` currently require a Rust version of 1.61.0 or higher. Increases in MSRV will result in a semver MINOR version increase.
Both `ffmpeg-the-third` and `ffmpeg-sys-the-third` currently require a Rust version of 1.65.0 or higher. Increases in MSRV will result in a semver MINOR version increase.
If you are having issues compiling this crate on your version of Rust, there are two tools you can use to help find MSRV-compatible dependency versions:

View File

@ -1,6 +1,6 @@
[package]
name = "ffmpeg-sys-the-third"
version = "2.0.0+ffmpeg-7.0"
version = "2.1.0+ffmpeg-7.1"
links = "ffmpeg"
edition = "2021"
@ -19,7 +19,7 @@ keywords = ["audio", "video"]
categories = ["multimedia", "external-ffi-bindings"]
# When changing MSRV: Also update build.yml and README.md
rust-version = "1.61.0"
rust-version = "1.65.0"
[lib]
# Disable doctests as a workaround for https://github.com/rust-lang/rust-bindgen/issues/1313
@ -98,35 +98,48 @@ build-lib-vmaf = ["build"]
# encoders/decoders
build-lib-aacplus = ["build"]
build-lib-celt = ["build"]
build-lib-codec2 = ["build"]
build-lib-dav1d = ["build"]
build-lib-davs2 = ["build"]
build-lib-dcadec = ["build"]
build-lib-faac = ["build"]
build-lib-fdk-aac = ["build"]
build-lib-gsm = ["build"]
build-lib-ilbc = ["build"]
build-lib-jxl = ["build"]
build-lib-kvazaar = ["build"]
build-lib-lc3 = ["build"]
build-lib-lcevc-dec = ["build"]
build-lib-mp3lame = ["build"]
build-lib-opencore-amrnb = ["build"]
build-lib-opencore-amrwb = ["build"]
build-lib-openh264 = ["build"]
build-lib-openjpeg = ["build"]
build-lib-opus = ["build"]
build-lib-rav1e = ["build"]
build-lib-schroedinger = ["build"]
build-lib-shine = ["build"]
build-lib-snappy = ["build"]
build-lib-speex = ["build"]
build-lib-stagefright-h264 = ["build"]
build-lib-svtav1 = ["build"]
build-lib-theora = ["build"]
build-lib-twolame = ["build"]
build-lib-uavs3d = ["build"]
build-lib-utvideo = ["build"]
build-lib-vo-aacenc = ["build"]
build-lib-vo-amrwbenc = ["build"]
build-lib-vorbis = ["build"]
build-lib-vpx = ["build"]
build-lib-vvenc = ["build"]
build-lib-wavpack = ["build"]
build-lib-webp = ["build"]
build-lib-x264 = ["build"]
build-lib-x265 = ["build"]
build-lib-xeve = ["build"]
build-lib-xevd = ["build"]
build-lib-xavs = ["build"]
build-lib-xavs2 = ["build"]
build-lib-avs = ["build"]
build-lib-xvid = ["build"]

View File

@ -121,6 +121,9 @@ static AVUTIL_FEATURES: &[AVFeature] = &[
AVFeature::new("PALETTE_HAS_CHANGED"),
AVFeature::new("VULKAN_CONTIGUOUS_MEMORY"),
AVFeature::new("H274_FILM_GRAIN_VCS"),
AVFeature::new("MOD_UINTP2"),
AVFeature::new("RISCV_FD_ZBA"),
AVFeature::new("VULKAN_FIXED_QUEUES"),
];
static AVCODEC_FEATURES: &[AVFeature] = &[
@ -209,6 +212,7 @@ static AVCODEC_FEATURES: &[AVFeature] = &[
AVFeature::new("AVCODEC_CLOSE"),
AVFeature::new("BUFFER_MIN_SIZE"),
AVFeature::new("VDPAU_ALLOC_GET_SET"),
AVFeature::new("QUALITY_FACTOR"),
];
static AVFORMAT_FEATURES: &[AVFeature] = &[
@ -231,6 +235,7 @@ static AVFORMAT_FEATURES: &[AVFeature] = &[
AVFeature::new("ALLOW_FLUSH"),
AVFeature::new("AVSTREAM_SIDE_DATA"),
AVFeature::new("GET_DUR_ESTIMATE_METHOD"),
AVFeature::new("INTERNAL_TIMING"),
];
static AVDEVICE_FEATURES: &[AVFeature] = &[
@ -484,13 +489,18 @@ static EXTERNAL_BUILD_LIBS: &[(&str, &str)] = &[
// Encoders/decoders
("AACPLUS", "libaacplus"),
("CELT", "libcelt"),
("DCADEC", "libdcadec"),
("CODEC2", "libcodec2"),
("DAV1D", "libdav1d"),
("DAVS2", "libdavs2"),
("DCADEC", "libdcadec"),
("FAAC", "libfaac"),
("FDK_AAC", "libfdk-aac"),
("GSM", "libgsm"),
("ILBC", "libilbc"),
("VAZAAR", "libvazaar"),
("JXL", "libjxl"),
("KVAZAAR", "libkvazaar"),
("LC3", "liblc3"),
("LCEVC_DEC", "liblcevc-dec"),
("MP3LAME", "libmp3lame"),
("OPENCORE_AMRNB", "libopencore-amrnb"),
("OPENCORE_AMRWB", "libopencore-amrwb"),
@ -498,22 +508,30 @@ static EXTERNAL_BUILD_LIBS: &[(&str, &str)] = &[
("OPENH265", "libopenh265"),
("OPENJPEG", "libopenjpeg"),
("OPUS", "libopus"),
("RAV1E", "librav1e"),
("SCHROEDINGER", "libschroedinger"),
("SHINE", "libshine"),
("SNAPPY", "libsnappy"),
("SPEEX", "libspeex"),
("STAGEFRIGHT_H264", "libstagefright-h264"),
("SVTAV1", "libsvtav1"),
("THEORA", "libtheora"),
("TWOLAME", "libtwolame"),
("UAVS3D", "libuavs3d"),
("UTVIDEO", "libutvideo"),
("VO_AACENC", "libvo-aacenc"),
("VO_AMRWBENC", "libvo-amrwbenc"),
("VORBIS", "libvorbis"),
("VPX", "libvpx"),
("VVENC", "libvvenc"),
("WAVPACK", "libwavpack"),
("WEBP", "libwebp"),
("X264", "libx264"),
("X265", "libx265"),
("XEVE", "libxeve"),
("XEVD", "libxevd"),
("XAVS", "libxavs"),
("XAVS2", "libxavs2"),
("AVS", "libavs"),
("XVID", "libxvid"),
// Protocols
@ -837,6 +855,7 @@ fn check_features(include_paths: &[PathBuf]) {
("ffmpeg_6_0", 60, 3),
("ffmpeg_6_1", 60, 31),
("ffmpeg_7_0", 61, 3),
("ffmpeg_7_1", 61, 19),
];
let lavc_version = *versions

View File

@ -137,6 +137,15 @@ pub const AV_CH_BOTTOM_FRONT_CENTER: u64 = 1 << (AV_CHAN_BOTTOM_FRONT_CENTER as
pub const AV_CH_BOTTOM_FRONT_LEFT: u64 = 1 << (AV_CHAN_BOTTOM_FRONT_LEFT as i32);
pub const AV_CH_BOTTOM_FRONT_RIGHT: u64 = 1 << (AV_CHAN_BOTTOM_FRONT_RIGHT as i32);
#[cfg(feature = "ffmpeg_7_1")]
pub const AV_CH_SIDE_SURROUND_LEFT: u64 = 1 << (AV_CHAN_SIDE_SURROUND_LEFT as i32);
#[cfg(feature = "ffmpeg_7_1")]
pub const AV_CH_SIDE_SURROUND_RIGHT: u64 = 1 << (AV_CHAN_SIDE_SURROUND_RIGHT as i32);
#[cfg(feature = "ffmpeg_7_1")]
pub const AV_CH_TOP_SURROUND_LEFT: u64 = 1 << (AV_CHAN_TOP_SURROUND_LEFT as i32);
#[cfg(feature = "ffmpeg_7_1")]
pub const AV_CH_TOP_SURROUND_RIGHT: u64 = 1 << (AV_CHAN_TOP_SURROUND_RIGHT as i32);
// Audio channel layouts
pub const AV_CH_LAYOUT_MONO: u64 = AV_CH_FRONT_CENTER;
pub const AV_CH_LAYOUT_STEREO: u64 = AV_CH_FRONT_LEFT | AV_CH_FRONT_RIGHT;

View File

@ -644,8 +644,12 @@ pub enum Id {
OSQ,
#[cfg(feature = "ffmpeg_7_0")]
QOA,
#[cfg(feature = "ffmpeg_7_1")]
LC3,
#[cfg(feature = "ffmpeg_6_1")]
SMPTE_2038,
#[cfg(feature = "ffmpeg_7_1")]
LCEVC,
}
impl Id {
@ -1294,8 +1298,12 @@ impl From<AVCodecID> for Id {
AV_CODEC_ID_OSQ => Id::OSQ,
#[cfg(feature = "ffmpeg_7_0")]
AV_CODEC_ID_QOA => Id::QOA,
#[cfg(feature = "ffmpeg_7_1")]
AV_CODEC_ID_LC3 => Id::LC3,
#[cfg(feature = "ffmpeg_6_1")]
AV_CODEC_ID_SMPTE_2038 => Id::SMPTE_2038,
#[cfg(feature = "ffmpeg_7_1")]
AV_CODEC_ID_LCEVC => Id::LCEVC,
#[cfg(feature = "non-exhaustive-enums")]
_ => unimplemented!(),
@ -1938,8 +1946,12 @@ impl From<Id> for AVCodecID {
Id::OSQ => AV_CODEC_ID_OSQ,
#[cfg(feature = "ffmpeg_7_0")]
Id::QOA => AV_CODEC_ID_QOA,
#[cfg(feature = "ffmpeg_7_1")]
Id::LC3 => AV_CODEC_ID_LC3,
#[cfg(feature = "ffmpeg_6_1")]
Id::SMPTE_2038 => AV_CODEC_ID_SMPTE_2038,
#[cfg(feature = "ffmpeg_7_1")]
Id::LCEVC => AV_CODEC_ID_LCEVC,
}
}
}

View File

@ -63,6 +63,11 @@ pub enum Type {
IAMF_RECON_GAIN_INFO_PARAM,
#[cfg(feature = "ffmpeg_7_0")]
AMBIENT_VIEWING_ENVIRONMENT,
#[cfg(feature = "ffmpeg_7_1")]
FrameCropping,
#[cfg(feature = "ffmpeg_7_1")]
LCEVC,
}
impl From<AVPacketSideDataType> for Type {
@ -122,6 +127,11 @@ impl From<AVPacketSideDataType> for Type {
#[cfg(feature = "ffmpeg_7_0")]
AV_PKT_DATA_AMBIENT_VIEWING_ENVIRONMENT => Type::AMBIENT_VIEWING_ENVIRONMENT,
#[cfg(feature = "ffmpeg_7_1")]
AV_PKT_DATA_FRAME_CROPPING => Type::FrameCropping,
#[cfg(feature = "ffmpeg_7_1")]
AV_PKT_DATA_LCEVC => Type::LCEVC,
#[cfg(feature = "non-exhaustive-enums")]
_ => unimplemented!(),
}
@ -184,6 +194,11 @@ impl From<Type> for AVPacketSideDataType {
Type::IAMF_RECON_GAIN_INFO_PARAM => AV_PKT_DATA_IAMF_RECON_GAIN_INFO_PARAM,
#[cfg(feature = "ffmpeg_7_0")]
Type::AMBIENT_VIEWING_ENVIRONMENT => AV_PKT_DATA_AMBIENT_VIEWING_ENVIRONMENT,
#[cfg(feature = "ffmpeg_7_1")]
Type::FrameCropping => AV_PKT_DATA_FRAME_CROPPING,
#[cfg(feature = "ffmpeg_7_1")]
Type::LCEVC => AV_PKT_DATA_LCEVC,
}
}
}

View File

@ -40,6 +40,15 @@ pub enum Channel {
BottomFrontLeft,
BottomFrontRight,
#[cfg(feature = "ffmpeg_7_1")]
SideSurroundLeft,
#[cfg(feature = "ffmpeg_7_1")]
SideSurroundRight,
#[cfg(feature = "ffmpeg_7_1")]
TopSurroundLeft,
#[cfg(feature = "ffmpeg_7_1")]
TopSurroundRight,
/// Channel is empty and can be safely skipped.
Unused,
@ -142,6 +151,16 @@ impl From<AVChannel> for Channel {
AV_CHAN_BOTTOM_FRONT_CENTER => BottomFrontCenter,
AV_CHAN_BOTTOM_FRONT_LEFT => BottomFrontLeft,
AV_CHAN_BOTTOM_FRONT_RIGHT => BottomFrontRight,
#[cfg(feature = "ffmpeg_7_1")]
AV_CHAN_SIDE_SURROUND_LEFT => SideSurroundLeft,
#[cfg(feature = "ffmpeg_7_1")]
AV_CHAN_SIDE_SURROUND_RIGHT => SideSurroundRight,
#[cfg(feature = "ffmpeg_7_1")]
AV_CHAN_TOP_SURROUND_LEFT => TopSurroundLeft,
#[cfg(feature = "ffmpeg_7_1")]
AV_CHAN_TOP_SURROUND_RIGHT => TopSurroundRight,
AV_CHAN_UNUSED => Unused,
AV_CHAN_UNKNOWN => Unknown,
AV_CHAN_AMBISONIC_BASE => AmbisonicBase,
@ -190,6 +209,16 @@ impl From<Channel> for AVChannel {
BottomFrontCenter => AV_CHAN_BOTTOM_FRONT_CENTER,
BottomFrontLeft => AV_CHAN_BOTTOM_FRONT_LEFT,
BottomFrontRight => AV_CHAN_BOTTOM_FRONT_RIGHT,
#[cfg(feature = "ffmpeg_7_1")]
SideSurroundLeft => AV_CHAN_SIDE_SURROUND_LEFT,
#[cfg(feature = "ffmpeg_7_1")]
SideSurroundRight => AV_CHAN_SIDE_SURROUND_RIGHT,
#[cfg(feature = "ffmpeg_7_1")]
TopSurroundLeft => AV_CHAN_TOP_SURROUND_LEFT,
#[cfg(feature = "ffmpeg_7_1")]
TopSurroundRight => AV_CHAN_TOP_SURROUND_RIGHT,
Unused => AV_CHAN_UNUSED,
Unknown => AV_CHAN_UNKNOWN,
AmbisonicBase => AV_CHAN_AMBISONIC_BASE,

View File

@ -25,6 +25,13 @@ pub enum Space {
ChromaDerivedNCL,
ChromaDerivedCL,
ICTCP,
#[cfg(feature = "ffmpeg_7_1")]
IPTC2,
#[cfg(feature = "ffmpeg_7_1")]
YCGCORE,
#[cfg(feature = "ffmpeg_7_1")]
YCGCORO,
}
impl Space {
@ -63,6 +70,13 @@ impl From<AVColorSpace> for Space {
AVCOL_SPC_CHROMA_DERIVED_CL => Space::ChromaDerivedCL,
AVCOL_SPC_ICTCP => Space::ICTCP,
#[cfg(feature = "ffmpeg_7_1")]
AVCOL_SPC_IPT_C2 => Space::IPTC2,
#[cfg(feature = "ffmpeg_7_1")]
AVCOL_SPC_YCGCO_RE => Space::YCGCORE,
#[cfg(feature = "ffmpeg_7_1")]
AVCOL_SPC_YCGCO_RO => Space::YCGCORO,
#[cfg(feature = "non-exhaustive-enums")]
_ => unimplemented!(),
}
@ -88,6 +102,13 @@ impl From<Space> for AVColorSpace {
Space::ChromaDerivedNCL => AVCOL_SPC_CHROMA_DERIVED_NCL,
Space::ChromaDerivedCL => AVCOL_SPC_CHROMA_DERIVED_CL,
Space::ICTCP => AVCOL_SPC_ICTCP,
#[cfg(feature = "ffmpeg_7_1")]
Space::IPTC2 => AVCOL_SPC_IPT_C2,
#[cfg(feature = "ffmpeg_7_1")]
Space::YCGCORE => AVCOL_SPC_YCGCO_RE,
#[cfg(feature = "ffmpeg_7_1")]
Space::YCGCORO => AVCOL_SPC_YCGCO_RO,
}
}
}

View File

@ -64,6 +64,11 @@ pub enum Type {
#[cfg(feature = "ffmpeg_6_1")]
VIDEO_HINT,
#[cfg(feature = "ffmpeg_7_1")]
LCEVC,
#[cfg(feature = "ffmpeg_7_1")]
ViewId,
}
impl Type {
@ -130,6 +135,11 @@ impl From<AVFrameSideDataType> for Type {
#[cfg(feature = "ffmpeg_6_1")]
AV_FRAME_DATA_VIDEO_HINT => Type::VIDEO_HINT,
#[cfg(feature = "ffmpeg_7_1")]
AV_FRAME_DATA_LCEVC => Type::LCEVC,
#[cfg(feature = "ffmpeg_7_1")]
AV_FRAME_DATA_VIEW_ID => Type::ViewId,
#[cfg(feature = "non-exhaustive-enums")]
_ => unimplemented!(),
}
@ -190,6 +200,11 @@ impl From<Type> for AVFrameSideDataType {
#[cfg(feature = "ffmpeg_6_1")]
Type::VIDEO_HINT => AV_FRAME_DATA_VIDEO_HINT,
#[cfg(feature = "ffmpeg_7_1")]
Type::LCEVC => AV_FRAME_DATA_LCEVC,
#[cfg(feature = "ffmpeg_7_1")]
Type::ViewId => AV_FRAME_DATA_VIEW_ID,
}
}
}