mirror of
https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs.git
synced 2024-11-26 05:21:00 +00:00
c95e07a897
If force-aspect-ratio=false then make sure to fully fill the given width/height with the video frame and avoid rounding errors. This makes sure that the video is rendered in the exact position selected by the caller and that graphics offloading is going to work more likely. In other cases and for all overlays, make sure that the calculated positions are staying inside (0, 0, width, height) as rendering outside is not allowed by GTK. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1547> |
||
---|---|---|
.. | ||
examples | ||
src | ||
build.rs | ||
Cargo.toml | ||
LICENSE-MPL-2.0 | ||
README.md |
Gtk 4 Sink & Paintable
GTK 4 provides gtk::Video
& gtk::Picture
for rendering media such as videos. As the default gtk::Video
widget doesn't
offer the possibility to use a custom gst::Pipeline
. The plugin provides a gst_video::VideoSink
along with a gdk::Paintable
that's capable of rendering the sink's frames.
The Sink can generate GL Textures if the system is capable of it, but it needs to be compiled
with either wayland
, x11glx
or x11egl
cargo features.
Flatpak Integration
To build and include the plugin in a Flatpak manifest, you can add the following snippet to your json manifest:
{
"sdk-extensions": [
"org.freedesktop.Sdk.Extension.rust-stable"
],
"build-options": {
"env": {
"CARGO_HOME": "/run/build/cargo-c/cargo"
},
"append-path": "/usr/lib/sdk/rust-stable/bin",
},
"modules": [
{
"name": "cargo-c",
"buildsystem": "simple",
"build-commands": [
"cargo install cargo-c --root /app"
],
"build-options": {
"build-args": [
"--share=network"
]
},
"cleanup": [
"*"
]
},
{
"name": "gst-plugins-rs",
"buildsystem": "simple",
"sources": [
{
"type": "git",
"url": "https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs",
"branch": "0.10"
}
],
"build-options": {
"build-args": [
"--share=network"
]
},
"build-commands": [
"cargo cinstall -p gst-plugin-gtk4 --prefix=/app"
]
}
]
}