Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package wl-screenrec for openSUSE:Factory 
checked in at 2026-08-24 12:11:12
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/wl-screenrec (Old)
 and      /work/SRC/openSUSE:Factory/.wl-screenrec.new.1258 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "wl-screenrec"

Mon Aug 24 12:11:12 2026 rev:11 rq:1373268 
version:0.3.2+git.20260810T091406.73b5890

Changes:
--------
--- /work/SRC/openSUSE:Factory/wl-screenrec/wl-screenrec.changes        
2026-07-13 14:26:35.068375856 +0200
+++ /work/SRC/openSUSE:Factory/.wl-screenrec.new.1258/wl-screenrec.changes      
2026-08-24 12:16:46.904025372 +0200
@@ -1,0 +2,9 @@
+Sun Aug 23 15:53:28 UTC 2026 - llyyr <[email protected]>
+
+- Update to version 0.3.1+git.20260810T091406.73b5890:
+  * actually update version in cargo.toml this time
+  * fix compile on ffmpeg 9
+  * clippy lints
+  * update to ffmpeg crate 9.0
+
+-------------------------------------------------------------------

Old:
----
  wl-screenrec-0.2.0+git.20260517T151356.0925290.tar.gz

New:
----
  wl-screenrec-0.3.2+git.20260810T091406.73b5890.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ wl-screenrec.spec ++++++
--- /var/tmp/diff_new_pack.dCM9PR/_old  2026-08-24 12:16:48.017065014 +0200
+++ /var/tmp/diff_new_pack.dCM9PR/_new  2026-08-24 12:16:48.021065156 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           wl-screenrec
-Version:        0.2.0+git.20260517T151356.0925290
+Version:        0.3.2+git.20260810T091406.73b5890
 License:        Apache-2.0
 Release:        0
 Summary:        High performance hardware accelerated wlroots screen recorder

++++++ _service ++++++
--- /var/tmp/diff_new_pack.dCM9PR/_old  2026-08-24 12:16:48.099067934 +0200
+++ /var/tmp/diff_new_pack.dCM9PR/_new  2026-08-24 12:16:48.106068183 +0200
@@ -3,7 +3,7 @@
     <param name="url">https://github.com/russelltg/wl-screenrec</param>
        <param name="scm">git</param>
        <param name="revision">main</param>
-       <param name="versionprefix">0.2.0+git</param>
+       <param name="versionprefix">0.3.2+git</param>
   <param name="versionformat">%ci.%h</param>
        <param name="changesgenerate">enable</param>
   </service>

++++++ vendor.tar.zst ++++++
/work/SRC/openSUSE:Factory/wl-screenrec/vendor.tar.zst 
/work/SRC/openSUSE:Factory/.wl-screenrec.new.1258/vendor.tar.zst differ: char 
7, line 1

++++++ wl-screenrec-0.2.0+git.20260517T151356.0925290.tar.gz -> 
wl-screenrec-0.3.2+git.20260810T091406.73b5890.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/wl-screenrec-0.2.0+git.20260517T151356.0925290/.cargo/.config 
new/wl-screenrec-0.3.2+git.20260810T091406.73b5890/.cargo/.config
--- old/wl-screenrec-0.2.0+git.20260517T151356.0925290/.cargo/.config   
1970-01-01 01:00:00.000000000 +0100
+++ new/wl-screenrec-0.3.2+git.20260810T091406.73b5890/.cargo/.config   
2026-08-10 17:14:06.000000000 +0200
@@ -0,0 +1,2 @@
+[env]
+BINDGEN_EXTRA_CLANG_ARGS = "-include /usr/include/vulkan/vulkan.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/wl-screenrec-0.2.0+git.20260517T151356.0925290/Cargo.lock 
new/wl-screenrec-0.3.2+git.20260810T091406.73b5890/Cargo.lock
--- old/wl-screenrec-0.2.0+git.20260517T151356.0925290/Cargo.lock       
2026-05-17 23:13:56.000000000 +0200
+++ new/wl-screenrec-0.3.2+git.20260810T091406.73b5890/Cargo.lock       
2026-08-10 17:14:06.000000000 +0200
@@ -90,15 +90,15 @@
  "quote",
  "regex",
  "rustc-hash",
- "shlex",
+ "shlex 1.3.0",
  "syn",
 ]
 
 [[package]]
 name = "bitflags"
-version = "2.11.1"
+version = "2.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "c4512299f36f043ab09a583e57bceb5a5aab7a73db1805848e8fef3c9e8c78b3"
+checksum = "b588b76d00fde79687d7646a9b5bdf3cc0f655e0bbd080335a95d7e96f3587da"
 
 [[package]]
 name = "bytemuck"
@@ -122,12 +122,12 @@
 
 [[package]]
 name = "cc"
-version = "1.2.62"
+version = "1.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "a1dce859f0832a7d088c4f1119888ab94ef4b5d6795d1ce05afb7fe159d79f98"
+checksum = "5d262e149917187838d5b42777c8253bcb64500067342904e7d429499a6f277e"
 dependencies = [
  "find-msvc-tools",
- "shlex",
+ "shlex 2.0.1",
 ]
 
 [[package]]
@@ -291,9 +291,9 @@
 
 [[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",
  "ffmpeg-sys-next",
@@ -302,10 +302,10 @@
 
 [[package]]
 name = "ffmpeg-sys-next"
-version = "8.1.0"
-source = 
"git+https://github.com/russelltg/rust-ffmpeg-sys?branch=vulkan#233554c454386b5a3493a20d2c1c4331e8de1090";
+version = "9.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "9b939bf79dd5949412a4b81cfe21a07f48ea21b47fcbb5f57816c8c2de5ae30b"
 dependencies = [
- "ash",
  "bindgen",
  "cc",
  "libc",
@@ -316,9 +316,9 @@
 
 [[package]]
 name = "find-msvc-tools"
-version = "0.1.9"
+version = "0.1.10"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582"
+checksum = "26b73573e6edcd2af0cdf47bd6cb58f0b3839491263c314eaad1ccf24430e1de"
 
 [[package]]
 name = "glob"
@@ -621,6 +621,12 @@
 checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
 
 [[package]]
+name = "shlex"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba"
+
+[[package]]
 name = "signal-hook"
 version = "0.4.4"
 source = "registry+https://github.com/rust-lang/crates.io-index";
@@ -869,7 +875,7 @@
 
 [[package]]
 name = "wl-screenrec"
-version = "0.2.0"
+version = "0.3.2"
 dependencies = [
  "anyhow",
  "ash",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/wl-screenrec-0.2.0+git.20260517T151356.0925290/Cargo.toml 
new/wl-screenrec-0.3.2+git.20260810T091406.73b5890/Cargo.toml
--- old/wl-screenrec-0.2.0+git.20260517T151356.0925290/Cargo.toml       
2026-05-17 23:13:56.000000000 +0200
+++ new/wl-screenrec-0.3.2+git.20260810T091406.73b5890/Cargo.toml       
2026-08-10 17:14:06.000000000 +0200
@@ -4,7 +4,7 @@
 license-file = "LICENSE"
 homepage = "https://github.com/russelltg/wl-screenrec";
 repository = "https://github.com/russelltg/wl-screenrec";
-version = "0.2.0"
+version = "0.3.2"
 edition = "2024"
 
 # See more keys and their definitions at 
https://doc.rust-lang.org/cargo/reference/manifest.html
@@ -27,8 +27,8 @@
     "staging",
 ] }
 wayland-protocols-wlr = { version = "0.3", features = ["client"] }
-ffmpeg-next = "8.0.0"
-ffmpeg-sys-next = "8.0.1" # need direct dep on -sys to get metadata to consume 
in build.rs
+ffmpeg-next = "9.0.0"
+ffmpeg-sys-next = "9.0.0" # need direct dep on -sys to get metadata to consume 
in build.rs
 thiserror = "2.0.3"
 human-size = "0.4.2"
 anyhow = "1.0.71"
@@ -43,10 +43,6 @@
 signal-hook = "0.4.3"
 signal-hook-mio = { version = "0.3.0", features = ["support-v1_0"] }
 
-[patch.crates-io]
-# Waiting on https://github.com/zmwangx/rust-ffmpeg-sys/pull/91
-ffmpeg-sys-next = { git = "https://github.com/russelltg/rust-ffmpeg-sys";, 
branch = "vulkan" }
-
 # Uncomment for local dev
 # ffmpeg-next = { path = "../rust-ffmpeg" }
 # ffmpeg-sys-next = { path = "../rust-ffmpeg-sys" }
@@ -60,7 +56,6 @@
 
 [features]
 experimental-vulkan = [
-    "ffmpeg-sys-next/vulkan", 
     "ash"
 ]
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/wl-screenrec-0.2.0+git.20260517T151356.0925290/src/avhw.rs 
new/wl-screenrec-0.3.2+git.20260810T091406.73b5890/src/avhw.rs
--- old/wl-screenrec-0.2.0+git.20260517T151356.0925290/src/avhw.rs      
2026-05-17 23:13:56.000000000 +0200
+++ new/wl-screenrec-0.3.2+git.20260810T091406.73b5890/src/avhw.rs      
2026-08-10 17:14:06.000000000 +0200
@@ -129,6 +129,8 @@
             let sts = if self.fmt == Pixel::VULKAN {
                 #[cfg(feature = "experimental-vulkan")]
                 {
+                    use std::mem;
+
                     use ash::vk;
                     use ffmpeg::ffi::{
                         AVHWDeviceContext, AVVulkanDeviceContext, 
AVVulkanFramesContext,
@@ -139,9 +141,26 @@
 
                     let inst = ash::Instance::load(
                         &ash::StaticFn {
-                            get_instance_proc_addr: vk_hwctx.get_proc_addr,
+                            get_instance_proc_addr: mem::transmute::<
+                                unsafe extern "C" fn(
+                                    *mut ffmpeg_sys_next::VkInstance_T,
+                                    *const i8,
+                                )
+                                    -> std::option::Option<unsafe extern "C" 
fn()>,
+                                unsafe extern "system" fn(
+                                    ash::vk::Instance,
+                                    *const i8,
+                                )
+                                    -> std::option::Option<
+                                    unsafe extern "system" fn(),
+                                >,
+                            >(
+                                vk_hwctx.get_proc_addr.unwrap()
+                            ),
                         },
-                        vk_hwctx.inst,
+                        mem::transmute::<*mut ffmpeg_sys_next::VkInstance_T, 
ash::vk::Instance>(
+                            vk_hwctx.inst,
+                        ),
                     );
 
                     let pixfmt_vk = vkfmt_from_pixfmt(pixfmt)?;
@@ -161,7 +180,10 @@
                         Tiling::Drm(modifiers) => {
                             let modifiers_filtered = vk_filter_drm_modifiers(
                                 inst,
-                                vk_hwctx.phys_dev,
+                                mem::transmute::<
+                                    *mut ffmpeg_sys_next::VkPhysicalDevice_T,
+                                    ash::vk::PhysicalDevice,
+                                >(vk_hwctx.phys_dev),
                                 pixfmt_vk,
                                 vk_usage,
                                 modifiers,
@@ -188,8 +210,8 @@
 
                     let vk_ptr = &mut *(hwframe_casted.hwctx as *mut 
AVVulkanFramesContext);
 
-                    vk_ptr.tiling = tiling;
-                    vk_ptr.usage = vk_usage;
+                    vk_ptr.tiling = tiling.as_raw();
+                    vk_ptr.usage = vk_usage.as_raw() as i32;
                     vk_ptr.create_pnext = vk_bufs.as_mut().chain_ptr();
 
                     vk = Some(vk_bufs);
@@ -246,7 +268,7 @@
         if res.is_null() {
             Err(ffmpeg::Error::InvalidData)
         } else {
-            Ok(*res)
+            Ok(ash::vk::Format::from_raw(*res))
         }
     }
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/wl-screenrec-0.2.0+git.20260517T151356.0925290/src/main.rs 
new/wl-screenrec-0.3.2+git.20260810T091406.73b5890/src/main.rs
--- old/wl-screenrec-0.2.0+git.20260517T151356.0925290/src/main.rs      
2026-05-17 23:13:56.000000000 +0200
+++ new/wl-screenrec-0.3.2+git.20260810T091406.73b5890/src/main.rs      
2026-08-10 17:14:06.000000000 +0200
@@ -834,13 +834,11 @@
                 flags: WEnum::Value(flags),
                 width,
                 height,
-            } => {
-                if flags.contains(Mode::Current) {
-                    state.update_output_info_wl_output(&id, |info| {
-                        info.refresh = Some(Rational(refresh, 1000));
-                        info.size_pixels = Some((width, height));
-                    });
-                }
+            } if flags.contains(Mode::Current) => {
+                state.update_output_info_wl_output(&id, |info| {
+                    info.refresh = Some(Rational(refresh, 1000));
+                    info.size_pixels = Some((width, height));
+                });
             }
             wl_output::Event::Geometry { transform, .. } => match transform {
                 WEnum::Value(v) => {
@@ -1255,7 +1253,7 @@
 
         info!("output probe complete: {:?}", p.outputs);
 
-        let enabled_outputs: Vec<_> = p.outputs.iter().flat_map(|(_, o)| 
o).collect();
+        let enabled_outputs: Vec<_> = p.outputs.values().flatten().collect();
 
         let (output, roi) = match (self.args.geometry, 
self.args.output.as_str()) {
             (None, "") => {
@@ -1695,12 +1693,16 @@
     }
 }
 
-fn get_encoder(args: &Args, format: &Output) -> anyhow::Result<ffmpeg::Codec> {
+fn get_encoder(args: &Args, format: &Output) -> 
anyhow::Result<ffmpeg::codec::Video> {
     Ok(if let Some(encoder_name) = &args.ffmpeg_encoder {
         ffmpeg_next::encoder::find_by_name(encoder_name).ok_or_else(|| {
             format_err!(
                 "Encoder {encoder_name} specified with --ffmpeg-encoder could 
not be instantiated"
             )
+        })?.video().map_err(|_| {
+            format_err!(
+                "Encoder {encoder_name} specified with --ffmpeg-encoder is not 
a video encoder"
+            )
         })?
     } else {
         let codec_id = match args.codec {
@@ -1741,11 +1743,23 @@
                 }
             },
         }
+        .video()
+        .map_err(|_| {
+            format_err!(
+                "Encoder for codec {codec_id:?} is not a video encoder, this 
is probably a bug"
+            )
+        })?
     })
 }
 
-fn get_enc_pixfmt(args: &Args, encoder: &ffmpeg::Codec) -> 
anyhow::Result<EncodePixelFormat> {
-    let supported_formats = supported_formats(encoder);
+fn get_enc_pixfmt(
+    args: &Args,
+    encoder: &ffmpeg::codec::Video,
+) -> anyhow::Result<EncodePixelFormat> {
+    let supported_formats = encoder
+        .formats()
+        .map(|f| f.collect::<Vec<_>>())
+        .unwrap_or_default();
     Ok(if supported_formats.is_empty() {
         match args.encode_pixfmt {
             Some(fmt) => EncodePixelFormat::Sw(fmt),
@@ -2204,18 +2218,6 @@
     }
 }
 
-fn supported_formats(codec: &ffmpeg::Codec) -> Vec<Pixel> {
-    unsafe {
-        let mut frmts = Vec::new();
-        let mut fmt_ptr = (*codec.as_ptr()).pix_fmts;
-        while !fmt_ptr.is_null() && *fmt_ptr as c_int != -1 {
-            frmts.push(Pixel::from(*fmt_ptr));
-            fmt_ptr = fmt_ptr.add(1);
-        }
-        frmts
-    }
-}
-
 struct InitialProbeState;
 impl Dispatch<WlRegistry, GlobalListContents> for InitialProbeState {
     fn event(

Reply via email to