gstreamer_video/auto/
video_overlay.rs1use crate::ffi;
7use glib::{prelude::*, translate::*};
8
9glib::wrapper! {
10 #[doc(alias = "GstVideoOverlay")]
11 pub struct VideoOverlay(Interface<ffi::GstVideoOverlay, ffi::GstVideoOverlayInterface>);
12
13 match fn {
14 type_ => || ffi::gst_video_overlay_get_type(),
15 }
16}
17
18impl VideoOverlay {
19 pub const NONE: Option<&'static VideoOverlay> = None;
20
21 }
26
27unsafe impl Send for VideoOverlay {}
28unsafe impl Sync for VideoOverlay {}
29
30pub trait VideoOverlayExt: IsA<VideoOverlay> + 'static {
31 #[doc(alias = "gst_video_overlay_expose")]
32 fn expose(&self) {
33 unsafe {
34 ffi::gst_video_overlay_expose(self.as_ref().to_glib_none().0);
35 }
36 }
37
38 #[doc(alias = "gst_video_overlay_handle_events")]
44 fn handle_events(&self, handle_events: bool) {
45 unsafe {
46 ffi::gst_video_overlay_handle_events(
47 self.as_ref().to_glib_none().0,
48 handle_events.into_glib(),
49 );
50 }
51 }
52
53 #[doc(alias = "gst_video_overlay_prepare_window_handle")]
54 fn prepare_window_handle(&self) {
55 unsafe {
56 ffi::gst_video_overlay_prepare_window_handle(self.as_ref().to_glib_none().0);
57 }
58 }
59
60 #[doc(alias = "gst_video_overlay_set_render_rectangle")]
61 fn set_render_rectangle(
62 &self,
63 x: i32,
64 y: i32,
65 width: i32,
66 height: i32,
67 ) -> Result<(), glib::error::BoolError> {
68 unsafe {
69 glib::result_from_gboolean!(
70 ffi::gst_video_overlay_set_render_rectangle(
71 self.as_ref().to_glib_none().0,
72 x,
73 y,
74 width,
75 height
76 ),
77 "Failed to set render rectangle"
78 )
79 }
80 }
81}
82
83impl<O: IsA<VideoOverlay>> VideoOverlayExt for O {}