diff --git a/Cargo.lock b/Cargo.lock index 6645fc9d..35236a1a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -539,6 +539,18 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "17cc5e6b5ab06331c33589842070416baa137e8b0eb912b008cfd4a78ada7919" +[[package]] +name = "chrono" +version = "0.4.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73" +dependencies = [ + "libc", + "num-integer", + "num-traits", + "winapi", +] + [[package]] name = "cipher" version = "0.2.5" @@ -971,8 +983,10 @@ dependencies = [ "ashpd", "futures", "gettext-rs", + "gst-plugin-gtk4", "gstreamer", "gstreamer-base", + "gstreamer-player", "gstreamer-video", "gtk-macros", "gtk4", @@ -1523,6 +1537,30 @@ dependencies = [ "system-deps 6.0.0", ] +[[package]] +name = "gst-plugin-gtk4" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f70501fa85dfdbeebecea35d747791351d04266f5c2c4aa23014d9fe74132290" +dependencies = [ + "fragile", + "gst-plugin-version-helper", + "gstreamer", + "gstreamer-base", + "gstreamer-video", + "gtk4", + "once_cell", +] + +[[package]] +name = "gst-plugin-version-helper" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a6a4dd1cb931cc6b49af354a68f21b3aee46b5b07370215d942f3a71542123f" +dependencies = [ + "chrono", +] + [[package]] name = "gstreamer" version = "0.18.1" @@ -1575,6 +1613,35 @@ dependencies = [ "system-deps 6.0.0", ] +[[package]] +name = "gstreamer-player" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f14ee02352ba73cadebe640bfb33f12fe8d03cbcad816a102d55a0251fb99bb" +dependencies = [ + "bitflags", + "glib", + "gstreamer", + "gstreamer-player-sys", + "gstreamer-video", + "libc", + "once_cell", +] + +[[package]] +name = "gstreamer-player-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f9b674b39a4d0e18710f6e3d2b109f1793d8028ee4e39da3909b55b4529d399" +dependencies = [ + "glib-sys", + "gobject-sys", + "gstreamer-sys", + "gstreamer-video-sys", + "libc", + "system-deps 6.0.0", +] + [[package]] name = "gstreamer-sys" version = "0.18.0" diff --git a/Cargo.toml b/Cargo.toml index 65d0d9c4..c6e78d18 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -37,6 +37,8 @@ ashpd = { version = "0.2.0-beta-1", features = [ gst = { version = "0.18", package = "gstreamer" } gst_base = { version = "0.18", package = "gstreamer-base" } gst_video = { version = "0.18", package = "gstreamer-video" } +gst_player = { version = "0.18", package = "gstreamer-player" } +gst_gtk = { version = "0.1.0", package = "gst-plugin-gtk4" } image = { version = "0.23", default-features = false, features = ["png"] } regex = "1.5.4" mime_guess = "2.0.3" diff --git a/data/resources/ui/components-video-player.ui b/data/resources/ui/components-video-player.ui index a1d664dc..35dd617d 100644 --- a/data/resources/ui/components-video-player.ui +++ b/data/resources/ui/components-video-player.ui @@ -1,10 +1,21 @@ + + + + + + + + +