From 2e2bbda7bacdea53e41b6131cdf702daaff5c125 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Sat, 5 Apr 2025 11:19:47 +0300 Subject: [PATCH] Update gstreamer-rs / gtk-rs dependencies Part-of: --- Cargo.lock | 138 ++++++++--------- generic/threadshare/src/socket.rs | 146 ++++-------------- .../examples/webrtc-precise-sync-recv.rs | 4 +- net/webrtc/src/webrtcsrc/imp.rs | 4 +- video/cdg/src/cdgdec/imp.rs | 2 +- video/dav1d/src/dav1ddec/imp.rs | 6 +- video/ffv1/src/ffv1dec/imp.rs | 2 +- video/gif/src/gifenc/imp.rs | 2 +- video/png/src/pngenc/imp.rs | 2 +- video/rav1e/src/rav1enc/imp.rs | 2 +- video/vvdec/src/dec/imp.rs | 2 +- 11 files changed, 115 insertions(+), 195 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index dc9e95217..847a31975 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1033,7 +1033,7 @@ dependencies = [ [[package]] name = "cairo-rs" version = "0.21.0" -source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=main#bd2757991efd34315c3902c8f71de306f43b129a" +source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=main#8042abb81c9bb26c423f3703ff3d59698caa584f" dependencies = [ "bitflags 2.9.0", "cairo-sys-rs", @@ -1044,7 +1044,7 @@ dependencies = [ [[package]] name = "cairo-sys-rs" version = "0.21.0" -source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=main#bd2757991efd34315c3902c8f71de306f43b129a" +source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=main#8042abb81c9bb26c423f3703ff3d59698caa584f" dependencies = [ "glib-sys", "libc", @@ -1868,7 +1868,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -2142,7 +2142,7 @@ dependencies = [ [[package]] name = "gdk-pixbuf" version = "0.21.0" -source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=main#bd2757991efd34315c3902c8f71de306f43b129a" +source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=main#8042abb81c9bb26c423f3703ff3d59698caa584f" dependencies = [ "gdk-pixbuf-sys", "gio", @@ -2153,7 +2153,7 @@ dependencies = [ [[package]] name = "gdk-pixbuf-sys" version = "0.21.0" -source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=main#bd2757991efd34315c3902c8f71de306f43b129a" +source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=main#8042abb81c9bb26c423f3703ff3d59698caa584f" dependencies = [ "gio-sys", "glib-sys", @@ -2165,7 +2165,7 @@ dependencies = [ [[package]] name = "gdk4" version = "0.10.0" -source = "git+https://github.com/gtk-rs/gtk4-rs?branch=main#bef79033a1c4e921f44e33d36a606ff73a9cca0b" +source = "git+https://github.com/gtk-rs/gtk4-rs?branch=main#97e11090d9a63b70b1a8e88b952fca2cef459209" dependencies = [ "cairo-rs", "gdk-pixbuf", @@ -2179,7 +2179,7 @@ dependencies = [ [[package]] name = "gdk4-sys" version = "0.10.0" -source = "git+https://github.com/gtk-rs/gtk4-rs?branch=main#bef79033a1c4e921f44e33d36a606ff73a9cca0b" +source = "git+https://github.com/gtk-rs/gtk4-rs?branch=main#97e11090d9a63b70b1a8e88b952fca2cef459209" dependencies = [ "cairo-sys-rs", "gdk-pixbuf-sys", @@ -2195,7 +2195,7 @@ dependencies = [ [[package]] name = "gdk4-wayland" version = "0.10.0" -source = "git+https://github.com/gtk-rs/gtk4-rs?branch=main#bef79033a1c4e921f44e33d36a606ff73a9cca0b" +source = "git+https://github.com/gtk-rs/gtk4-rs?branch=main#97e11090d9a63b70b1a8e88b952fca2cef459209" dependencies = [ "gdk4", "gdk4-wayland-sys", @@ -2207,7 +2207,7 @@ dependencies = [ [[package]] name = "gdk4-wayland-sys" version = "0.10.0" -source = "git+https://github.com/gtk-rs/gtk4-rs?branch=main#bef79033a1c4e921f44e33d36a606ff73a9cca0b" +source = "git+https://github.com/gtk-rs/gtk4-rs?branch=main#97e11090d9a63b70b1a8e88b952fca2cef459209" dependencies = [ "glib-sys", "libc", @@ -2217,7 +2217,7 @@ dependencies = [ [[package]] name = "gdk4-win32" version = "0.10.0" -source = "git+https://github.com/gtk-rs/gtk4-rs?branch=main#bef79033a1c4e921f44e33d36a606ff73a9cca0b" +source = "git+https://github.com/gtk-rs/gtk4-rs?branch=main#97e11090d9a63b70b1a8e88b952fca2cef459209" dependencies = [ "gdk4", "gdk4-win32-sys", @@ -2230,7 +2230,7 @@ dependencies = [ [[package]] name = "gdk4-win32-sys" version = "0.10.0" -source = "git+https://github.com/gtk-rs/gtk4-rs?branch=main#bef79033a1c4e921f44e33d36a606ff73a9cca0b" +source = "git+https://github.com/gtk-rs/gtk4-rs?branch=main#97e11090d9a63b70b1a8e88b952fca2cef459209" dependencies = [ "gdk4-sys", "glib-sys", @@ -2241,7 +2241,7 @@ dependencies = [ [[package]] name = "gdk4-x11" version = "0.10.0" -source = "git+https://github.com/gtk-rs/gtk4-rs?branch=main#bef79033a1c4e921f44e33d36a606ff73a9cca0b" +source = "git+https://github.com/gtk-rs/gtk4-rs?branch=main#97e11090d9a63b70b1a8e88b952fca2cef459209" dependencies = [ "gdk4", "gdk4-x11-sys", @@ -2253,7 +2253,7 @@ dependencies = [ [[package]] name = "gdk4-x11-sys" version = "0.10.0" -source = "git+https://github.com/gtk-rs/gtk4-rs?branch=main#bef79033a1c4e921f44e33d36a606ff73a9cca0b" +source = "git+https://github.com/gtk-rs/gtk4-rs?branch=main#97e11090d9a63b70b1a8e88b952fca2cef459209" dependencies = [ "gdk4-sys", "glib-sys", @@ -2326,7 +2326,7 @@ checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" [[package]] name = "gio" version = "0.21.0" -source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=main#bd2757991efd34315c3902c8f71de306f43b129a" +source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=main#8042abb81c9bb26c423f3703ff3d59698caa584f" dependencies = [ "futures-channel", "futures-core", @@ -2342,19 +2342,19 @@ dependencies = [ [[package]] name = "gio-sys" version = "0.21.0" -source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=main#bd2757991efd34315c3902c8f71de306f43b129a" +source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=main#8042abb81c9bb26c423f3703ff3d59698caa584f" dependencies = [ "glib-sys", "gobject-sys", "libc", "system-deps 7.0.3", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "glib" version = "0.21.0" -source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=main#bd2757991efd34315c3902c8f71de306f43b129a" +source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=main#8042abb81c9bb26c423f3703ff3d59698caa584f" dependencies = [ "bitflags 2.9.0", "futures-channel", @@ -2374,7 +2374,7 @@ dependencies = [ [[package]] name = "glib-macros" version = "0.21.0" -source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=main#bd2757991efd34315c3902c8f71de306f43b129a" +source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=main#8042abb81c9bb26c423f3703ff3d59698caa584f" dependencies = [ "heck 0.5.0", "proc-macro-crate", @@ -2386,7 +2386,7 @@ dependencies = [ [[package]] name = "glib-sys" version = "0.21.0" -source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=main#bd2757991efd34315c3902c8f71de306f43b129a" +source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=main#8042abb81c9bb26c423f3703ff3d59698caa584f" dependencies = [ "libc", "system-deps 7.0.3", @@ -2401,7 +2401,7 @@ checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" [[package]] name = "gobject-sys" version = "0.21.0" -source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=main#bd2757991efd34315c3902c8f71de306f43b129a" +source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=main#8042abb81c9bb26c423f3703ff3d59698caa584f" dependencies = [ "glib-sys", "libc", @@ -2429,7 +2429,7 @@ dependencies = [ [[package]] name = "graphene-rs" version = "0.21.0" -source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=main#bd2757991efd34315c3902c8f71de306f43b129a" +source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=main#8042abb81c9bb26c423f3703ff3d59698caa584f" dependencies = [ "glib", "graphene-sys", @@ -2439,7 +2439,7 @@ dependencies = [ [[package]] name = "graphene-sys" version = "0.21.0" -source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=main#bd2757991efd34315c3902c8f71de306f43b129a" +source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=main#8042abb81c9bb26c423f3703ff3d59698caa584f" dependencies = [ "glib-sys", "libc", @@ -2461,7 +2461,7 @@ dependencies = [ [[package]] name = "gsk4" version = "0.10.0" -source = "git+https://github.com/gtk-rs/gtk4-rs?branch=main#bef79033a1c4e921f44e33d36a606ff73a9cca0b" +source = "git+https://github.com/gtk-rs/gtk4-rs?branch=main#97e11090d9a63b70b1a8e88b952fca2cef459209" dependencies = [ "cairo-rs", "gdk4", @@ -2475,7 +2475,7 @@ dependencies = [ [[package]] name = "gsk4-sys" version = "0.10.0" -source = "git+https://github.com/gtk-rs/gtk4-rs?branch=main#bef79033a1c4e921f44e33d36a606ff73a9cca0b" +source = "git+https://github.com/gtk-rs/gtk4-rs?branch=main#97e11090d9a63b70b1a8e88b952fca2cef459209" dependencies = [ "cairo-sys-rs", "gdk4-sys", @@ -3447,7 +3447,7 @@ dependencies = [ [[package]] name = "gstreamer" version = "0.24.0" -source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#ab43303c7ae111124f284e1307e41f36ca0c9933" +source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#161f2bca0a8bb14142f2bdc45001eddf24accd5e" dependencies = [ "cfg-if", "futures-channel", @@ -3473,7 +3473,7 @@ dependencies = [ [[package]] name = "gstreamer-allocators" version = "0.24.0" -source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#ab43303c7ae111124f284e1307e41f36ca0c9933" +source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#161f2bca0a8bb14142f2bdc45001eddf24accd5e" dependencies = [ "glib", "gstreamer", @@ -3484,7 +3484,7 @@ dependencies = [ [[package]] name = "gstreamer-allocators-sys" version = "0.24.0" -source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#ab43303c7ae111124f284e1307e41f36ca0c9933" +source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#161f2bca0a8bb14142f2bdc45001eddf24accd5e" dependencies = [ "glib-sys", "gobject-sys", @@ -3496,7 +3496,7 @@ dependencies = [ [[package]] name = "gstreamer-analytics" version = "0.24.0" -source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#ab43303c7ae111124f284e1307e41f36ca0c9933" +source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#161f2bca0a8bb14142f2bdc45001eddf24accd5e" dependencies = [ "glib", "gstreamer", @@ -3507,7 +3507,7 @@ dependencies = [ [[package]] name = "gstreamer-analytics-sys" version = "0.24.0" -source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#ab43303c7ae111124f284e1307e41f36ca0c9933" +source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#161f2bca0a8bb14142f2bdc45001eddf24accd5e" dependencies = [ "glib-sys", "gstreamer-sys", @@ -3518,7 +3518,7 @@ dependencies = [ [[package]] name = "gstreamer-app" version = "0.24.0" -source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#ab43303c7ae111124f284e1307e41f36ca0c9933" +source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#161f2bca0a8bb14142f2bdc45001eddf24accd5e" dependencies = [ "futures-core", "futures-sink", @@ -3532,7 +3532,7 @@ dependencies = [ [[package]] name = "gstreamer-app-sys" version = "0.24.0" -source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#ab43303c7ae111124f284e1307e41f36ca0c9933" +source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#161f2bca0a8bb14142f2bdc45001eddf24accd5e" dependencies = [ "glib-sys", "gstreamer-base-sys", @@ -3544,7 +3544,7 @@ dependencies = [ [[package]] name = "gstreamer-audio" version = "0.24.0" -source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#ab43303c7ae111124f284e1307e41f36ca0c9933" +source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#161f2bca0a8bb14142f2bdc45001eddf24accd5e" dependencies = [ "cfg-if", "glib", @@ -3559,7 +3559,7 @@ dependencies = [ [[package]] name = "gstreamer-audio-sys" version = "0.24.0" -source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#ab43303c7ae111124f284e1307e41f36ca0c9933" +source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#161f2bca0a8bb14142f2bdc45001eddf24accd5e" dependencies = [ "glib-sys", "gobject-sys", @@ -3572,7 +3572,7 @@ dependencies = [ [[package]] name = "gstreamer-base" version = "0.24.0" -source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#ab43303c7ae111124f284e1307e41f36ca0c9933" +source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#161f2bca0a8bb14142f2bdc45001eddf24accd5e" dependencies = [ "atomic_refcell", "cfg-if", @@ -3585,7 +3585,7 @@ dependencies = [ [[package]] name = "gstreamer-base-sys" version = "0.24.0" -source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#ab43303c7ae111124f284e1307e41f36ca0c9933" +source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#161f2bca0a8bb14142f2bdc45001eddf24accd5e" dependencies = [ "glib-sys", "gobject-sys", @@ -3597,7 +3597,7 @@ dependencies = [ [[package]] name = "gstreamer-check" version = "0.24.0" -source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#ab43303c7ae111124f284e1307e41f36ca0c9933" +source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#161f2bca0a8bb14142f2bdc45001eddf24accd5e" dependencies = [ "glib", "gstreamer", @@ -3607,7 +3607,7 @@ dependencies = [ [[package]] name = "gstreamer-check-sys" version = "0.24.0" -source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#ab43303c7ae111124f284e1307e41f36ca0c9933" +source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#161f2bca0a8bb14142f2bdc45001eddf24accd5e" dependencies = [ "glib-sys", "gobject-sys", @@ -3619,7 +3619,7 @@ dependencies = [ [[package]] name = "gstreamer-gl" version = "0.24.0" -source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#ab43303c7ae111124f284e1307e41f36ca0c9933" +source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#161f2bca0a8bb14142f2bdc45001eddf24accd5e" dependencies = [ "glib", "gstreamer", @@ -3632,7 +3632,7 @@ dependencies = [ [[package]] name = "gstreamer-gl-egl" version = "0.24.0" -source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#ab43303c7ae111124f284e1307e41f36ca0c9933" +source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#161f2bca0a8bb14142f2bdc45001eddf24accd5e" dependencies = [ "glib", "gstreamer", @@ -3644,7 +3644,7 @@ dependencies = [ [[package]] name = "gstreamer-gl-egl-sys" version = "0.24.0" -source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#ab43303c7ae111124f284e1307e41f36ca0c9933" +source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#161f2bca0a8bb14142f2bdc45001eddf24accd5e" dependencies = [ "glib-sys", "gstreamer-gl-sys", @@ -3655,7 +3655,7 @@ dependencies = [ [[package]] name = "gstreamer-gl-sys" version = "0.24.0" -source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#ab43303c7ae111124f284e1307e41f36ca0c9933" +source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#161f2bca0a8bb14142f2bdc45001eddf24accd5e" dependencies = [ "glib-sys", "gobject-sys", @@ -3669,7 +3669,7 @@ dependencies = [ [[package]] name = "gstreamer-gl-wayland" version = "0.24.0" -source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#ab43303c7ae111124f284e1307e41f36ca0c9933" +source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#161f2bca0a8bb14142f2bdc45001eddf24accd5e" dependencies = [ "glib", "gstreamer", @@ -3681,7 +3681,7 @@ dependencies = [ [[package]] name = "gstreamer-gl-wayland-sys" version = "0.24.0" -source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#ab43303c7ae111124f284e1307e41f36ca0c9933" +source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#161f2bca0a8bb14142f2bdc45001eddf24accd5e" dependencies = [ "glib-sys", "gstreamer-gl-sys", @@ -3692,7 +3692,7 @@ dependencies = [ [[package]] name = "gstreamer-gl-x11" version = "0.24.0" -source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#ab43303c7ae111124f284e1307e41f36ca0c9933" +source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#161f2bca0a8bb14142f2bdc45001eddf24accd5e" dependencies = [ "glib", "gstreamer", @@ -3704,7 +3704,7 @@ dependencies = [ [[package]] name = "gstreamer-gl-x11-sys" version = "0.24.0" -source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#ab43303c7ae111124f284e1307e41f36ca0c9933" +source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#161f2bca0a8bb14142f2bdc45001eddf24accd5e" dependencies = [ "glib-sys", "gstreamer-gl-sys", @@ -3715,7 +3715,7 @@ dependencies = [ [[package]] name = "gstreamer-net" version = "0.24.0" -source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#ab43303c7ae111124f284e1307e41f36ca0c9933" +source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#161f2bca0a8bb14142f2bdc45001eddf24accd5e" dependencies = [ "gio", "glib", @@ -3726,7 +3726,7 @@ dependencies = [ [[package]] name = "gstreamer-net-sys" version = "0.24.0" -source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#ab43303c7ae111124f284e1307e41f36ca0c9933" +source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#161f2bca0a8bb14142f2bdc45001eddf24accd5e" dependencies = [ "gio-sys", "glib-sys", @@ -3738,7 +3738,7 @@ dependencies = [ [[package]] name = "gstreamer-pbutils" version = "0.24.0" -source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#ab43303c7ae111124f284e1307e41f36ca0c9933" +source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#161f2bca0a8bb14142f2bdc45001eddf24accd5e" dependencies = [ "glib", "gstreamer", @@ -3752,7 +3752,7 @@ dependencies = [ [[package]] name = "gstreamer-pbutils-sys" version = "0.24.0" -source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#ab43303c7ae111124f284e1307e41f36ca0c9933" +source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#161f2bca0a8bb14142f2bdc45001eddf24accd5e" dependencies = [ "glib-sys", "gobject-sys", @@ -3766,7 +3766,7 @@ dependencies = [ [[package]] name = "gstreamer-rtp" version = "0.24.0" -source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#ab43303c7ae111124f284e1307e41f36ca0c9933" +source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#161f2bca0a8bb14142f2bdc45001eddf24accd5e" dependencies = [ "glib", "gstreamer", @@ -3777,7 +3777,7 @@ dependencies = [ [[package]] name = "gstreamer-rtp-sys" version = "0.24.0" -source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#ab43303c7ae111124f284e1307e41f36ca0c9933" +source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#161f2bca0a8bb14142f2bdc45001eddf24accd5e" dependencies = [ "glib-sys", "gstreamer-base-sys", @@ -3789,7 +3789,7 @@ dependencies = [ [[package]] name = "gstreamer-sdp" version = "0.24.0" -source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#ab43303c7ae111124f284e1307e41f36ca0c9933" +source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#161f2bca0a8bb14142f2bdc45001eddf24accd5e" dependencies = [ "glib", "gstreamer", @@ -3799,7 +3799,7 @@ dependencies = [ [[package]] name = "gstreamer-sdp-sys" version = "0.24.0" -source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#ab43303c7ae111124f284e1307e41f36ca0c9933" +source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#161f2bca0a8bb14142f2bdc45001eddf24accd5e" dependencies = [ "glib-sys", "gstreamer-sys", @@ -3810,7 +3810,7 @@ dependencies = [ [[package]] name = "gstreamer-sys" version = "0.24.0" -source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#ab43303c7ae111124f284e1307e41f36ca0c9933" +source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#161f2bca0a8bb14142f2bdc45001eddf24accd5e" dependencies = [ "cfg-if", "glib-sys", @@ -3822,7 +3822,7 @@ dependencies = [ [[package]] name = "gstreamer-utils" version = "0.24.0" -source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#ab43303c7ae111124f284e1307e41f36ca0c9933" +source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#161f2bca0a8bb14142f2bdc45001eddf24accd5e" dependencies = [ "gstreamer", "gstreamer-app", @@ -3833,7 +3833,7 @@ dependencies = [ [[package]] name = "gstreamer-video" version = "0.24.0" -source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#ab43303c7ae111124f284e1307e41f36ca0c9933" +source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#161f2bca0a8bb14142f2bdc45001eddf24accd5e" dependencies = [ "cfg-if", "futures-channel", @@ -3849,7 +3849,7 @@ dependencies = [ [[package]] name = "gstreamer-video-sys" version = "0.24.0" -source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#ab43303c7ae111124f284e1307e41f36ca0c9933" +source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#161f2bca0a8bb14142f2bdc45001eddf24accd5e" dependencies = [ "glib-sys", "gobject-sys", @@ -3862,7 +3862,7 @@ dependencies = [ [[package]] name = "gstreamer-webrtc" version = "0.24.0" -source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#ab43303c7ae111124f284e1307e41f36ca0c9933" +source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#161f2bca0a8bb14142f2bdc45001eddf24accd5e" dependencies = [ "glib", "gstreamer", @@ -3874,7 +3874,7 @@ dependencies = [ [[package]] name = "gstreamer-webrtc-sys" version = "0.24.0" -source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#ab43303c7ae111124f284e1307e41f36ca0c9933" +source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=main#161f2bca0a8bb14142f2bdc45001eddf24accd5e" dependencies = [ "glib-sys", "gstreamer-sdp-sys", @@ -3886,7 +3886,7 @@ dependencies = [ [[package]] name = "gtk4" version = "0.10.0" -source = "git+https://github.com/gtk-rs/gtk4-rs?branch=main#bef79033a1c4e921f44e33d36a606ff73a9cca0b" +source = "git+https://github.com/gtk-rs/gtk4-rs?branch=main#97e11090d9a63b70b1a8e88b952fca2cef459209" dependencies = [ "cairo-rs", "field-offset", @@ -3906,7 +3906,7 @@ dependencies = [ [[package]] name = "gtk4-macros" version = "0.10.0" -source = "git+https://github.com/gtk-rs/gtk4-rs?branch=main#bef79033a1c4e921f44e33d36a606ff73a9cca0b" +source = "git+https://github.com/gtk-rs/gtk4-rs?branch=main#97e11090d9a63b70b1a8e88b952fca2cef459209" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -3917,7 +3917,7 @@ dependencies = [ [[package]] name = "gtk4-sys" version = "0.10.0" -source = "git+https://github.com/gtk-rs/gtk4-rs?branch=main#bef79033a1c4e921f44e33d36a606ff73a9cca0b" +source = "git+https://github.com/gtk-rs/gtk4-rs?branch=main#97e11090d9a63b70b1a8e88b952fca2cef459209" dependencies = [ "cairo-sys-rs", "gdk-pixbuf-sys", @@ -5537,7 +5537,7 @@ dependencies = [ [[package]] name = "pango" version = "0.21.0" -source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=main#bd2757991efd34315c3902c8f71de306f43b129a" +source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=main#8042abb81c9bb26c423f3703ff3d59698caa584f" dependencies = [ "gio", "glib", @@ -5548,7 +5548,7 @@ dependencies = [ [[package]] name = "pango-sys" version = "0.21.0" -source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=main#bd2757991efd34315c3902c8f71de306f43b129a" +source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=main#8042abb81c9bb26c423f3703ff3d59698caa584f" dependencies = [ "glib-sys", "gobject-sys", @@ -5559,7 +5559,7 @@ dependencies = [ [[package]] name = "pangocairo" version = "0.21.0" -source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=main#bd2757991efd34315c3902c8f71de306f43b129a" +source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=main#8042abb81c9bb26c423f3703ff3d59698caa584f" dependencies = [ "cairo-rs", "glib", @@ -5571,7 +5571,7 @@ dependencies = [ [[package]] name = "pangocairo-sys" version = "0.21.0" -source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=main#bd2757991efd34315c3902c8f71de306f43b129a" +source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=main#8042abb81c9bb26c423f3703ff3d59698caa584f" dependencies = [ "cairo-sys-rs", "glib-sys", @@ -6136,7 +6136,7 @@ dependencies = [ "once_cell", "socket2", "tracing", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -6612,7 +6612,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -7487,7 +7487,7 @@ dependencies = [ "getrandom 0.3.1", "once_cell", "rustix", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] diff --git a/generic/threadshare/src/socket.rs b/generic/threadshare/src/socket.rs index 9c0e62c90..c91f3182c 100644 --- a/generic/threadshare/src/socket.rs +++ b/generic/threadshare/src/socket.rs @@ -33,13 +33,10 @@ use std::net::UdpSocket; use crate::runtime::Async; #[cfg(unix)] -use std::os::{ - fd::BorrowedFd, - unix::io::{AsRawFd, FromRawFd, IntoRawFd, RawFd}, -}; +use std::os::fd::OwnedFd; #[cfg(windows)] -use std::os::windows::io::{AsRawSocket, FromRawSocket, IntoRawSocket, RawSocket}; +use std::os::windows::io::OwnedSocket; static SOCKET_CAT: LazyLock = LazyLock::new(|| { gst::DebugCategory::new( @@ -207,14 +204,14 @@ impl Drop for Socket { } // Send/Sync struct for passing around a gio::Socket -// and getting the raw fd from it +// and getting the fd from it // // gio::Socket is not Send/Sync as it's generally unsafe // to access it from multiple threads. Getting the underlying raw // fd is safe though, as is receiving/sending from two different threads -#[derive(Debug)] +#[derive(Debug, Clone)] pub struct GioSocketWrapper { - socket: *mut gio::ffi::GSocket, + socket: gio::Socket, } unsafe impl Send for GioSocketWrapper {} @@ -222,19 +219,13 @@ unsafe impl Sync for GioSocketWrapper {} impl GioSocketWrapper { pub fn new(socket: &gio::Socket) -> Self { - use glib::translate::*; - Self { - socket: socket.to_glib_full(), + socket: socket.clone(), } } - pub fn as_socket(&self) -> gio::Socket { - unsafe { - use glib::translate::*; - - from_glib_none(self.socket) - } + pub fn as_socket(&self) -> &gio::Socket { + &self.socket } #[cfg(any( @@ -252,6 +243,8 @@ impl GioSocketWrapper { target_env = "newlib" ))] pub fn set_tos(&self, qos_dscp: i32) -> rustix::io::Result<()> { + use std::os::fd::AsFd; + use gio::prelude::*; use rustix::net::sockopt; @@ -259,16 +252,10 @@ impl GioSocketWrapper { let socket = self.as_socket(); - sockopt::set_ip_tos( - unsafe { BorrowedFd::borrow_raw(socket.as_raw_fd()) }, - tos as u8, - )?; + sockopt::set_ip_tos(socket.as_fd(), tos as u8)?; if socket.family() == gio::SocketFamily::Ipv6 { - sockopt::set_ipv6_tclass( - unsafe { BorrowedFd::borrow_raw(socket.as_raw_fd()) }, - tos as u32, - )?; + sockopt::set_ipv6_tclass(socket.as_fd(), tos as u32)?; } Ok(()) @@ -293,96 +280,36 @@ impl GioSocketWrapper { } #[cfg(not(windows))] - pub fn get(&self) -> T { - unsafe { - let borrowed = - rustix::fd::BorrowedFd::borrow_raw(gio::ffi::g_socket_get_fd(self.socket)); + pub fn get>(&self) -> T { + use std::os::fd::AsFd; - let dupped = rustix::io::dup(borrowed).unwrap(); - let res = FromRawFd::from_raw_fd(dupped.as_raw_fd()); - - // We transferred ownership to T so don't drop dupped - std::mem::forget(dupped); - - res - } + let fd = self.socket.as_fd(); + let fd = fd.try_clone_to_owned().unwrap(); + T::from(fd) } #[cfg(windows)] - pub fn get(&self) -> T { + pub fn get>(&self) -> T { unsafe { - FromRawSocket::from_raw_socket( - dup_socket(gio::ffi::g_socket_get_fd(self.socket) as _) as _ - ) + use std::os::windows::io::{AsRawSocket, BorrowedSocket}; + + let socket = self.socket.as_raw_socket(); + let socket = BorrowedSocket::borrow_raw(socket); + let socket = socket.try_clone_to_owned().unwrap(); + T::from(socket) } } } -impl Clone for GioSocketWrapper { - fn clone(&self) -> Self { - Self { - socket: unsafe { glib::gobject_ffi::g_object_ref(self.socket as *mut _) as *mut _ }, - } - } -} - -impl Drop for GioSocketWrapper { - fn drop(&mut self) { - unsafe { - glib::gobject_ffi::g_object_unref(self.socket as *mut _); - } - } -} - -#[cfg(windows)] -unsafe fn dup_socket(socket: usize) -> usize { - use std::mem; - use winapi::shared::ws2def; - use winapi::um::processthreadsapi; - use winapi::um::winsock2; - - let mut proto_info = mem::MaybeUninit::uninit(); - let ret = winsock2::WSADuplicateSocketA( - socket, - processthreadsapi::GetCurrentProcessId(), - proto_info.as_mut_ptr(), - ); - assert_eq!(ret, 0); - let mut proto_info = proto_info.assume_init(); - - let socket = winsock2::WSASocketA( - ws2def::AF_INET, - ws2def::SOCK_DGRAM, - ws2def::IPPROTO_UDP as i32, - &mut proto_info, - 0, - 0, - ); - - assert_ne!(socket, winsock2::INVALID_SOCKET); - - socket -} - pub fn wrap_socket(socket: &Async) -> Result { #[cfg(unix)] - unsafe { - let dupped = rustix::io::dup(socket).unwrap(); + { + use std::os::fd::AsFd; - // This is unsafe because it allows us to share the fd between the socket and the - // GIO socket below, but safety of this is the job of the application - struct FdConverter(RawFd); - impl IntoRawFd for FdConverter { - fn into_raw_fd(self) -> RawFd { - self.0 - } - } - - let fd = FdConverter(dupped.as_raw_fd()); + let fd = socket.as_fd(); + let fd = fd.try_clone_to_owned().unwrap(); let gio_socket = gio::Socket::from_fd(fd); - // We transferred ownership to gio_socket so don't drop dupped - std::mem::forget(dupped); let gio_socket = gio_socket.map_err(|err| { gst::error_msg!( gst::ResourceError::OpenWrite, @@ -394,20 +321,13 @@ pub fn wrap_socket(socket: &Async) -> Result RawSocket { - self.0 - } - } + let socket = socket.as_raw_socket(); + let socket = BorrowedSocket::borrow_raw(socket); + let socket = socket.try_clone_to_owned().unwrap(); - let fd = SocketConverter(fd); - - let gio_socket = gio::Socket::from_socket(fd).map_err(|err| { + let gio_socket = gio::Socket::from_socket(socket).map_err(|err| { gst::error_msg!( gst::ResourceError::OpenWrite, ["Failed to create wrapped GIO socket: {}", err] diff --git a/net/webrtc/examples/webrtc-precise-sync-recv.rs b/net/webrtc/examples/webrtc-precise-sync-recv.rs index b97a8dc55..b9122c745 100644 --- a/net/webrtc/examples/webrtc-precise-sync-recv.rs +++ b/net/webrtc/examples/webrtc-precise-sync-recv.rs @@ -132,8 +132,8 @@ fn spawn_consumer( // * https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/914 // * https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1574 .property_if("do-retransmission", false, args.expect_clock_signalling) - .property_if_not_empty::("audio-codecs", &args.audio_codecs) - .property_if_not_empty::("video-codecs", &args.video_codecs) + .property_if_not_empty::("audio-codecs", &args.audio_codecs) + .property_if_not_empty::("video-codecs", &args.video_codecs) .build() .context("Creating webrtcsrc")?; diff --git a/net/webrtc/src/webrtcsrc/imp.rs b/net/webrtc/src/webrtcsrc/imp.rs index c60a630e6..5ca6d865a 100644 --- a/net/webrtc/src/webrtcsrc/imp.rs +++ b/net/webrtc/src/webrtcsrc/imp.rs @@ -1939,7 +1939,7 @@ pub(super) mod livekit { .field("can-subscribe", participant_permission.can_subscribe) .field("can-publish", participant_permission.can_publish) .field("can-publish-data", participant_permission.can_publish_data) - .field_from_iter::( + .field_from_iter::( "can-publish-sources", participant_permission .can_publish_sources @@ -2006,7 +2006,7 @@ pub(super) mod livekit { .map(|s| s.as_str_name()) .unwrap_or("unknown"), ) - .field_from_iter::( + .field_from_iter::( "tracks", participant_info.tracks.iter().map(track_info_to_structure), ) diff --git a/video/cdg/src/cdgdec/imp.rs b/video/cdg/src/cdgdec/imp.rs index f7d20d99b..c675901af 100644 --- a/video/cdg/src/cdgdec/imp.rs +++ b/video/cdg/src/cdgdec/imp.rs @@ -121,7 +121,7 @@ impl VideoDecoderImpl for CdgDec { instance.negotiate(output_state)?; let out_state = instance.output_state().unwrap(); - *out_info = Some(out_state.info()); + *out_info = Some(out_state.info().clone()); } } diff --git a/video/dav1d/src/dav1ddec/imp.rs b/video/dav1d/src/dav1ddec/imp.rs index 70c9b872c..b7065d903 100644 --- a/video/dav1d/src/dav1ddec/imp.rs +++ b/video/dav1d/src/dav1ddec/imp.rs @@ -362,7 +362,7 @@ impl Dav1dDec { let mut output_state = instance.set_output_state(format, pic.width(), pic.height(), Some(&input_state))?; let info = output_state.info(); - let mut info_builder = gst_video::VideoInfo::builder_from_info(&info); + let mut info_builder = gst_video::VideoInfo::builder_from_info(info); let mut update_output_state = false; let input_colorimetry = info.colorimetry(); @@ -422,7 +422,7 @@ impl Dav1dDec { state_guard = self.state.lock().unwrap(); let state = state_guard.as_mut().ok_or(gst::FlowError::Flushing)?; - state.output_info = Some(out_state.info()); + state.output_info = Some(out_state.info().clone()); Ok(state_guard) } @@ -625,7 +625,7 @@ impl Dav1dDec { assert!(mut_buffer.size() > 0); - let mut vframe = gst_video::VideoFrameRef::from_buffer_ref_writable(mut_buffer, &info) + let mut vframe = gst_video::VideoFrameRef::from_buffer_ref_writable(mut_buffer, info) .expect("can map writable frame"); for (idx, &component) in components.iter().enumerate() { diff --git a/video/ffv1/src/ffv1dec/imp.rs b/video/ffv1/src/ffv1dec/imp.rs index 187cf664f..e7020bd17 100644 --- a/video/ffv1/src/ffv1dec/imp.rs +++ b/video/ffv1/src/ffv1dec/imp.rs @@ -372,7 +372,7 @@ impl VideoDecoderImpl for Ffv1Dec { .set_output_state(format, info.width(), info.height(), Some(state)) .map_err(|err| gst::loggable_error!(CAT, "Failed to set output params: {}", err))?; - let output_info = Some(output_state.info()); + let output_info = Some(output_state.info().clone()); let mut decoder_state = self.state.lock().unwrap(); *decoder_state = DecoderState::Started { diff --git a/video/gif/src/gifenc/imp.rs b/video/gif/src/gifenc/imp.rs index 02f5ce2d6..060f1e7ff 100644 --- a/video/gif/src/gifenc/imp.rs +++ b/video/gif/src/gifenc/imp.rs @@ -269,7 +269,7 @@ impl VideoEncoderImpl for GifEnc { gst::debug!(CAT, imp = self, "Setting format {:?}", video_info); { - let mut state = State::new(video_info); + let mut state = State::new(video_info.clone()); let settings = self.settings.lock().unwrap(); state.reset(*settings); *self.state.borrow_mut() = Some(state); diff --git a/video/png/src/pngenc/imp.rs b/video/png/src/pngenc/imp.rs index f37cb57d2..0d3086446 100644 --- a/video/png/src/pngenc/imp.rs +++ b/video/png/src/pngenc/imp.rs @@ -177,7 +177,7 @@ impl VideoEncoderImpl for PngEncoder { &self, state: &gst_video::VideoCodecState<'static, gst_video::video_codec_state::Readable>, ) -> Result<(), gst::LoggableError> { - let video_info = state.info(); + let video_info = state.info().clone(); gst::debug!(CAT, imp = self, "Setting format {:?}", video_info); *self.state.lock() = Some(State { video_info }); diff --git a/video/rav1e/src/rav1enc/imp.rs b/video/rav1e/src/rav1enc/imp.rs index 965d699dd..a5d3e4b68 100644 --- a/video/rav1e/src/rav1enc/imp.rs +++ b/video/rav1e/src/rav1enc/imp.rs @@ -574,7 +574,7 @@ impl VideoEncoderImpl for Rav1Enc { self.finish() .map_err(|_| gst::loggable_error!(CAT, "Failed to drain"))?; - let video_info = state.info(); + let video_info = state.info().clone(); gst::debug!(CAT, imp = self, "Setting format {:?}", video_info); let settings = self.settings.lock().unwrap(); diff --git a/video/vvdec/src/dec/imp.rs b/video/vvdec/src/dec/imp.rs index e62404d49..573d34af0 100644 --- a/video/vvdec/src/dec/imp.rs +++ b/video/vvdec/src/dec/imp.rs @@ -254,7 +254,7 @@ impl VVdeC { let mut state_guard = self.state.lock().unwrap(); let state = state_guard.as_mut().ok_or(gst::FlowError::Flushing)?; - state.output_info = Some(out_state.info()); + state.output_info = Some(out_state.info().clone()); gst::trace!(CAT, imp = self, "Negotiated format");