mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer-rs.git
synced 2024-09-27 14:30:36 +00:00
fa5491e6b3
When the function does not keep around an additional reference of the value this is correct and more flexible for callers. https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/420 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1152>
38 lines
1.2 KiB
Rust
38 lines
1.2 KiB
Rust
// Take a look at the license at the top of the repository in the LICENSE file.
|
|
|
|
use crate::Play;
|
|
use glib::translate::*;
|
|
|
|
impl Play {
|
|
#[doc(alias = "get_config")]
|
|
#[doc(alias = "gst_play_get_config")]
|
|
pub fn config(&self) -> crate::PlayConfig {
|
|
unsafe { from_glib_full(ffi::gst_play_get_config(self.to_glib_none().0)) }
|
|
}
|
|
|
|
#[doc(alias = "gst_play_set_config")]
|
|
pub fn set_config(&self, config: crate::PlayConfig) -> Result<(), glib::error::BoolError> {
|
|
unsafe {
|
|
glib::result_from_gboolean!(
|
|
ffi::gst_play_set_config(self.to_glib_none().0, config.into_glib_ptr()),
|
|
"Failed to set config",
|
|
)
|
|
}
|
|
}
|
|
|
|
#[doc(alias = "gst_play_get_video_snapshot")]
|
|
#[doc(alias = "get_video_snapshot")]
|
|
pub fn video_snapshot(
|
|
&self,
|
|
format: crate::PlaySnapshotFormat,
|
|
config: Option<&gst::StructureRef>,
|
|
) -> Option<gst::Sample> {
|
|
unsafe {
|
|
from_glib_full(ffi::gst_play_get_video_snapshot(
|
|
self.to_glib_none().0,
|
|
format.into_glib(),
|
|
mut_override(config.map(|c| c.as_ptr()).unwrap_or(std::ptr::null())),
|
|
))
|
|
}
|
|
}
|
|
}
|