gstreamer-rs/gstreamer-play/src/play.rs
Sebastian Dröge fa5491e6b3 Use borrowed miniobject/structure types in more places
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>
2022-11-21 12:40:37 +02:00

39 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())),
))
}
}
}