feat(gst): Added gst a high level wrapper over gstreamer

chore(example): Added hdr-gstreamer-wgpu example
chore(license): Added MIT license to all crates
This commit is contained in:
uttarayan21
2025-12-16 02:23:30 +05:30
parent 6cc83ba655
commit 7f9152e8fd
26 changed files with 2815 additions and 53 deletions

347
Cargo.lock generated
View File

@@ -628,7 +628,7 @@ dependencies = [
"log",
"num-rational",
"num-traits",
"pastey",
"pastey 0.1.1",
"rayon",
"thiserror 2.0.17",
"v_frame",
@@ -2524,13 +2524,26 @@ version = "0.20.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "521e93a7e56fc89e84aea9a52cfc9436816a4b363b030260b699950ff1336c83"
dependencies = [
"glib-sys",
"gobject-sys",
"glib-sys 0.20.10",
"gobject-sys 0.20.10",
"libc",
"system-deps",
"windows-sys 0.59.0",
]
[[package]]
name = "gio-sys"
version = "0.21.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0071fe88dba8e40086c8ff9bbb62622999f49628344b1d1bf490a48a29d80f22"
dependencies = [
"glib-sys 0.21.5",
"gobject-sys 0.21.5",
"libc",
"system-deps",
"windows-sys 0.61.2",
]
[[package]]
name = "gl_generator"
version = "0.14.0"
@@ -2560,10 +2573,31 @@ dependencies = [
"futures-executor",
"futures-task",
"futures-util",
"gio-sys",
"glib-macros",
"glib-sys",
"gobject-sys",
"gio-sys 0.20.10",
"glib-macros 0.20.12",
"glib-sys 0.20.10",
"gobject-sys 0.20.10",
"libc",
"memchr",
"smallvec",
]
[[package]]
name = "glib"
version = "0.21.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "16de123c2e6c90ce3b573b7330de19be649080ec612033d397d72da265f1bd8b"
dependencies = [
"bitflags 2.10.0",
"futures-channel",
"futures-core",
"futures-executor",
"futures-task",
"futures-util",
"gio-sys 0.21.5",
"glib-macros 0.21.5",
"glib-sys 0.21.5",
"gobject-sys 0.21.5",
"libc",
"memchr",
"smallvec",
@@ -2582,6 +2616,19 @@ dependencies = [
"syn 2.0.110",
]
[[package]]
name = "glib-macros"
version = "0.21.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cf59b675301228a696fe01c3073974643365080a76cc3ed5bc2cbc466ad87f17"
dependencies = [
"heck 0.5.0",
"proc-macro-crate",
"proc-macro2",
"quote",
"syn 2.0.110",
]
[[package]]
name = "glib-sys"
version = "0.20.10"
@@ -2592,6 +2639,16 @@ dependencies = [
"system-deps",
]
[[package]]
name = "glib-sys"
version = "0.21.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2d95e1a3a19ae464a7286e14af9a90683c64d70c02532d88d87ce95056af3e6c"
dependencies = [
"libc",
"system-deps",
]
[[package]]
name = "glob"
version = "0.3.3"
@@ -2650,7 +2707,18 @@ version = "0.20.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ec9aca94bb73989e3cfdbf8f2e0f1f6da04db4d291c431f444838925c4c63eda"
dependencies = [
"glib-sys",
"glib-sys 0.20.10",
"libc",
"system-deps",
]
[[package]]
name = "gobject-sys"
version = "0.21.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2dca35da0d19a18f4575f3cb99fe1c9e029a2941af5662f326f738a21edaf294"
dependencies = [
"glib-sys 0.21.5",
"libc",
"system-deps",
]
@@ -2977,6 +3045,18 @@ version = "0.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "12101ecc8225ea6d675bc70263074eab6169079621c2186fe0c66590b2df9681"
[[package]]
name = "gst"
version = "0.1.0"
dependencies = [
"error-stack",
"gstreamer 0.24.4",
"gstreamer-app 0.24.4",
"thiserror 2.0.17",
"tracing",
"wgpu",
]
[[package]]
name = "gstreamer"
version = "0.23.7"
@@ -2987,21 +3067,46 @@ dependencies = [
"futures-channel",
"futures-core",
"futures-util",
"glib",
"gstreamer-sys",
"glib 0.20.12",
"gstreamer-sys 0.23.6",
"itertools 0.14.0",
"libc",
"muldiv",
"num-integer",
"num-rational",
"once_cell",
"option-operations",
"option-operations 0.5.0",
"paste",
"pin-project-lite",
"smallvec",
"thiserror 2.0.17",
]
[[package]]
name = "gstreamer"
version = "0.24.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0bed73742c5d54cb48533be608b67d89f96e1ebbba280be7823f1ef995e3a9d7"
dependencies = [
"cfg-if",
"futures-channel",
"futures-core",
"futures-util",
"glib 0.21.5",
"gstreamer-sys 0.24.4",
"itertools 0.14.0",
"kstring",
"libc",
"muldiv",
"num-integer",
"num-rational",
"option-operations 0.6.1",
"pastey 0.2.0",
"pin-project-lite",
"smallvec",
"thiserror 2.0.17",
]
[[package]]
name = "gstreamer-app"
version = "0.23.5"
@@ -3010,10 +3115,25 @@ checksum = "2e9a883eb21aebcf1289158225c05f7aea5da6ecf71fa7f0ff1ce4d25baf004e"
dependencies = [
"futures-core",
"futures-sink",
"glib",
"gstreamer",
"gstreamer-app-sys",
"gstreamer-base",
"glib 0.20.12",
"gstreamer 0.23.7",
"gstreamer-app-sys 0.23.5",
"gstreamer-base 0.23.6",
"libc",
]
[[package]]
name = "gstreamer-app"
version = "0.24.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "895753fb0f976693f321e6b9d68f746ef9095f1a5b8277c11d85d807a949fbfc"
dependencies = [
"futures-core",
"futures-sink",
"glib 0.21.5",
"gstreamer 0.24.4",
"gstreamer-app-sys 0.24.4",
"gstreamer-base 0.24.4",
"libc",
]
@@ -3023,9 +3143,22 @@ version = "0.23.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "94f7ef838306fe51852d503a14dc79ac42de005a59008a05098de3ecdaf05455"
dependencies = [
"glib-sys",
"gstreamer-base-sys",
"gstreamer-sys",
"glib-sys 0.20.10",
"gstreamer-base-sys 0.23.6",
"gstreamer-sys 0.23.6",
"libc",
"system-deps",
]
[[package]]
name = "gstreamer-app-sys"
version = "0.24.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f7719cee28afda1a48ab1ee93769628bd0653d3c5be1923bce9a8a4550fcc980"
dependencies = [
"glib-sys 0.21.5",
"gstreamer-base-sys 0.24.4",
"gstreamer-sys 0.24.4",
"libc",
"system-deps",
]
@@ -3038,9 +3171,23 @@ checksum = "f19a74fd04ffdcb847dd322640f2cf520897129d00a7bcb92fd62a63f3e27404"
dependencies = [
"atomic_refcell",
"cfg-if",
"glib",
"gstreamer",
"gstreamer-base-sys",
"glib 0.20.12",
"gstreamer 0.23.7",
"gstreamer-base-sys 0.23.6",
"libc",
]
[[package]]
name = "gstreamer-base"
version = "0.24.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4dd15c7e37d306573766834a5cbdd8ee711265f217b060f40a9a8eda45298488"
dependencies = [
"atomic_refcell",
"cfg-if",
"glib 0.21.5",
"gstreamer 0.24.4",
"gstreamer-base-sys 0.24.4",
"libc",
]
@@ -3050,9 +3197,22 @@ version = "0.23.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "87f2fb0037b6d3c5b51f60dea11e667910f33be222308ca5a101450018a09840"
dependencies = [
"glib-sys",
"gobject-sys",
"gstreamer-sys",
"glib-sys 0.20.10",
"gobject-sys 0.20.10",
"gstreamer-sys 0.23.6",
"libc",
"system-deps",
]
[[package]]
name = "gstreamer-base-sys"
version = "0.24.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "27a2eda2c61e13c11883bf19b290d07ea6b53d04fd8bfeb7af64b6006c6c9ee6"
dependencies = [
"glib-sys 0.21.5",
"gobject-sys 0.21.5",
"gstreamer-sys 0.24.4",
"libc",
"system-deps",
]
@@ -3063,8 +3223,21 @@ version = "0.23.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "feea73b4d92dbf9c24a203c9cd0bcc740d584f6b5960d5faf359febf288919b2"
dependencies = [
"glib-sys",
"gobject-sys",
"glib-sys 0.20.10",
"gobject-sys 0.20.10",
"libc",
"system-deps",
]
[[package]]
name = "gstreamer-sys"
version = "0.24.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5d88630697e757c319e7bcec7b13919ba80492532dd3238481c1c4eee05d4904"
dependencies = [
"cfg-if",
"glib-sys 0.21.5",
"gobject-sys 0.21.5",
"libc",
"system-deps",
]
@@ -3077,25 +3250,55 @@ checksum = "1318b599d77ca4f7702ecbdeac1672d6304cb16b7e5752fabb3ee8260449a666"
dependencies = [
"cfg-if",
"futures-channel",
"glib",
"gstreamer",
"gstreamer-base",
"gstreamer-video-sys",
"glib 0.20.12",
"gstreamer 0.23.7",
"gstreamer-base 0.23.6",
"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"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0a70f0947f12d253b9de9bc3fd92f981e4d025336c18389c7f08cdf388a99f5c"
dependencies = [
"glib-sys",
"gobject-sys",
"gstreamer-base-sys",
"gstreamer-sys",
"glib-sys 0.20.10",
"gobject-sys 0.20.10",
"gstreamer-base-sys 0.23.6",
"gstreamer-sys 0.23.6",
"libc",
"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",
]
@@ -3538,12 +3741,14 @@ dependencies = [
[[package]]
name = "iced_video_player"
version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5b836dad1567026b92b5f3eba21e3e9bea47b6b66392303bb07d91e82bb7401a"
dependencies = [
"glib",
"gstreamer",
"gstreamer-app",
"gstreamer-base",
"gstreamer-video",
"glib 0.20.12",
"gstreamer 0.23.7",
"gstreamer-app 0.23.5",
"gstreamer-base 0.23.6",
"gstreamer-video 0.23.6",
"iced",
"iced_wgpu",
"log",
@@ -3932,6 +4137,22 @@ dependencies = [
"ui-iced",
]
[[package]]
name = "jello-test"
version = "0.1.0"
dependencies = [
"anyhow",
"gstreamer 0.24.4",
"gstreamer-app 0.24.4",
"gstreamer-base 0.24.4",
"gstreamer-video 0.24.4",
"pollster 0.4.0",
"tracing",
"tracing-subscriber",
"wgpu",
"winit",
]
[[package]]
name = "jello-types"
version = "0.1.0"
@@ -4049,6 +4270,15 @@ version = "3.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc"
[[package]]
name = "kstring"
version = "2.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "558bf9508a558512042d3095138b1f7b8fe90c5467d94f9f1da28b3731c5dbd1"
dependencies = [
"static_assertions",
]
[[package]]
name = "kurbo"
version = "0.10.4"
@@ -5309,6 +5539,15 @@ dependencies = [
"paste",
]
[[package]]
name = "option-operations"
version = "0.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aca39cf52b03268400c16eeb9b56382ea3c3353409309b63f5c8f0b1faf42754"
dependencies = [
"pastey 0.2.0",
]
[[package]]
name = "orbclient"
version = "0.3.49"
@@ -5387,6 +5626,12 @@ version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "35fb2e5f958ec131621fdd531e9fc186ed768cbe395337403ae56c17a74c68ec"
[[package]]
name = "pastey"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "57d6c094ee800037dff99e02cab0eaf3142826586742a270ab3d7a62656bd27a"
[[package]]
name = "pathdiff"
version = "0.2.3"
@@ -5539,6 +5784,12 @@ version = "0.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5da3b0203fd7ee5720aa0b5e790b591aa5d3f41c3ed2c34a3a393382198af2f7"
[[package]]
name = "pollster"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2f3a9f18d041e6d0e102a0a46750538147e5e8992d3b4873aaafee2520b00ce3"
[[package]]
name = "portable-atomic"
version = "1.11.1"
@@ -5566,7 +5817,7 @@ dependencies = [
"log",
"parking_lot",
"pin-project",
"pollster",
"pollster 0.2.5",
"static_assertions",
"thiserror 1.0.69",
]
@@ -7675,9 +7926,9 @@ checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3"
[[package]]
name = "tracing"
version = "0.1.41"
version = "0.1.43"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0"
checksum = "2d15d90a0b5c19378952d479dc858407149d7bb45a14de0142f6c534b16fc647"
dependencies = [
"log",
"pin-project-lite",
@@ -7687,9 +7938,9 @@ dependencies = [
[[package]]
name = "tracing-attributes"
version = "0.1.30"
version = "0.1.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903"
checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da"
dependencies = [
"proc-macro2",
"quote",
@@ -7698,9 +7949,9 @@ dependencies = [
[[package]]
name = "tracing-core"
version = "0.1.34"
version = "0.1.35"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678"
checksum = "7a04e24fab5c89c6a36eb8558c9656f30d81de51dfa4d3b45f26b21d61fa0a6c"
dependencies = [
"once_cell",
"valuable",
@@ -7719,9 +7970,9 @@ dependencies = [
[[package]]
name = "tracing-subscriber"
version = "0.3.20"
version = "0.3.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5"
checksum = "2f30143827ddab0d256fd843b7a66d164e9f271cfa0dde49142c5ca0ca291f1e"
dependencies = [
"matchers",
"nu-ansi-term",