feat(gst): enhance GStreamer integration with new modules and improved API
Some checks failed
build / checks-matrix (push) Has been cancelled
build / codecov (push) Has been cancelled
docs / docs (push) Has been cancelled
build / checks-build (push) Has been cancelled

This commit introduces significant enhancements to the GStreamer integration by:
- Adding new modules for bins, caps, elements, pads, and plugins
- Implementing a more ergonomic API with helper methods like play(), pause(), ready()
- Adding support for various GStreamer plugins including app, autodetect, playback, and videoconvertscale
- Improving error handling with better context attachment
- Updating dependencies to latest versions including gstreamer-video 0.24.4
- Refactoring existing code to use modern Rust patterns and features
This commit is contained in:
uttarayan21
2025-12-17 23:35:05 +05:30
parent 21cbaff610
commit d42ef3b550
19 changed files with 619 additions and 117 deletions

44
Cargo.lock generated
View File

@@ -3053,8 +3053,10 @@ dependencies = [
"glib 0.21.5",
"gstreamer 0.24.4",
"gstreamer-app 0.24.4",
"gstreamer-video 0.24.4",
"thiserror 2.0.17",
"tracing",
"tracing-subscriber",
"wgpu",
]
@@ -3254,12 +3256,28 @@ dependencies = [
"glib 0.20.12",
"gstreamer 0.23.7",
"gstreamer-base 0.23.6",
"gstreamer-video-sys",
"gstreamer-video-sys 0.23.6",
"libc",
"once_cell",
"thiserror 2.0.17",
]
[[package]]
name = "gstreamer-video"
version = "0.24.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "33987f6a6a99750a07b0341d6288bac89b9b301be4672a209935203d4608d547"
dependencies = [
"cfg-if",
"futures-channel",
"glib 0.21.5",
"gstreamer 0.24.4",
"gstreamer-base 0.24.4",
"gstreamer-video-sys 0.24.4",
"libc",
"thiserror 2.0.17",
]
[[package]]
name = "gstreamer-video-sys"
version = "0.23.6"
@@ -3274,6 +3292,20 @@ dependencies = [
"system-deps",
]
[[package]]
name = "gstreamer-video-sys"
version = "0.24.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a00c28faad96cd40a7b7592433051199691b131b08f622ed5d51c54e049792d3"
dependencies = [
"glib-sys 0.21.5",
"gobject-sys 0.21.5",
"gstreamer-base-sys 0.24.4",
"gstreamer-sys 0.24.4",
"libc",
"system-deps",
]
[[package]]
name = "guillotiere"
version = "0.6.2"
@@ -3351,10 +3383,10 @@ name = "hdr-gstreamer-wgpu"
version = "0.1.0"
dependencies = [
"anyhow",
"gstreamer 0.23.7",
"gstreamer-app 0.23.5",
"gstreamer-base 0.23.6",
"gstreamer-video",
"gstreamer 0.24.4",
"gstreamer-app 0.24.4",
"gstreamer-base 0.24.4",
"gstreamer-video 0.23.6",
"pollster 0.4.0",
"tracing",
"tracing-subscriber",
@@ -3735,7 +3767,7 @@ dependencies = [
"gstreamer 0.23.7",
"gstreamer-app 0.23.5",
"gstreamer-base 0.23.6",
"gstreamer-video",
"gstreamer-video 0.23.6",
"iced",
"iced_wgpu",
"log",