From 71b83b7c84e18704fa4b4d2ead349cbc50bd1f12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Tue, 30 Jun 2020 23:45:57 +0300 Subject: [PATCH] base/aggregator: Mark new 1.18 vfuncs as only available from the version onwards Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/272 --- gstreamer-base/src/subclass/aggregator.rs | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/gstreamer-base/src/subclass/aggregator.rs b/gstreamer-base/src/subclass/aggregator.rs index 0f4d06019..9a7b185cf 100644 --- a/gstreamer-base/src/subclass/aggregator.rs +++ b/gstreamer-base/src/subclass/aggregator.rs @@ -55,6 +55,7 @@ pub trait AggregatorImpl: AggregatorImplExt + ElementImpl + Send + Sync + 'stati self.parent_sink_event(aggregator, aggregator_pad, event) } + #[cfg(any(feature = "v1_18", feature = "dox"))] fn sink_event_pre_queue( &self, aggregator: &Aggregator, @@ -73,6 +74,7 @@ pub trait AggregatorImpl: AggregatorImplExt + ElementImpl + Send + Sync + 'stati self.parent_sink_query(aggregator, aggregator_pad, query) } + #[cfg(any(feature = "v1_18", feature = "dox"))] fn sink_query_pre_queue( &self, aggregator: &Aggregator, @@ -149,6 +151,7 @@ pub trait AggregatorImpl: AggregatorImplExt + ElementImpl + Send + Sync + 'stati self.parent_negotiated_src_caps(aggregator, caps) } + #[cfg(any(feature = "v1_18", feature = "dox"))] fn negotiate(&self, aggregator: &Aggregator) -> bool { self.parent_negotiate(aggregator) } @@ -177,6 +180,7 @@ pub trait AggregatorImplExt { event: gst::Event, ) -> bool; + #[cfg(any(feature = "v1_18", feature = "dox"))] fn parent_sink_event_pre_queue( &self, aggregator: &Aggregator, @@ -191,6 +195,7 @@ pub trait AggregatorImplExt { query: &mut gst::QueryRef, ) -> bool; + #[cfg(any(feature = "v1_18", feature = "dox"))] fn parent_sink_query_pre_queue( &self, aggregator: &Aggregator, @@ -243,6 +248,7 @@ pub trait AggregatorImplExt { caps: &gst::Caps, ) -> Result<(), gst::LoggableError>; + #[cfg(any(feature = "v1_18", feature = "dox"))] fn parent_negotiate(&self, aggregator: &Aggregator) -> bool; } @@ -319,6 +325,7 @@ impl AggregatorImplExt for T { } } + #[cfg(any(feature = "v1_18", feature = "dox"))] fn parent_sink_event_pre_queue( &self, aggregator: &Aggregator, @@ -362,6 +369,7 @@ impl AggregatorImplExt for T { } } + #[cfg(any(feature = "v1_18", feature = "dox"))] fn parent_sink_query_pre_queue( &self, aggregator: &Aggregator, @@ -584,6 +592,7 @@ impl AggregatorImplExt for T { } } + #[cfg(any(feature = "v1_18", feature = "dox"))] fn parent_negotiate(&self, aggregator: &Aggregator) -> bool { unsafe { let data = self.get_type_data(); @@ -609,9 +618,7 @@ where klass.clip = Some(aggregator_clip::); klass.finish_buffer = Some(aggregator_finish_buffer::); klass.sink_event = Some(aggregator_sink_event::); - klass.sink_event_pre_queue = Some(aggregator_sink_event_pre_queue::); klass.sink_query = Some(aggregator_sink_query::); - klass.sink_query_pre_queue = Some(aggregator_sink_query_pre_queue::); klass.src_event = Some(aggregator_src_event::); klass.src_query = Some(aggregator_src_query::); klass.src_activate = Some(aggregator_src_activate::); @@ -623,7 +630,12 @@ where klass.update_src_caps = Some(aggregator_update_src_caps::); klass.fixate_src_caps = Some(aggregator_fixate_src_caps::); klass.negotiated_src_caps = Some(aggregator_negotiated_src_caps::); - klass.negotiate = Some(aggregator_negotiate::); + #[cfg(any(feature = "v1_18", feature = "dox"))] + { + klass.sink_event_pre_queue = Some(aggregator_sink_event_pre_queue::); + klass.sink_query_pre_queue = Some(aggregator_sink_query_pre_queue::); + klass.negotiate = Some(aggregator_negotiate::); + } } } } @@ -710,6 +722,7 @@ where .to_glib() } +#[cfg(any(feature = "v1_18", feature = "dox"))] unsafe extern "C" fn aggregator_sink_event_pre_queue( ptr: *mut gst_base_sys::GstAggregator, aggregator_pad: *mut gst_base_sys::GstAggregatorPad, @@ -757,6 +770,7 @@ where .to_glib() } +#[cfg(any(feature = "v1_18", feature = "dox"))] unsafe extern "C" fn aggregator_sink_query_pre_queue( ptr: *mut gst_base_sys::GstAggregator, aggregator_pad: *mut gst_base_sys::GstAggregatorPad, @@ -1020,6 +1034,7 @@ where .to_glib() } +#[cfg(any(feature = "v1_18", feature = "dox"))] unsafe extern "C" fn aggregator_negotiate( ptr: *mut gst_base_sys::GstAggregator, ) -> glib_sys::gboolean