diff options
author | Jan Beich <jbeich@FreeBSD.org> | 2024-02-16 12:24:12 +0100 |
---|---|---|
committer | Jan Beich <jbeich@FreeBSD.org> | 2024-05-20 09:02:22 +0200 |
commit | 0bfdf0bed66b6f5848a55f36da506a8d63f5c74a (patch) | |
tree | 648db8bb8124f100cc8fe7cc53d79fb6530be8fa /multimedia/wl-screenrec/files/patch-ffmpeg7 | |
parent | sysutils/elfx86exts: new port (diff) |
multimedia/wl-screenrec: unbreak build with ffmpeg 7.0
error[E0425]: cannot find value `AV_CH_LAYOUT_NATIVE` in this scope
--> cargo-crates/ffmpeg-next-6.1.1/src/util/channel_layout.rs:31:39
|
31 | const NATIVE = AV_CH_LAYOUT_NATIVE;
| ^^^^^^^^^^^^^^^^^^^ help: a constant with a similar name exists: `AV_CH_LAYOUT_STEREO`
|
::: ../target/x86_64-unknown-freebsd/release/build/ffmpeg-sys-next-71257b07c8bd5e07/out/bindings.rs:20795:1
|
20795 | pub const AV_CH_LAYOUT_STEREO: libc::c_ulonglong = 3;
| ------------------------------------------------ similarly named constant `AV_CH_LAYOUT_STEREO` defined here
error[E0425]: cannot find value `AV_CH_LAYOUT_3POINT1POINT2` in this scope
--> cargo-crates/ffmpeg-next-6.1.1/src/util/channel_layout.rs:63:37
|
63 | const _3POINT1POINT2 = AV_CH_LAYOUT_3POINT1POINT2;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: a constant with a similar name exists: `AV_CH_LAYOUT_3POINT1`
|
::: ../target/x86_64-unknown-freebsd/release/build/ffmpeg-sys-next-71257b07c8bd5e07/out/bindings.rs:20799:1
|
20799 | pub const AV_CH_LAYOUT_3POINT1: libc::c_ulonglong = 15;
| ------------------------------------------------- similarly named constant `AV_CH_LAYOUT_3POINT1` defined here
error[E0425]: cannot find value `AV_CH_LAYOUT_5POINT1POINT2_BACK` in this scope
--> cargo-crates/ffmpeg-next-6.1.1/src/util/channel_layout.rs:65:37
|
65 | const _5POINT1POINT2_BACK = AV_CH_LAYOUT_5POINT1POINT2_BACK;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: a constant with a similar name exists: `AV_CH_LAYOUT_5POINT1_BACK`
|
::: ../target/x86_64-unknown-freebsd/release/build/ffmpeg-sys-next-71257b07c8bd5e07/out/bindings.rs:20807:1
|
20807 | pub const AV_CH_LAYOUT_5POINT1_BACK: libc::c_ulonglong = 63;
| ------------------------------------------------------ similarly named constant `AV_CH_LAYOUT_5POINT1_BACK` defined here
error[E0425]: cannot find value `AV_CH_LAYOUT_5POINT1POINT4_BACK` in this scope
--> cargo-crates/ffmpeg-next-6.1.1/src/util/channel_layout.rs:67:37
|
67 | const _5POINT1POINT4_BACK = AV_CH_LAYOUT_5POINT1POINT4_BACK;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: a constant with a similar name exists: `AV_CH_LAYOUT_5POINT1_BACK`
|
::: ../target/x86_64-unknown-freebsd/release/build/ffmpeg-sys-next-71257b07c8bd5e07/out/bindings.rs:20807:1
|
20807 | pub const AV_CH_LAYOUT_5POINT1_BACK: libc::c_ulonglong = 63;
| ------------------------------------------------------ similarly named constant `AV_CH_LAYOUT_5POINT1_BACK` defined here
error[E0425]: cannot find value `AV_CH_LAYOUT_7POINT1POINT2` in this scope
--> cargo-crates/ffmpeg-next-6.1.1/src/util/channel_layout.rs:69:37
|
69 | const _7POINT1POINT2 = AV_CH_LAYOUT_7POINT1POINT2;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: a constant with a similar name exists: `AV_CH_LAYOUT_7POINT1_WIDE`
|
::: ../target/x86_64-unknown-freebsd/release/build/ffmpeg-sys-next-71257b07c8bd5e07/out/bindings.rs:20817:1
|
20817 | pub const AV_CH_LAYOUT_7POINT1_WIDE: libc::c_ulonglong = 1743;
| ------------------------------------------------------ similarly named constant `AV_CH_LAYOUT_7POINT1_WIDE` defined here
error[E0425]: cannot find value `AV_CH_LAYOUT_7POINT1POINT4_BACK` in this scope
--> cargo-crates/ffmpeg-next-6.1.1/src/util/channel_layout.rs:71:37
|
71 | const _7POINT1POINT4_BACK = AV_CH_LAYOUT_7POINT1POINT4_BACK;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: a constant with a similar name exists: `AV_CH_LAYOUT_7POINT1_WIDE_BACK`
|
::: ../target/x86_64-unknown-freebsd/release/build/ffmpeg-sys-next-71257b07c8bd5e07/out/bindings.rs:20818:1
|
20818 | pub const AV_CH_LAYOUT_7POINT1_WIDE_BACK: libc::c_ulonglong = 255;
| ----------------------------------------------------------- similarly named constant `AV_CH_LAYOUT_7POINT1_WIDE_BACK` defined here
error[E0425]: cannot find value `AV_PIX_FMT_XVMC` in this scope
--> cargo-crates/ffmpeg-next-6.1.1/src/util/format/pixel.rs:1056:28
|
1056 | Pixel::XVMC => AV_PIX_FMT_XVMC,
| ^^^^^^^^^^^^^^^ help: a unit variant with a similar name exists: `AV_PIX_FMT_NV12`
|
::: ../target/x86_64-unknown-freebsd/release/build/ffmpeg-sys-next-71257b07c8bd5e07/out/bindings.rs:4874:5
|
4874 | AV_PIX_FMT_NV12 = 23,
| --------------- similarly named unit variant `AV_PIX_FMT_NV12` defined here
error[E0425]: cannot find value `AV_OPT_TYPE_CHANNEL_LAYOUT` in this scope
--> cargo-crates/ffmpeg-next-6.1.1/src/util/option/mod.rs:82:36
|
82 | Type::ChannelLayout => AV_OPT_TYPE_CHANNEL_LAYOUT,
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: a unit variant with a similar name exists: `AV_OPT_TYPE_CHLAYOUT`
|
::: ../target/x86_64-unknown-freebsd/release/build/ffmpeg-sys-next-71257b07c8bd5e07/out/bindings.rs:13185:5
|
13185 | AV_OPT_TYPE_CHLAYOUT = 19,
| -------------------- similarly named unit variant `AV_OPT_TYPE_CHLAYOUT` defined here
error[E0425]: cannot find value `AV_CODEC_ID_AYUV` in this scope
--> cargo-crates/ffmpeg-next-6.1.1/src/codec/id.rs:1538:25
|
1538 | Id::AYUV => AV_CODEC_ID_AYUV,
| ^^^^^^^^^^^^^^^^ help: a unit variant with a similar name exists: `AV_CODEC_ID_CYUV`
|
::: ../target/x86_64-unknown-freebsd/release/build/ffmpeg-sys-next-71257b07c8bd5e07/out/bindings.rs:7549:5
|
7549 | AV_CODEC_ID_CYUV = 26,
| ---------------- similarly named unit variant `AV_CODEC_ID_CYUV` defined here
error[E0425]: cannot find function `av_get_channel_layout_nb_channels` in this scope
--> cargo-crates/ffmpeg-next-6.1.1/src/util/channel_layout.rs:78:18
|
78 | unsafe { av_get_channel_layout_nb_channels(self.bits()) }
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
error[E0425]: cannot find function `av_get_default_channel_layout` in this scope
--> cargo-crates/ffmpeg-next-6.1.1/src/util/channel_layout.rs:83:47
|
83 | ChannelLayout::from_bits_truncate(av_get_default_channel_layout(number) as c_ulonglong)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
error[E0609]: no field `coded_picture_number` on type `sys::AVFrame`
--> cargo-crates/ffmpeg-next-6.1.1/src/util/frame/video.rs:178:35
|
178 | unsafe { (*self.as_ptr()).coded_picture_number as usize }
| ^^^^^^^^^^^^^^^^^^^^ unknown field
|
= note: available fields are: `data`, `linesize`, `extended_data`, `width`, `height` ... and 40 others
error[E0609]: no field `display_picture_number` on type `sys::AVFrame`
--> cargo-crates/ffmpeg-next-6.1.1/src/util/frame/video.rs:183:35
|
183 | unsafe { (*self.as_ptr()).display_picture_number as usize }
| ^^^^^^^^^^^^^^^^^^^^^^ unknown field
|
= note: available fields are: `data`, `linesize`, `extended_data`, `width`, `height` ... and 40 others
error[E0609]: no field `channel_layout` on type `sys::AVFrame`
--> cargo-crates/ffmpeg-next-6.1.1/src/util/frame/audio.rs:66:69
|
66 | unsafe { ChannelLayout::from_bits_truncate((*self.as_ptr()).channel_layout as c_ulonglong) }
| ^^^^^^^^^^^^^^ unknown field
|
= note: available fields are: `data`, `linesize`, `extended_data`, `width`, `height` ... and 40 others
error[E0609]: no field `channel_layout` on type `sys::AVFrame`
--> cargo-crates/ffmpeg-next-6.1.1/src/util/frame/audio.rs:71:39
|
71 | unsafe { (*self.as_mut_ptr()).channel_layout = value.bits() }
| ^^^^^^^^^^^^^^ unknown field
|
= note: available fields are: `data`, `linesize`, `extended_data`, `width`, `height` ... and 40 others
error[E0609]: no field `channels` on type `sys::AVFrame`
--> cargo-crates/ffmpeg-next-6.1.1/src/util/frame/audio.rs:76:35
|
76 | unsafe { (*self.as_ptr()).channels as u16 }
| ^^^^^^^^ unknown field
|
= note: available fields are: `data`, `linesize`, `extended_data`, `width`, `height` ... and 40 others
error[E0609]: no field `channels` on type `sys::AVFrame`
--> cargo-crates/ffmpeg-next-6.1.1/src/util/frame/audio.rs:82:34
|
82 | (*self.as_mut_ptr()).channels = i32::from(value);
| ^^^^^^^^ unknown field
|
= note: available fields are: `data`, `linesize`, `extended_data`, `width`, `height` ... and 40 others
error[E0609]: no field `pkt_duration` on type `sys::AVFrame`
--> cargo-crates/ffmpeg-next-6.1.1/src/util/frame/mod.rs:82:44
|
82 | duration: (*self.as_ptr()).pkt_duration,
| ^^^^^^^^^^^^ unknown field
|
help: a field with a similar name exists
|
82 | duration: (*self.as_ptr()).duration,
| ~~~~~~~~
error[E0425]: cannot find function `av_opt_set_channel_layout` in this scope
--> cargo-crates/ffmpeg-next-6.1.1/src/util/option/traits.rs:137:20
|
137 | check!(av_opt_set_channel_layout(
| ^^^^^^^^^^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `av_opt_set_chlayout`
|
::: ../target/x86_64-unknown-freebsd/release/build/ffmpeg-sys-next-71257b07c8bd5e07/out/bindings.rs:13792:5
|
13792 | / pub fn av_opt_set_chlayout(
13793 | | obj: *mut libc::c_void,
13794 | | name: *const libc::c_char,
13795 | | layout: *const AVChannelLayout,
13796 | | search_flags: libc::c_int,
13797 | | ) -> libc::c_int;
| |____________________- similarly named function `av_opt_set_chlayout` defined here
error[E0609]: no field `channel_layouts` on type `sys::AVCodec`
--> cargo-crates/ffmpeg-next-6.1.1/src/codec/audio.rs:41:39
|
41 | if (*self.codec.as_ptr()).channel_layouts.is_null() {
| ^^^^^^^^^^^^^^^ unknown field
|
help: a field with a similar name exists
|
41 | if (*self.codec.as_ptr()).ch_layouts.is_null() {
| ~~~~~~~~~~
error[E0609]: no field `channel_layouts` on type `sys::AVCodec`
--> cargo-crates/ffmpeg-next-6.1.1/src/codec/audio.rs:45:44
|
45 | (*self.codec.as_ptr()).channel_layouts,
| ^^^^^^^^^^^^^^^ unknown field
|
help: a field with a similar name exists
|
45 | (*self.codec.as_ptr()).ch_layouts,
| ~~~~~~~~~~
error[E0609]: no field `slice_count` on type `sys::AVCodecContext`
--> cargo-crates/ffmpeg-next-6.1.1/src/codec/decoder/video.rs:89:34
|
89 | (*self.as_mut_ptr()).slice_count = value as c_int;
| ^^^^^^^^^^^ unknown field
|
= note: available fields are: `av_class`, `log_level_offset`, `codec_type`, `codec`, `codec_id` ... and 95 others
error[E0609]: no field `channels` on type `sys::AVCodecContext`
--> cargo-crates/ffmpeg-next-6.1.1/src/codec/decoder/audio.rs:51:35
|
51 | unsafe { (*self.as_ptr()).channels as u16 }
| ^^^^^^^^ unknown field
|
= note: available fields are: `av_class`, `log_level_offset`, `codec_type`, `codec`, `codec_id` ... and 95 others
error[E0609]: no field `frame_number` on type `sys::AVCodecContext`
--> cargo-crates/ffmpeg-next-6.1.1/src/codec/decoder/audio.rs:65:35
|
65 | unsafe { (*self.as_ptr()).frame_number as usize }
| ^^^^^^^^^^^^ unknown field
|
= note: available fields are: `av_class`, `log_level_offset`, `codec_type`, `codec`, `codec_id` ... and 95 others
error[E0609]: no field `channel_layout` on type `sys::AVCodecContext`
--> cargo-crates/ffmpeg-next-6.1.1/src/codec/decoder/audio.rs:73:69
|
73 | unsafe { ChannelLayout::from_bits_truncate((*self.as_ptr()).channel_layout) }
| ^^^^^^^^^^^^^^ unknown field
|
= note: available fields are: `av_class`, `log_level_offset`, `codec_type`, `codec`, `codec_id` ... and 95 others
error[E0609]: no field `channel_layout` on type `sys::AVCodecContext`
--> cargo-crates/ffmpeg-next-6.1.1/src/codec/decoder/audio.rs:78:34
|
78 | (*self.as_mut_ptr()).channel_layout = value.bits();
| ^^^^^^^^^^^^^^ unknown field
|
= note: available fields are: `av_class`, `log_level_offset`, `codec_type`, `codec`, `codec_id` ... and 95 others
error[E0609]: no field `request_channel_layout` on type `sys::AVCodecContext`
--> cargo-crates/ffmpeg-next-6.1.1/src/codec/decoder/audio.rs:84:34
|
84 | (*self.as_mut_ptr()).request_channel_layout = value.bits();
| ^^^^^^^^^^^^^^^^^^^^^^ unknown field
|
= note: available fields are: `av_class`, `log_level_offset`, `codec_type`, `codec`, `codec_id` ... and 95 others
error[E0609]: no field `channel_layout` on type `sys::AVCodecContext`
--> cargo-crates/ffmpeg-next-6.1.1/src/codec/encoder/audio.rs:98:34
|
98 | (*self.as_mut_ptr()).channel_layout = value.bits();
| ^^^^^^^^^^^^^^ unknown field
|
= note: available fields are: `av_class`, `log_level_offset`, `codec_type`, `codec`, `codec_id` ... and 95 others
error[E0609]: no field `channel_layout` on type `sys::AVCodecContext`
--> cargo-crates/ffmpeg-next-6.1.1/src/codec/encoder/audio.rs:103:69
|
103 | unsafe { ChannelLayout::from_bits_truncate((*self.as_ptr()).channel_layout) }
| ^^^^^^^^^^^^^^ unknown field
|
= note: available fields are: `av_class`, `log_level_offset`, `codec_type`, `codec`, `codec_id` ... and 95 others
error[E0609]: no field `channels` on type `sys::AVCodecContext`
--> cargo-crates/ffmpeg-next-6.1.1/src/codec/encoder/audio.rs:108:34
|
108 | (*self.as_mut_ptr()).channels = value;
| ^^^^^^^^ unknown field
|
= note: available fields are: `av_class`, `log_level_offset`, `codec_type`, `codec`, `codec_id` ... and 95 others
error[E0609]: no field `channels` on type `sys::AVCodecContext`
--> cargo-crates/ffmpeg-next-6.1.1/src/codec/encoder/audio.rs:113:35
|
113 | unsafe { (*self.as_ptr()).channels as u16 }
| ^^^^^^^^ unknown field
|
= note: available fields are: `av_class`, `log_level_offset`, `codec_type`, `codec`, `codec_id` ... and 95 others
error[E0425]: cannot find function `swr_alloc_set_opts` in this scope
--> cargo-crates/ffmpeg-next-6.1.1/src/software/resampling/context.rs:71:23
|
71 | let ptr = swr_alloc_set_opts(
| ^^^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `swr_alloc_set_opts2`
|
::: ../target/x86_64-unknown-freebsd/release/build/ffmpeg-sys-next-71257b07c8bd5e07/out/bindings.rs:23188:5
|
23188 | / pub fn swr_alloc_set_opts2(
23189 | | ps: *mut *mut SwrContext,
23190 | | out_ch_layout: *const AVChannelLayout,
23191 | | out_sample_fmt: AVSampleFormat,
... |
23197 | | log_ctx: *mut libc::c_void,
23198 | | ) -> libc::c_int;
| |____________________- similarly named function `swr_alloc_set_opts2` defined here
Some errors have detailed explanations: E0425, E0609.
Reported by: antoine (via bug 278705 exp-run)
Diffstat (limited to 'multimedia/wl-screenrec/files/patch-ffmpeg7')
-rw-r--r-- | multimedia/wl-screenrec/files/patch-ffmpeg7 | 313 |
1 files changed, 313 insertions, 0 deletions
diff --git a/multimedia/wl-screenrec/files/patch-ffmpeg7 b/multimedia/wl-screenrec/files/patch-ffmpeg7 new file mode 100644 index 000000000000..392cca81ccf9 --- /dev/null +++ b/multimedia/wl-screenrec/files/patch-ffmpeg7 @@ -0,0 +1,313 @@ +https://github.com/russelltg/wl-screenrec/commit/f73841b8d270 +https://github.com/russelltg/wl-screenrec/commit/098b9735fbc1 + +--- Cargo.lock.orig 2024-02-16 05:09:17 UTC ++++ Cargo.lock +@@ -67,37 +67,31 @@ name = "bindgen" + + [[package]] + name = "bindgen" +-version = "0.64.0" ++version = "0.69.4" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "c4243e6031260db77ede97ad86c27e501d646a27ab57b59a574f725d98ab1fb4" ++checksum = "a00dc851838a2120612785d195287475a3ac45514741da670b735818822129a0" + dependencies = [ +- "bitflags 1.3.2", ++ "bitflags", + "cexpr", + "clang-sys", ++ "itertools", + "lazy_static", + "lazycell", +- "peeking_take_while", + "proc-macro2", + "quote", + "regex", + "rustc-hash", + "shlex", +- "syn 1.0.109", ++ "syn", + ] + + [[package]] + name = "bitflags" +-version = "1.3.2" ++version = "2.5.0" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" ++checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" + + [[package]] +-name = "bitflags" +-version = "2.4.2" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +- +-[[package]] + name = "cc" + version = "1.0.83" + source = "registry+https://github.com/rust-lang/crates.io-index" +@@ -163,7 +157,7 @@ dependencies = [ + "heck", + "proc-macro2", + "quote", +- "syn 2.0.49", ++ "syn", + ] + + [[package]] +@@ -200,6 +194,12 @@ checksum = "0aafbcdb8afc29c1a7ee5fbe53b5d62f4565b35a04 + checksum = "0aafbcdb8afc29c1a7ee5fbe53b5d62f4565b35a042a662ca9fecd0b54dae6f4" + + [[package]] ++name = "either" ++version = "1.12.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b" ++ ++[[package]] + name = "errno" + version = "0.3.8" + source = "registry+https://github.com/rust-lang/crates.io-index" +@@ -211,20 +211,20 @@ name = "ffmpeg-next" + + [[package]] + name = "ffmpeg-next" +-version = "6.1.1" ++version = "7.0.1" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "4e72c72e8dcf638fb0fb03f033a954691662b5dabeaa3f85a6607d101569fccd" ++checksum = "a681d69bf41d1c9edc7c6a2b09b69d0b96e9b916d200b7ec5b10de61f559eb31" + dependencies = [ +- "bitflags 1.3.2", ++ "bitflags", + "ffmpeg-sys-next", + "libc", + ] + + [[package]] + name = "ffmpeg-sys-next" +-version = "6.1.0" ++version = "7.0.0" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "c2529ad916d08c3562c754c21bc9b17a26c7882c0f5706cc2cd69472175f1620" ++checksum = "972a460dd8e901b737ce0482bf71a837e1751e3dd7c8f8b0a4ead808e7f174a5" + dependencies = [ + "bindgen", + "cc", +@@ -259,6 +259,15 @@ checksum = "9994b79e8c1a39b3166c63ae7823bb2b00831e2a96 + checksum = "9994b79e8c1a39b3166c63ae7823bb2b00831e2a96a31399c50fe69df408eaeb" + + [[package]] ++name = "itertools" ++version = "0.12.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" ++dependencies = [ ++ "either", ++] ++ ++[[package]] + name = "itoa" + version = "1.0.10" + source = "registry+https://github.com/rust-lang/crates.io-index" +@@ -322,7 +331,7 @@ dependencies = [ + source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" + dependencies = [ +- "bitflags 2.4.2", ++ "bitflags", + "cfg-if", + "libc", + ] +@@ -348,12 +357,6 @@ dependencies = [ + ] + + [[package]] +-name = "peeking_take_while" +-version = "0.1.2" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" +- +-[[package]] + name = "pkg-config" + version = "0.3.30" + source = "registry+https://github.com/rust-lang/crates.io-index" +@@ -427,7 +430,7 @@ dependencies = [ + source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949" + dependencies = [ +- "bitflags 2.4.2", ++ "bitflags", + "errno", + "libc", + "linux-raw-sys", +@@ -463,7 +466,7 @@ dependencies = [ + dependencies = [ + "proc-macro2", + "quote", +- "syn 2.0.49", ++ "syn", + ] + + [[package]] +@@ -516,17 +519,6 @@ name = "syn" + + [[package]] + name = "syn" +-version = "1.0.109" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +-dependencies = [ +- "proc-macro2", +- "quote", +- "unicode-ident", +-] +- +-[[package]] +-name = "syn" + version = "2.0.49" + source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "915aea9e586f80826ee59f8453c1101f9d1c4b3964cd2460185ee8e299ada496" +@@ -553,7 +545,7 @@ dependencies = [ + dependencies = [ + "proc-macro2", + "quote", +- "syn 2.0.49", ++ "syn", + ] + + [[package]] +@@ -594,7 +586,7 @@ dependencies = [ + source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "82fb96ee935c2cea6668ccb470fb7771f6215d1691746c2d896b447a00ad3f1f" + dependencies = [ +- "bitflags 2.4.2", ++ "bitflags", + "rustix", + "wayland-backend", + "wayland-scanner", +@@ -606,7 +598,7 @@ dependencies = [ + source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "8f81f365b8b4a97f422ac0e8737c438024b5951734506b0e1d775c73030561f4" + dependencies = [ +- "bitflags 2.4.2", ++ "bitflags", + "wayland-backend", + "wayland-client", + "wayland-scanner", +@@ -618,7 +610,7 @@ dependencies = [ + source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "ad1f61b76b6c2d8742e10f9ba5c3737f6530b4c243132c2a2ccc8aa96fe25cd6" + dependencies = [ +- "bitflags 2.4.2", ++ "bitflags", + "wayland-backend", + "wayland-client", + "wayland-protocols", +@@ -787,6 +779,7 @@ dependencies = [ + "clap", + "drm-fourcc", + "ffmpeg-next", ++ "ffmpeg-sys-next", + "human-size", + "libc", + "nix", +--- Cargo.toml.orig 2024-02-16 05:09:17 UTC ++++ Cargo.toml +@@ -28,7 +28,8 @@ wayland-protocols-wlr = { version = "0.2", features = + wayland-protocols-wlr = { version = "0.2", features = ["client"] } + + # ffmpeg-next does not support ffmpeg 6.1 yet, so grab from the 6.1 PR +-ffmpeg-next = "6.1" ++ffmpeg-next = "7.0.1" ++ffmpeg-sys-next = "7.0.0" # need direct dep on -sys to get metadata to consume in build.rs + thiserror = "1.0.38" + drm-fourcc = "2.2.0" + human-size = "0.4.2" +--- build.rs.orig 2024-05-20 06:35:34 UTC ++++ build.rs +@@ -0,0 +1,12 @@ ++use std::env; ++ ++fn main() { ++ for (name, _value) in env::vars() { ++ if name.starts_with("DEP_FFMPEG_") { ++ println!( ++ r#"cargo:rustc-cfg=feature="{}""#, ++ name["DEP_FFMPEG_".len()..name.len()].to_lowercase() ++ ); ++ } ++ } ++} +\ No newline at end of file +--- src/audio.rs.orig 2024-02-16 05:09:17 UTC ++++ src/audio.rs +@@ -1,6 +1,6 @@ use std::{ + use std::{ + cmp::max, +- ffi::{c_int, CString}, ++ ffi::{CStr, CString}, + sync::{ + atomic::{AtomicBool, Ordering}, + mpsc::{channel, Receiver, RecvError, Sender, TryRecvError}, +@@ -13,7 +13,7 @@ use ffmpeg::{ + use ffmpeg::{ + codec::Context, + decoder, encoder, +- ffi::{av_find_input_format, av_get_default_channel_layout, AVChannelOrder}, ++ ffi::{av_channel_layout_describe, av_find_input_format}, + filter, + format::{self, context::Input, Sample}, + frame, ChannelLayout, Dictionary, Format, Packet, Rational, +@@ -220,6 +220,7 @@ impl AudioHandle { + let audio_decoder_rate = dec_audio.rate() as i32; + enc_audio.set_rate(audio_decoder_rate); + enc_audio.set_channel_layout(enc_audio_channel_layout); ++ #[cfg(not(feature = "ffmpeg_7_0"))] // in ffmpeg 7, this is handled by set_channel_layout + enc_audio.set_channels(enc_audio_channel_layout.channels()); + let audio_encode_format = codec.formats().unwrap().next().unwrap(); + enc_audio.set_format(audio_encode_format); +@@ -322,24 +323,34 @@ fn audio_filter( + ) -> filter::Graph { + let mut g = ffmpeg::filter::graph::Graph::new(); + +- // let channel_format_str = avchannelformat_to_string(params.ch_layout); + let sample_format = input.format(); + + let ch_layout = unsafe { input.as_ptr().read().ch_layout }; +- let ch_layout_mask = if ch_layout.order == AVChannelOrder::AV_CHANNEL_ORDER_NATIVE { +- unsafe { ch_layout.u.mask } +- } else { +- unsafe { av_get_default_channel_layout(input.channels() as c_int) as u64 } ++ ++ let mut channel_layout_buf = [0u8; 128]; ++ let channel_layout_specifier = unsafe { ++ let bytes = av_channel_layout_describe( ++ &ch_layout, ++ channel_layout_buf.as_mut_ptr().cast(), ++ channel_layout_buf.len(), ++ ); ++ assert!(bytes > 0, "{:?}: {:?}", ch_layout.order, bytes); ++ std::str::from_utf8( ++ CStr::from_bytes_until_nul(&channel_layout_buf[..]) ++ .unwrap() ++ .to_bytes(), ++ ) ++ .unwrap() + }; + + g.add( + &filter::find("abuffer").unwrap(), + "in", + &format!( +- "sample_rate={}:sample_fmt={}:channel_layout={:#x}", ++ "sample_rate={}:sample_fmt={}:channel_layout={}", + input.rate(), + sample_format.name(), +- ch_layout_mask ++ channel_layout_specifier + ), + ) + .unwrap(); |