commit 659901b99db753078b24c2cb381a395efe45af6b 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..bd1da67 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) { + 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; }