From 834b6d8d6997bdadfc53f88883b908b8c04f9220 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Thu, 23 Apr 2020 15:35:21 +0300 Subject: [PATCH] gstreamer/proxypad: Convert default pad functions to plain functions on ProxyPad instead of a trait This allows to use them properly when overriding these functions. --- gstreamer/src/lib.rs | 2 -- gstreamer/src/proxy_pad.rs | 52 ++++++++++---------------------------- 2 files changed, 13 insertions(+), 41 deletions(-) diff --git a/gstreamer/src/lib.rs b/gstreamer/src/lib.rs index 694ed5a7e..b3e039b9f 100644 --- a/gstreamer/src/lib.rs +++ b/gstreamer/src/lib.rs @@ -206,7 +206,6 @@ mod object; mod pad; mod parse_context; mod proxy_pad; -pub use proxy_pad::ProxyPadExtManual; mod tag_setter; pub use bin::GstBinExtManual; pub use element::{ElementExtManual, ElementMessageType, NotifyWatchId}; @@ -368,7 +367,6 @@ pub mod prelude { pub use pipeline::GstPipelineExtManual; pub use plugin::GstPluginExtManual; pub use plugin_feature::PluginFeatureExtManual; - pub use proxy_pad::ProxyPadExtManual; pub use tag_setter::TagSetterExtManual; pub use typefind::TypeFindImpl; pub use value::GstValueExt; diff --git a/gstreamer/src/proxy_pad.rs b/gstreamer/src/proxy_pad.rs index 4efa55999..457aa643b 100644 --- a/gstreamer/src/proxy_pad.rs +++ b/gstreamer/src/proxy_pad.rs @@ -21,42 +21,16 @@ use glib::translate::{from_glib, from_glib_full, ToGlibPtr}; use gst_sys; -pub trait ProxyPadExtManual: 'static { - fn proxy_pad_chain_default>( - &self, - parent: Option<&P>, - buffer: Buffer, - ) -> Result; - - fn proxy_pad_chain_list_default>( - &self, - parent: Option<&P>, - list: BufferList, - ) -> Result; - - fn proxy_pad_getrange_default>( - &self, - parent: Option<&P>, - offset: u64, - size: u32, - ) -> Result; - - fn proxy_pad_iterate_internal_links_default>( - &self, - parent: Option<&P>, - ) -> Option<::Iterator>; -} - -impl> ProxyPadExtManual for O { - fn proxy_pad_chain_default>( - &self, +impl ProxyPad { + pub fn chain_default, P: IsA>( + pad: &O, parent: Option<&P>, buffer: Buffer, ) -> Result { skip_assert_initialized!(); let ret: FlowReturn = unsafe { from_glib(gst_sys::gst_proxy_pad_chain_default( - self.as_ptr() as *mut gst_sys::GstPad, + pad.as_ptr() as *mut gst_sys::GstPad, parent.map(|p| p.as_ref()).to_glib_none().0, buffer.into_ptr(), )) @@ -64,15 +38,15 @@ impl> ProxyPadExtManual for O { ret.into_result() } - fn proxy_pad_chain_list_default>( - &self, + pub fn chain_list_default, P: IsA>( + pad: &O, parent: Option<&P>, list: BufferList, ) -> Result { skip_assert_initialized!(); let ret: FlowReturn = unsafe { from_glib(gst_sys::gst_proxy_pad_chain_list_default( - self.as_ptr() as *mut gst_sys::GstPad, + pad.as_ptr() as *mut gst_sys::GstPad, parent.map(|p| p.as_ref()).to_glib_none().0, list.into_ptr(), )) @@ -80,8 +54,8 @@ impl> ProxyPadExtManual for O { ret.into_result() } - fn proxy_pad_getrange_default>( - &self, + pub fn getrange_default, P: IsA>( + pad: &O, parent: Option<&P>, offset: u64, size: u32, @@ -90,7 +64,7 @@ impl> ProxyPadExtManual for O { unsafe { let mut buffer = ptr::null_mut(); let ret: FlowReturn = from_glib(gst_sys::gst_proxy_pad_getrange_default( - self.as_ptr() as *mut gst_sys::GstPad, + pad.as_ptr() as *mut gst_sys::GstPad, parent.map(|p| p.as_ref()).to_glib_none().0, offset, size, @@ -100,14 +74,14 @@ impl> ProxyPadExtManual for O { } } - fn proxy_pad_iterate_internal_links_default>( - &self, + pub fn iterate_internal_links_default, P: IsA>( + pad: &O, parent: Option<&P>, ) -> Option<::Iterator> { skip_assert_initialized!(); unsafe { from_glib_full(gst_sys::gst_proxy_pad_iterate_internal_links_default( - self.as_ptr() as *mut gst_sys::GstPad, + pad.as_ptr() as *mut gst_sys::GstPad, parent.map(|p| p.as_ref()).to_glib_none().0, )) }