diff --git a/gstreamer/src/pad.rs b/gstreamer/src/pad.rs index 4557df457..f43553151 100644 --- a/gstreamer/src/pad.rs +++ b/gstreamer/src/pad.rs @@ -111,6 +111,12 @@ pub trait PadExtManual { fn push_event(&self, event: Event) -> bool; fn send_event(&self, event: Event) -> bool; + fn iterate_internal_links(&self) -> ::Iterator; + fn iterate_internal_links_default<'a, P: IsA<::Object> + 'a, Q: Into>>( + &self, + parent: Q, + ) -> ::Iterator; + fn stream_lock(&self) -> StreamLock; fn set_activate_function(&self, func: F) @@ -337,6 +343,24 @@ impl> PadExtManual for O { } } + fn iterate_internal_links(&self) -> ::Iterator { + unsafe { from_glib_full(ffi::gst_pad_iterate_internal_links(self.to_glib_none().0)) } + } + + fn iterate_internal_links_default<'a, P: IsA<::Object> + 'a, Q: Into>>( + &self, + parent: Q, + ) -> ::Iterator { + let parent = parent.into(); + let parent = parent.to_glib_none(); + unsafe { + from_glib_full(ffi::gst_pad_iterate_internal_links_default( + self.to_glib_none().0, + parent.0, + )) + } + } + fn stream_lock(&self) -> StreamLock { unsafe { let pad = self.to_glib_none().0;