diff --git a/examples/Cargo.toml b/examples/Cargo.toml index 4ea672e7e..c7f0695f2 100644 --- a/examples/Cargo.toml +++ b/examples/Cargo.toml @@ -208,3 +208,7 @@ required-features = ["windows"] [[bin]] name = "audio_multichannel_interleave" + +[[bin]] +name = "zoom" +required-features = ["gst-video/v1_18"] diff --git a/examples/src/bin/decodebin.rs b/examples/src/bin/decodebin.rs index e612957e6..787f39964 100644 --- a/examples/src/bin/decodebin.rs +++ b/examples/src/bin/decodebin.rs @@ -189,7 +189,7 @@ fn example_main() -> Result<(), Error> { ("Failed to insert sink"), details: gst::Structure::builder("error-details") .field("error", - &ErrorValue(Arc::new(Mutex::new(Some(err))))) + ErrorValue(Arc::new(Mutex::new(Some(err))))) .build() ); } diff --git a/examples/src/bin/encodebin.rs b/examples/src/bin/encodebin.rs index e17e147aa..501273353 100644 --- a/examples/src/bin/encodebin.rs +++ b/examples/src/bin/encodebin.rs @@ -215,7 +215,7 @@ fn example_main() -> Result<(), Error> { ("Failed to insert sink"), details: gst::Structure::builder("error-details") .field("error", - &ErrorValue(Arc::new(Mutex::new(Some(err))))) + ErrorValue(Arc::new(Mutex::new(Some(err))))) .build() ); } diff --git a/examples/src/bin/zoom.rs b/examples/src/bin/zoom.rs index b2d438b32..021e9eef2 100644 --- a/examples/src/bin/zoom.rs +++ b/examples/src/bin/zoom.rs @@ -177,7 +177,6 @@ fn example_main() { state.clicked = false; } } - #[cfg(feature = "v1_18")] NavigationEvent::MouseScroll { x, y, delta_y, .. } => { if delta_y > 0.0 { zoom(mixer_sink_pad, x as i32, y as i32, true); diff --git a/gstreamer-base/src/flow_combiner.rs b/gstreamer-base/src/flow_combiner.rs index eb018f1ca..5b5107b16 100644 --- a/gstreamer-base/src/flow_combiner.rs +++ b/gstreamer-base/src/flow_combiner.rs @@ -9,24 +9,8 @@ glib::wrapper! { pub struct FlowCombiner(Shared); match fn { - ref => |ptr| { - // cfg_if emits code in blocks (curly braces) and `ref` handling inserts a - // trailing semicolon to void an optionally returned value. The linter - // requests the resulting { ..ref() }; to be simplified making it unsuitable. - #[cfg(feature = "v1_12_1")] - ffi::gst_flow_combiner_ref(ptr); - #[cfg(not(feature = "v1_12_1"))] - glib::gobject_ffi::g_boxed_copy(ffi::gst_flow_combiner_get_type(), ptr as *mut _); - }, - unref => |ptr| { - cfg_if::cfg_if! { - if #[cfg(feature = "v1_12_1")] { - ffi::gst_flow_combiner_unref(ptr); - } else { - glib::gobject_ffi::g_boxed_free(ffi::gst_flow_combiner_get_type(), ptr as *mut _); - } - } - }, + ref => |ptr| ffi::gst_flow_combiner_ref(ptr), + unref => |ptr| ffi::gst_flow_combiner_unref(ptr), type_ => || ffi::gst_flow_combiner_get_type(), } } diff --git a/gstreamer-editing-services/Gir.toml b/gstreamer-editing-services/Gir.toml index d0c43b9a2..08ee4a104 100644 --- a/gstreamer-editing-services/Gir.toml +++ b/gstreamer-editing-services/Gir.toml @@ -87,7 +87,6 @@ generate = [ "GES.TextOverlay", "GES.TextOverlayClip", "GES.TextVAlign", - "GES.TitleClip", "GES.TitleSource", "GES.TrackType", "GES.Transition", @@ -436,6 +435,18 @@ manual_traits = ["TimelineElementExtManual"] [object.function.return] bool_return_is_error = "Failed to trim" +[[object]] +name = "GES.TitleClip" +status = "generate" + [[object.function]] + pattern = "[^n].*" + # all functions except constructor are deprecated since 1.6 + ignore = true + [[object.property]] + pattern = ".*" + # all properties are deprecated since 1.6 + ignore = true + [[object]] name = "GES.Track" status = "generate" diff --git a/gstreamer-editing-services/src/auto/mod.rs b/gstreamer-editing-services/src/auto/mod.rs index 6043f23f7..6e1c13d27 100644 --- a/gstreamer-editing-services/src/auto/mod.rs +++ b/gstreamer-editing-services/src/auto/mod.rs @@ -238,7 +238,6 @@ pub(crate) mod traits { pub use super::text_overlay_clip::TextOverlayClipExt; pub use super::timeline::TimelineExt; pub use super::timeline_element::TimelineElementExt; - pub use super::title_clip::TitleClipExt; pub use super::title_source::TitleSourceExt; pub use super::track::GESTrackExt; pub use super::track_element::TrackElementExt; diff --git a/gstreamer-editing-services/src/auto/title_clip.rs b/gstreamer-editing-services/src/auto/title_clip.rs index 0540dc855..d7f50e130 100644 --- a/gstreamer-editing-services/src/auto/title_clip.rs +++ b/gstreamer-editing-services/src/auto/title_clip.rs @@ -2,18 +2,9 @@ // from gir-files (https://github.com/gtk-rs/gir-files) // from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git) // DO NOT EDIT -#![allow(deprecated)] -use crate::{ - ffi, Clip, Container, Extractable, MetaContainer, SourceClip, TextHAlign, TextVAlign, - TimelineElement, -}; -use glib::{ - prelude::*, - signal::{connect_raw, SignalHandlerId}, - translate::*, -}; -use std::boxed::Box as Box_; +use crate::{ffi, Clip, Container, Extractable, MetaContainer, SourceClip, TimelineElement}; +use glib::translate::*; glib::wrapper! { #[doc(alias = "GESTitleClip")] @@ -33,383 +24,3 @@ impl TitleClip { unsafe { from_glib_none(ffi::ges_title_clip_new()) } } } - -mod sealed { - pub trait Sealed {} - impl> Sealed for T {} -} - -pub trait TitleClipExt: IsA + sealed::Sealed + 'static { - #[deprecated = "Since 1.6"] - #[allow(deprecated)] - #[doc(alias = "ges_title_clip_get_background_color")] - #[doc(alias = "get_background_color")] - fn background_color(&self) -> u32 { - unsafe { ffi::ges_title_clip_get_background_color(self.as_ref().to_glib_none().0) } - } - - #[deprecated = "Since 1.6"] - #[allow(deprecated)] - #[doc(alias = "ges_title_clip_get_font_desc")] - #[doc(alias = "get_font_desc")] - #[doc(alias = "font-desc")] - fn font_desc(&self) -> Option { - unsafe { - from_glib_full(ffi::ges_title_clip_get_font_desc( - self.as_ref().to_glib_none().0, - )) - } - } - - #[deprecated = "Since 1.6"] - #[allow(deprecated)] - #[doc(alias = "ges_title_clip_get_halignment")] - #[doc(alias = "get_halignment")] - fn halignment(&self) -> TextHAlign { - unsafe { - from_glib(ffi::ges_title_clip_get_halignment( - self.as_ref().to_glib_none().0, - )) - } - } - - #[deprecated = "Since 1.6"] - #[allow(deprecated)] - #[doc(alias = "ges_title_clip_get_text")] - #[doc(alias = "get_text")] - fn text(&self) -> Option { - unsafe { from_glib_full(ffi::ges_title_clip_get_text(self.as_ref().to_glib_none().0)) } - } - - #[deprecated = "Since 1.6"] - #[allow(deprecated)] - #[doc(alias = "ges_title_clip_get_text_color")] - #[doc(alias = "get_text_color")] - fn text_color(&self) -> u32 { - unsafe { ffi::ges_title_clip_get_text_color(self.as_ref().to_glib_none().0) } - } - - #[deprecated = "Since 1.6"] - #[allow(deprecated)] - #[doc(alias = "ges_title_clip_get_valignment")] - #[doc(alias = "get_valignment")] - fn valignment(&self) -> TextVAlign { - unsafe { - from_glib(ffi::ges_title_clip_get_valignment( - self.as_ref().to_glib_none().0, - )) - } - } - - #[deprecated = "Since 1.6"] - #[allow(deprecated)] - #[doc(alias = "ges_title_clip_get_xpos")] - #[doc(alias = "get_xpos")] - fn xpos(&self) -> f64 { - unsafe { ffi::ges_title_clip_get_xpos(self.as_ref().to_glib_none().0) } - } - - #[deprecated = "Since 1.6"] - #[allow(deprecated)] - #[doc(alias = "ges_title_clip_get_ypos")] - #[doc(alias = "get_ypos")] - fn ypos(&self) -> f64 { - unsafe { ffi::ges_title_clip_get_ypos(self.as_ref().to_glib_none().0) } - } - - #[deprecated = "Since 1.6"] - #[allow(deprecated)] - #[doc(alias = "ges_title_clip_set_background")] - #[doc(alias = "background")] - fn set_background(&self, background: u32) { - unsafe { - ffi::ges_title_clip_set_background(self.as_ref().to_glib_none().0, background); - } - } - - #[deprecated = "Since 1.6"] - #[allow(deprecated)] - #[doc(alias = "ges_title_clip_set_color")] - #[doc(alias = "color")] - fn set_color(&self, color: u32) { - unsafe { - ffi::ges_title_clip_set_color(self.as_ref().to_glib_none().0, color); - } - } - - #[deprecated = "Since 1.6"] - #[allow(deprecated)] - #[doc(alias = "ges_title_clip_set_font_desc")] - #[doc(alias = "font-desc")] - fn set_font_desc(&self, font_desc: Option<&str>) { - unsafe { - ffi::ges_title_clip_set_font_desc( - self.as_ref().to_glib_none().0, - font_desc.to_glib_none().0, - ); - } - } - - #[deprecated = "Since 1.6"] - #[allow(deprecated)] - #[doc(alias = "ges_title_clip_set_halignment")] - #[doc(alias = "halignment")] - fn set_halignment(&self, halign: TextHAlign) { - unsafe { - ffi::ges_title_clip_set_halignment(self.as_ref().to_glib_none().0, halign.into_glib()); - } - } - - #[deprecated = "Since 1.6"] - #[allow(deprecated)] - #[doc(alias = "ges_title_clip_set_text")] - #[doc(alias = "text")] - fn set_text(&self, text: Option<&str>) { - unsafe { - ffi::ges_title_clip_set_text(self.as_ref().to_glib_none().0, text.to_glib_none().0); - } - } - - #[deprecated = "Since 1.6"] - #[allow(deprecated)] - #[doc(alias = "ges_title_clip_set_valignment")] - #[doc(alias = "valignment")] - fn set_valignment(&self, valign: TextVAlign) { - unsafe { - ffi::ges_title_clip_set_valignment(self.as_ref().to_glib_none().0, valign.into_glib()); - } - } - - #[deprecated = "Since 1.6"] - #[allow(deprecated)] - #[doc(alias = "ges_title_clip_set_xpos")] - #[doc(alias = "xpos")] - fn set_xpos(&self, position: f64) { - unsafe { - ffi::ges_title_clip_set_xpos(self.as_ref().to_glib_none().0, position); - } - } - - #[deprecated = "Since 1.6"] - #[allow(deprecated)] - #[doc(alias = "ges_title_clip_set_ypos")] - #[doc(alias = "ypos")] - fn set_ypos(&self, position: f64) { - unsafe { - ffi::ges_title_clip_set_ypos(self.as_ref().to_glib_none().0, position); - } - } - - #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")] - fn background(&self) -> u32 { - ObjectExt::property(self.as_ref(), "background") - } - - #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")] - fn color(&self) -> u32 { - ObjectExt::property(self.as_ref(), "color") - } - - #[deprecated = "Since 1.6"] - #[doc(alias = "background")] - fn connect_background_notify(&self, f: F) -> SignalHandlerId { - unsafe extern "C" fn notify_background_trampoline< - P: IsA, - F: Fn(&P) + 'static, - >( - this: *mut ffi::GESTitleClip, - _param_spec: glib::ffi::gpointer, - f: glib::ffi::gpointer, - ) { - let f: &F = &*(f as *const F); - f(TitleClip::from_glib_borrow(this).unsafe_cast_ref()) - } - unsafe { - let f: Box_ = Box_::new(f); - connect_raw( - self.as_ptr() as *mut _, - b"notify::background\0".as_ptr() as *const _, - Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>( - notify_background_trampoline:: as *const (), - )), - Box_::into_raw(f), - ) - } - } - - #[deprecated = "Since 1.6"] - #[doc(alias = "color")] - fn connect_color_notify(&self, f: F) -> SignalHandlerId { - unsafe extern "C" fn notify_color_trampoline, F: Fn(&P) + 'static>( - this: *mut ffi::GESTitleClip, - _param_spec: glib::ffi::gpointer, - f: glib::ffi::gpointer, - ) { - let f: &F = &*(f as *const F); - f(TitleClip::from_glib_borrow(this).unsafe_cast_ref()) - } - unsafe { - let f: Box_ = Box_::new(f); - connect_raw( - self.as_ptr() as *mut _, - b"notify::color\0".as_ptr() as *const _, - Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>( - notify_color_trampoline:: as *const (), - )), - Box_::into_raw(f), - ) - } - } - - #[deprecated = "Since 1.6"] - #[doc(alias = "font-desc")] - fn connect_font_desc_notify(&self, f: F) -> SignalHandlerId { - unsafe extern "C" fn notify_font_desc_trampoline, F: Fn(&P) + 'static>( - this: *mut ffi::GESTitleClip, - _param_spec: glib::ffi::gpointer, - f: glib::ffi::gpointer, - ) { - let f: &F = &*(f as *const F); - f(TitleClip::from_glib_borrow(this).unsafe_cast_ref()) - } - unsafe { - let f: Box_ = Box_::new(f); - connect_raw( - self.as_ptr() as *mut _, - b"notify::font-desc\0".as_ptr() as *const _, - Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>( - notify_font_desc_trampoline:: as *const (), - )), - Box_::into_raw(f), - ) - } - } - - #[deprecated = "Since 1.6"] - #[doc(alias = "halignment")] - fn connect_halignment_notify(&self, f: F) -> SignalHandlerId { - unsafe extern "C" fn notify_halignment_trampoline< - P: IsA, - F: Fn(&P) + 'static, - >( - this: *mut ffi::GESTitleClip, - _param_spec: glib::ffi::gpointer, - f: glib::ffi::gpointer, - ) { - let f: &F = &*(f as *const F); - f(TitleClip::from_glib_borrow(this).unsafe_cast_ref()) - } - unsafe { - let f: Box_ = Box_::new(f); - connect_raw( - self.as_ptr() as *mut _, - b"notify::halignment\0".as_ptr() as *const _, - Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>( - notify_halignment_trampoline:: as *const (), - )), - Box_::into_raw(f), - ) - } - } - - #[deprecated = "Since 1.6"] - #[doc(alias = "text")] - fn connect_text_notify(&self, f: F) -> SignalHandlerId { - unsafe extern "C" fn notify_text_trampoline, F: Fn(&P) + 'static>( - this: *mut ffi::GESTitleClip, - _param_spec: glib::ffi::gpointer, - f: glib::ffi::gpointer, - ) { - let f: &F = &*(f as *const F); - f(TitleClip::from_glib_borrow(this).unsafe_cast_ref()) - } - unsafe { - let f: Box_ = Box_::new(f); - connect_raw( - self.as_ptr() as *mut _, - b"notify::text\0".as_ptr() as *const _, - Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>( - notify_text_trampoline:: as *const (), - )), - Box_::into_raw(f), - ) - } - } - - #[deprecated = "Since 1.6"] - #[doc(alias = "valignment")] - fn connect_valignment_notify(&self, f: F) -> SignalHandlerId { - unsafe extern "C" fn notify_valignment_trampoline< - P: IsA, - F: Fn(&P) + 'static, - >( - this: *mut ffi::GESTitleClip, - _param_spec: glib::ffi::gpointer, - f: glib::ffi::gpointer, - ) { - let f: &F = &*(f as *const F); - f(TitleClip::from_glib_borrow(this).unsafe_cast_ref()) - } - unsafe { - let f: Box_ = Box_::new(f); - connect_raw( - self.as_ptr() as *mut _, - b"notify::valignment\0".as_ptr() as *const _, - Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>( - notify_valignment_trampoline:: as *const (), - )), - Box_::into_raw(f), - ) - } - } - - #[deprecated = "Since 1.6"] - #[doc(alias = "xpos")] - fn connect_xpos_notify(&self, f: F) -> SignalHandlerId { - unsafe extern "C" fn notify_xpos_trampoline, F: Fn(&P) + 'static>( - this: *mut ffi::GESTitleClip, - _param_spec: glib::ffi::gpointer, - f: glib::ffi::gpointer, - ) { - let f: &F = &*(f as *const F); - f(TitleClip::from_glib_borrow(this).unsafe_cast_ref()) - } - unsafe { - let f: Box_ = Box_::new(f); - connect_raw( - self.as_ptr() as *mut _, - b"notify::xpos\0".as_ptr() as *const _, - Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>( - notify_xpos_trampoline:: as *const (), - )), - Box_::into_raw(f), - ) - } - } - - #[deprecated = "Since 1.6"] - #[doc(alias = "ypos")] - fn connect_ypos_notify(&self, f: F) -> SignalHandlerId { - unsafe extern "C" fn notify_ypos_trampoline, F: Fn(&P) + 'static>( - this: *mut ffi::GESTitleClip, - _param_spec: glib::ffi::gpointer, - f: glib::ffi::gpointer, - ) { - let f: &F = &*(f as *const F); - f(TitleClip::from_glib_borrow(this).unsafe_cast_ref()) - } - unsafe { - let f: Box_ = Box_::new(f); - connect_raw( - self.as_ptr() as *mut _, - b"notify::ypos\0".as_ptr() as *const _, - Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>( - notify_ypos_trampoline:: as *const (), - )), - Box_::into_raw(f), - ) - } - } -} - -impl> TitleClipExt for O {} diff --git a/gstreamer/src/log.rs b/gstreamer/src/log.rs index aab914ba2..7ec60a1a9 100644 --- a/gstreamer/src/log.rs +++ b/gstreamer/src/log.rs @@ -1002,7 +1002,8 @@ macro_rules! log_with_level( // FIXME: Once there's a function_name! macro that returns a string literal we can // directly pass it as `&GStr` forward - let obj = unsafe { $obj.unsafe_cast_ref::<$crate::glib::Object>() }; + let obj = &$obj; + let obj = unsafe { obj.unsafe_cast_ref::<$crate::glib::Object>() }; let function_name = $crate::glib::function_name!(); // Check if formatting is necessary or not @@ -1045,7 +1046,8 @@ macro_rules! log_with_level( // FIXME: Once there's a function_name! macro that returns a string literal we can // directly pass it as `&GStr` forward - let obj = unsafe { $obj.unsafe_cast_ref::<$crate::glib::Object>() }; + let obj = &$obj; + let obj = unsafe { obj.unsafe_cast_ref::<$crate::glib::Object>() }; $crate::DebugCategory::log_unfiltered( cat, Some(obj), diff --git a/gstreamer/src/structure.rs b/gstreamer/src/structure.rs index f3a8a534f..ec5ce932b 100644 --- a/gstreamer/src/structure.rs +++ b/gstreamer/src/structure.rs @@ -1276,7 +1276,7 @@ mod tests { assert_eq!(s.name(), "test"); s.set("f1", "abc"); - s.set("f2", &String::from("bcd")); + s.set("f2", String::from("bcd")); s.set("f3", 123i32); s.set("f5", Some("efg")); s.set("f7", 42i32);