From f65d410fc52c9a71c5bfde40fe658cd2e0dedac2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Thu, 18 Aug 2022 13:50:33 +0300 Subject: [PATCH] gstreamer-video: Add bindings for VideoInfo::in_info() / out_info() --- gstreamer-video/src/video_converter.rs | 18 +++++++++++++++++- gstreamer-video/src/video_info.rs | 8 ++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/gstreamer-video/src/video_converter.rs b/gstreamer-video/src/video_converter.rs index f85e74cb9..6612f13c7 100644 --- a/gstreamer-video/src/video_converter.rs +++ b/gstreamer-video/src/video_converter.rs @@ -1,6 +1,6 @@ // Take a look at the license at the top of the repository in the LICENSE file. -use glib::translate::{IntoGlibPtr, ToGlibPtr}; +use glib::translate::*; use std::ops; use std::ptr; @@ -72,6 +72,22 @@ impl VideoConverter { } } + #[cfg(any(feature = "v1_22", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v1_22")))] + #[doc(alias = "get_in_info")] + #[doc(alias = "gst_video_converter_get_in_info")] + pub fn in_info(&self) -> crate::VideoInfo { + unsafe { from_glib_none(ffi::gst_video_converter_get_in_info(self.0.as_ptr())) } + } + + #[cfg(any(feature = "v1_22", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v1_22")))] + #[doc(alias = "get_out_info")] + #[doc(alias = "gst_video_converter_get_out_info")] + pub fn out_info(&self) -> crate::VideoInfo { + unsafe { from_glib_none(ffi::gst_video_converter_get_out_info(self.0.as_ptr())) } + } + #[doc(alias = "gst_video_converter_frame")] pub fn frame( &self, diff --git a/gstreamer-video/src/video_info.rs b/gstreamer-video/src/video_info.rs index 726fbc464..2658bbf3e 100644 --- a/gstreamer-video/src/video_info.rs +++ b/gstreamer-video/src/video_info.rs @@ -917,6 +917,14 @@ impl<'a> glib::translate::ToGlibPtr<'a, *const ffi::GstVideoInfo> for VideoInfo } } +#[doc(hidden)] +impl glib::translate::FromGlibPtrNone<*const ffi::GstVideoInfo> for VideoInfo { + #[inline] + unsafe fn from_glib_none(ptr: *const ffi::GstVideoInfo) -> Self { + Self(ptr::read(ptr)) + } +} + #[doc(hidden)] impl glib::translate::FromGlibPtrNone<*mut ffi::GstVideoInfo> for VideoInfo { #[inline]