diff --git a/examples/src/bin/cairo_compositor.rs b/examples/src/bin/cairo_compositor.rs index 13f6fe5a9..48401b991 100644 --- a/examples/src/bin/cairo_compositor.rs +++ b/examples/src/bin/cairo_compositor.rs @@ -161,7 +161,7 @@ mod cairo_compositor { fn request_new_pad( &self, templ: &gst::PadTemplate, - name: Option, + name: Option<&str>, caps: Option<&gst::Caps>, ) -> Option { let element = self.instance(); diff --git a/gstreamer/src/subclass/element.rs b/gstreamer/src/subclass/element.rs index 13bb9e144..d69a18a23 100644 --- a/gstreamer/src/subclass/element.rs +++ b/gstreamer/src/subclass/element.rs @@ -93,7 +93,7 @@ pub trait ElementImpl: ElementImplExt + GstObjectImpl + Send + Sync { fn request_new_pad( &self, templ: &crate::PadTemplate, - name: Option, + name: Option<&str>, caps: Option<&crate::Caps>, ) -> Option { self.parent_request_new_pad(templ, name, caps) @@ -137,7 +137,7 @@ pub trait ElementImplExt: ObjectSubclass { fn parent_request_new_pad( &self, templ: &crate::PadTemplate, - name: Option, + name: Option<&str>, caps: Option<&crate::Caps>, ) -> Option; @@ -198,7 +198,7 @@ impl ElementImplExt for T { fn parent_request_new_pad( &self, templ: &crate::PadTemplate, - name: Option, + name: Option<&str>, caps: Option<&crate::Caps>, ) -> Option { unsafe { @@ -481,13 +481,14 @@ unsafe extern "C" fn element_request_new_pad( let imp = instance.imp(); let caps = Option::::from_glib_borrow(caps); + let name = Option::::from_glib_none(name); // XXX: This is effectively unsafe but the best we can do // See https://bugzilla.gnome.org/show_bug.cgi?id=791193 let pad = panic_to_error!(imp, None, { imp.request_new_pad( &from_glib_borrow(templ), - from_glib_none(name), + name.as_deref(), caps.as_ref().as_ref(), ) });