From c41a8edae76fd336b49708cb850612cd296221bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Thu, 13 Sep 2018 22:53:13 +0300 Subject: [PATCH] Add VideoOverlay::prepare_window_handle() and got_window_handle() --- Gir_GstVideo.toml | 5 ----- gstreamer-video/src/auto/video_overlay.rs | 8 ++++++++ gstreamer-video/src/video_overlay.rs | 5 +++++ 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/Gir_GstVideo.toml b/Gir_GstVideo.toml index b65ea75c8..32e68f09e 100644 --- a/Gir_GstVideo.toml +++ b/Gir_GstVideo.toml @@ -59,8 +59,3 @@ status = "generate" name = "set_render_rectangle" [object.function.return] bool_return_is_error = "Failed to set render rectangle" - - [[object.function]] - name = "prepare_window_handle" - # to be called by subclasses - ignore = true diff --git a/gstreamer-video/src/auto/video_overlay.rs b/gstreamer-video/src/auto/video_overlay.rs index 2754c3636..f61fb98f3 100644 --- a/gstreamer-video/src/auto/video_overlay.rs +++ b/gstreamer-video/src/auto/video_overlay.rs @@ -39,6 +39,8 @@ pub trait VideoOverlayExt { fn handle_events(&self, handle_events: bool); + fn prepare_window_handle(&self); + fn set_render_rectangle(&self, x: i32, y: i32, width: i32, height: i32) -> Result<(), glib::error::BoolError>; //fn set_window_handle(&self, handle: /*Unimplemented*/Fundamental: UIntPtr); @@ -61,6 +63,12 @@ impl> VideoOverlayExt for O { } } + fn prepare_window_handle(&self) { + unsafe { + ffi::gst_video_overlay_prepare_window_handle(self.to_glib_none().0); + } + } + fn set_render_rectangle(&self, x: i32, y: i32, width: i32, height: i32) -> Result<(), glib::error::BoolError> { unsafe { glib::error::BoolError::from_glib(ffi::gst_video_overlay_set_render_rectangle(self.to_glib_none().0, x, y, width, height), "Failed to set render rectangle") diff --git a/gstreamer-video/src/video_overlay.rs b/gstreamer-video/src/video_overlay.rs index fd72152ec..fd2cda941 100644 --- a/gstreamer-video/src/video_overlay.rs +++ b/gstreamer-video/src/video_overlay.rs @@ -14,10 +14,15 @@ use glib::IsA; pub trait VideoOverlayExtManual { unsafe fn set_window_handle(&self, handle: uintptr_t); + unsafe fn got_window_handle(&self, handle: uintptr_t); } impl> VideoOverlayExtManual for O { unsafe fn set_window_handle(&self, handle: uintptr_t) { ffi::gst_video_overlay_set_window_handle(self.to_glib_none().0, handle) } + + unsafe fn got_window_handle(&self, handle: uintptr_t) { + ffi::gst_video_overlay_got_window_handle(self.to_glib_none().0, handle) + } }