diff --git a/gstreamer/src/gobject.rs b/gstreamer/src/gobject.rs new file mode 100644 index 000000000..3ed15c300 --- /dev/null +++ b/gstreamer/src/gobject.rs @@ -0,0 +1,17 @@ +use glib; +use glib::IsA; +use glib::translate::{ToGlibPtr, from_glib}; + +use ffi; + +pub trait GObjectExtManualGst { + fn set_property_from_str(&self, name: &str, value: &str); +} + +impl> GObjectExtManualGst for O { + fn set_property_from_str(&self, name: &str, value: &str) { + unsafe { + ffi::gst_util_set_object_arg(self.to_glib_none().0, name.to_glib_none().0, value.to_glib_none().0); + } + } +} diff --git a/gstreamer/src/lib.rs b/gstreamer/src/lib.rs index f9dc0cd61..23c72501c 100644 --- a/gstreamer/src/lib.rs +++ b/gstreamer/src/lib.rs @@ -61,7 +61,9 @@ pub use tags::*; mod element; mod bin; mod bus; +mod gobject; pub use bin::BinExtManual; +pub use gobject::GObjectExtManualGst; mod value; pub use value::*;