gstreamer_player/
player_video_overlay_video_renderer.rs1use std::ptr;
4
5use glib::{prelude::*, translate::*};
6use libc::uintptr_t;
7
8use crate::{PlayerVideoOverlayVideoRenderer, ffi};
9
10impl PlayerVideoOverlayVideoRenderer {
11 pub unsafe fn new(window_handle: uintptr_t) -> PlayerVideoOverlayVideoRenderer {
12 unsafe {
13 assert_initialized_main_thread!();
14
15 from_glib_full(
16 ffi::gst_player_video_overlay_video_renderer_new(window_handle as *mut _) as *mut _,
17 )
18 }
19 }
20
21 pub unsafe fn with_handle_and_sink<P: IsA<gst::Element>>(
22 window_handle: uintptr_t,
23 video_sink: &P,
24 ) -> PlayerVideoOverlayVideoRenderer {
25 unsafe {
26 skip_assert_initialized!();
27
28 from_glib_full(ffi::gst_player_video_overlay_video_renderer_new_with_sink(
29 window_handle as *mut _,
30 video_sink.as_ref().to_glib_none().0,
31 ) as *mut _)
32 }
33 }
34
35 #[doc(alias = "gst_player_video_overlay_video_renderer_new_with_sink")]
36 pub fn with_sink<P: IsA<gst::Element>>(video_sink: &P) -> PlayerVideoOverlayVideoRenderer {
37 skip_assert_initialized!();
38
39 unsafe {
40 from_glib_full(ffi::gst_player_video_overlay_video_renderer_new_with_sink(
41 ptr::null_mut(),
42 video_sink.as_ref().to_glib_none().0,
43 ) as *mut _)
44 }
45 }
46
47 #[doc(alias = "get_window_handle")]
48 pub unsafe fn window_handle(&self) -> uintptr_t {
49 unsafe {
50 ffi::gst_player_video_overlay_video_renderer_get_window_handle(self.to_glib_none().0)
51 as uintptr_t
52 }
53 }
54
55 pub unsafe fn set_window_handle(&self, window_handle: uintptr_t) {
56 unsafe {
57 ffi::gst_player_video_overlay_video_renderer_set_window_handle(
58 self.to_glib_none().0,
59 window_handle as *mut _,
60 )
61 }
62 }
63}