commit 2e7de9af16879a0cd226774b00f5903ad123a855 Author: Sjoerd Simons Date: Sat Mar 29 21:43:20 2008 +0100 * src/rbgst-bin.c: Do G_CHILD_ADD on all elements added to the bin * src/rbgs-element.c: Do G_CHILD_ADD on all pads added to an element diff --git a/gstreamer/src/rbgst-bin.c b/gstreamer/src/rbgst-bin.c index 896bf87..436a6f2 100644 --- a/gstreamer/src/rbgst-bin.c +++ b/gstreamer/src/rbgst-bin.c @@ -193,7 +193,13 @@ rb_gst_bin_get_clock_provider(VALUE self) static VALUE rb_gst_bin_add(VALUE self, VALUE element) { + static VALUE klass = GTYPE2CLASS(GST_TYPE_ELEMENT); + + if (!rb_obj_is_kind_of (element, klass) { + rb_raise(rb_eTypeError, "Gst::Element expected")); + } gst_bin_add(SELF(self), RVAL2GST_ELEMENT(element)); + G_CHILD_ADD(self, element); return self; } diff --git a/gstreamer/src/rbgst-element.c b/gstreamer/src/rbgst-element.c index 7b8a795..68bb173 100644 --- a/gstreamer/src/rbgst-element.c +++ b/gstreamer/src/rbgst-element.c @@ -634,6 +634,7 @@ static VALUE rb_gst_element_add_pad(VALUE self, VALUE pad) { gst_element_add_pad(SELF(self), RGST_PAD(pad)); + G_CHILD_ADD(self, pad); return self; }