From c9636bca2eebc714502dbf383ccae61e5c596fe0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Fri, 17 Nov 2017 16:53:37 +0200 Subject: [PATCH] Allow None caps for appsrc/appsink Thanks to Guillaume Desmottes for noticing --- Gir_GstApp.toml | 12 ++++++++++++ gstreamer-app/src/auto/app_sink.rs | 6 ++++-- gstreamer-app/src/auto/app_src.rs | 6 ++++-- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/Gir_GstApp.toml b/Gir_GstApp.toml index 69bf3f53a..6df5c2151 100644 --- a/Gir_GstApp.toml +++ b/Gir_GstApp.toml @@ -55,6 +55,12 @@ trait = false # Action signal ignore = true + [[object.function]] + name = "set_caps" + [[object.function.parameter]] + name = "caps" + nullable = true + [[object]] name = "GstApp.AppSrc" status = "generate" @@ -80,6 +86,12 @@ trait = false # Action signal ignore = true + [[object.function]] + name = "set_caps" + [[object.function.parameter]] + name = "caps" + nullable = true + [[object]] name = "Gst.Structure" status = "manual" diff --git a/gstreamer-app/src/auto/app_sink.rs b/gstreamer-app/src/auto/app_sink.rs index e29a9cede..90b19024b 100644 --- a/gstreamer-app/src/auto/app_sink.rs +++ b/gstreamer-app/src/auto/app_sink.rs @@ -97,9 +97,11 @@ impl AppSink { // unsafe { TODO: call ffi::gst_app_sink_set_callbacks() } //} - pub fn set_caps(&self, caps: &gst::Caps) { + pub fn set_caps<'a, P: Into>>(&self, caps: P) { + let caps = caps.into(); + let caps = caps.to_glib_none(); unsafe { - ffi::gst_app_sink_set_caps(self.to_glib_none().0, caps.to_glib_none().0); + ffi::gst_app_sink_set_caps(self.to_glib_none().0, caps.0); } } diff --git a/gstreamer-app/src/auto/app_src.rs b/gstreamer-app/src/auto/app_src.rs index bb0e3e955..c41e3e248 100644 --- a/gstreamer-app/src/auto/app_src.rs +++ b/gstreamer-app/src/auto/app_src.rs @@ -101,9 +101,11 @@ impl AppSrc { // unsafe { TODO: call ffi::gst_app_src_set_callbacks() } //} - pub fn set_caps(&self, caps: &gst::Caps) { + pub fn set_caps<'a, P: Into>>(&self, caps: P) { + let caps = caps.into(); + let caps = caps.to_glib_none(); unsafe { - ffi::gst_app_src_set_caps(self.to_glib_none().0, caps.to_glib_none().0); + ffi::gst_app_src_set_caps(self.to_glib_none().0, caps.0); } }