CVS Root: /cvs/gstreamer Module: gstreamer Changes by: wtay Date: Tue Sep 27 2005 02:57:32 PDT Log message: * gst/gstbin.c: (bin_element_is_semi_sink), (gst_bin_change_state): use gst_object_has_ancestor(). * gst/gstobject.c: (gst_object_has_ancestor): * gst/gstobject.h: gst_object_has_ancestor() copied from gstbin.c as it is a usefull function. * tests/instantiate/create.c: (create_all_elements): * tests/lat.c: (handoff_src), (handoff_sink): * tests/sched/runxml.c: (main): * tests/seeking/seeking1.c: (main): * tests/threadstate/threadstate2.c: (bus_handler), (timeout_func), (main): Fix compilation of some tests. Modified files: . : ChangeLog gst : gstbin.c gstobject.c gstobject.h tests : lat.c tests/instantiate: create.c tests/sched : runxml.c tests/seeking : seeking1.c tests/threadstate: threadstate2.c Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/ChangeLog.diff?r1=1.1574&r2=1.1575 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstbin.c.diff?r1=1.264&r2=1.265 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstobject.c.diff?r1=1.97&r2=1.98 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstobject.h.diff?r1=1.59&r2=1.60 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/tests/lat.c.diff?r1=1.10&r2=1.11 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/tests/instantiate/create.c.diff?r1=1.3&r2=1.4 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/tests/sched/runxml.c.diff?r1=1.13&r2=1.14 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/tests/seeking/seeking1.c.diff?r1=1.7&r2=1.8 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/tests/threadstate/threadstate2.c.diff?r1=1.8&r2=1.9 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gstreamer/ChangeLog,v retrieving revision 1.1574 retrieving revision 1.1575 diff -u -d -r1.1574 -r1.1575 --- ChangeLog 27 Sep 2005 09:29:04 -0000 1.1574 +++ ChangeLog 27 Sep 2005 09:57:19 -0000 1.1575 @@ -1,3 +1,21 @@ +2005-09-27 Wim Taymans <wi...@fl...> + + * gst/gstbin.c: (bin_element_is_semi_sink), (gst_bin_change_state): + use gst_object_has_ancestor(). + * gst/gstobject.c: (gst_object_has_ancestor): + * gst/gstobject.h: + gst_object_has_ancestor() copied from gstbin.c as it is a + usefull function. + * tests/instantiate/create.c: (create_all_elements): + * tests/lat.c: (handoff_src), (handoff_sink): + * tests/sched/runxml.c: (main): + * tests/seeking/seeking1.c: (main): + * tests/threadstate/threadstate2.c: (bus_handler), (timeout_func), + (main): + Fix compilation of some tests. 2005-09-27 Tim-Philipp Müller <tim at centricular dot net> * gst/gsterror.h: Index: gstbin.c RCS file: /cvs/gstreamer/gstreamer/gst/gstbin.c,v retrieving revision 1.264 retrieving revision 1.265 diff -u -d -r1.264 -r1.265 --- gstbin.c 26 Sep 2005 17:46:27 -0000 1.264 +++ gstbin.c 27 Sep 2005 09:57:19 -0000 1.265 @@ -824,29 +824,6 @@ return is_sink ? 0 : 1; } -/* check if object has the given ancestor somewhere up in - * the hierarchy - */ -static gboolean -has_ancestor (GstObject * object, GstObject * ancestor) -{ - GstObject *parent; - gboolean result = FALSE; - - if (object == NULL) - return FALSE; - if (object == ancestor) - return TRUE; - parent = gst_object_get_parent (object); - result = has_ancestor (parent, ancestor); - if (parent) - gst_object_unref (parent); - return result; -} /* returns 0 when TRUE because this is a GCompareFunc. * This function returns elements that have no connected srcpads and * are therefore not reachable from a real sink. */ @@ -879,7 +856,8 @@ GST_DEBUG ("looking at pad %p", pads->data); if ((peer = gst_pad_get_peer (GST_PAD_CAST (pads->data)))) { connected_src = - has_ancestor (GST_OBJECT_CAST (peer), GST_OBJECT_CAST (bin)); + gst_object_has_ancestor (GST_OBJECT_CAST (peer), + GST_OBJECT_CAST (bin)); gst_object_unref (peer); if (connected_src) { break; Index: gstobject.c RCS file: /cvs/gstreamer/gstreamer/gst/gstobject.c,v retrieving revision 1.97 retrieving revision 1.98 diff -u -d -r1.97 -r1.98 --- gstobject.c 23 Sep 2005 14:31:21 -0000 1.97 +++ gstobject.c 27 Sep 2005 09:57:19 -0000 1.98 @@ -954,6 +954,38 @@ /** + * gst_object_has_ancestor: + * @object: GstObject to check + * @ancestor: GstObject to check as ancestor + * + * Check if @object has an ancestor @ancestor somewhere up in + * the hierarchy. + * Returns: TRUE if @ancestor is an ancestor of @object. + * MT safe. Grabs and releases the object's locks. + */ +gboolean +gst_object_has_ancestor (GstObject * object, GstObject * ancestor) +{ + GstObject *parent; + gboolean result = FALSE; + if (object == NULL) + return FALSE; + if (object == ancestor) + return TRUE; + parent = gst_object_get_parent (object); + result = gst_object_has_ancestor (parent, ancestor); + if (parent) + gst_object_unref (parent); + return result; +} +/** * gst_object_check_uniqueness: * @list: a list of #GstObject to check through * @name: the name to search for Index: gstobject.h RCS file: /cvs/gstreamer/gstreamer/gst/gstobject.h,v retrieving revision 1.59 retrieving revision 1.60 diff -u -d -r1.59 -r1.60 --- gstobject.h 23 Sep 2005 14:31:21 -0000 1.59 +++ gstobject.h 27 Sep 2005 09:57:19 -0000 1.60 @@ -237,6 +237,7 @@ gboolean gst_object_set_parent (GstObject *object, GstObject *parent); GstObject* gst_object_get_parent (GstObject *object); void gst_object_unparent (GstObject *object); +gboolean gst_object_has_ancestor (GstObject *object, GstObject *ancestor); void gst_object_default_deep_notify (GObject *object, GstObject *orig, GParamSpec *pspec, gchar **excluded_props); Index: lat.c RCS file: /cvs/gstreamer/gstreamer/tests/lat.c,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- lat.c 22 Jul 2005 11:47:09 -0000 1.10 +++ lat.c 27 Sep 2005 09:57:19 -0000 1.11 @@ -13,7 +13,7 @@ void handoff_src (GstElement * src, GstBuffer * buf, gpointer user_data) { - gst_trace_read_tsc (&GST_BUFFER_TIMESTAMP (buf)); + gst_trace_read_tsc ((gint64 *) & GST_BUFFER_TIMESTAMP (buf)); @@ -22,7 +22,7 @@ guint64 end, d, avg; guint avg_ns; - gst_trace_read_tsc (&end); + gst_trace_read_tsc ((gint64 *) & end); d = end - GST_BUFFER_TIMESTAMP (buf); if (d > max) max = d; Index: create.c RCS file: /cvs/gstreamer/gstreamer/tests/instantiate/create.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- create.c 28 Jun 2005 09:58:56 -0000 1.3 +++ create.c 27 Sep 2005 09:57:20 -0000 1.4 @@ -31,9 +31,13 @@ const GList *elements; GstElementFactory *factory; GstElement *element; + GstRegistry *registry; + registry = gst_registry_get_default (); /* get list of elements */ - for (elements = gst_registry_pool_feature_list (GST_TYPE_ELEMENT_FACTORY); + for (elements = + gst_registry_get_feature_list (registry, GST_TYPE_ELEMENT_FACTORY); elements != NULL; elements = elements->next) { factory = (GstElementFactory *) elements->data; if ((element = gst_element_factory_create (factory, "test"))) { Index: runxml.c RCS file: /cvs/gstreamer/gstreamer/tests/sched/runxml.c,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- runxml.c 22 Jul 2005 11:47:09 -0000 1.13 +++ runxml.c 27 Sep 2005 09:57:20 -0000 1.14 @@ -44,7 +44,7 @@ g_print ("\n *** using testfile %s\n", argv[1]); xml = gst_xml_new (); - gst_xml_parse_file (xml, argv[1], NULL); + gst_xml_parse_file (xml, (const guchar *) argv[1], NULL); toplevelelements = gst_xml_get_topelements (xml); Index: seeking1.c RCS file: /cvs/gstreamer/gstreamer/tests/seeking/seeking1.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- seeking1.c 22 Jul 2005 11:47:10 -0000 1.7 +++ seeking1.c 27 Sep 2005 09:57:20 -0000 1.8 @@ -53,8 +53,9 @@ g_print ("doing segment seek from 5 to 10\n"); gst_pad_send_event (pad, - gst_event_new_segment_seek (GST_FORMAT_DEFAULT | - GST_SEEK_METHOD_SET | GST_SEEK_FLAG_FLUSH, 5, 10)); + gst_event_new_seek (1.0, GST_FORMAT_DEFAULT, + GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_SEGMENT, + GST_SEEK_TYPE_SET, 5, GST_SEEK_TYPE_SET, 10)); format = GST_FORMAT_DEFAULT; @@ -77,9 +78,10 @@ ("doing segment seek from 50 to 55 with looping (2 times), then 20 to 25 without looping\n"); looping = 3; - event = gst_event_new_segment_seek (GST_FORMAT_DEFAULT | - GST_SEEK_METHOD_SET | - GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_SEGMENT_LOOP, 50, 55); + event = + GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_SEGMENT, + GST_SEEK_TYPE_SET, 50, GST_SEEK_TYPE_SET, 55); gst_pad_send_event (pad, event); g_signal_connect (G_OBJECT (gst_element_get_pad (fakesink, "sink")), Index: threadstate2.c RCS file: /cvs/gstreamer/gstreamer/tests/threadstate/threadstate2.c,v retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- threadstate2.c 22 Jul 2005 11:47:10 -0000 1.8 +++ threadstate2.c 27 Sep 2005 09:57:20 -0000 1.9 @@ -72,7 +72,7 @@ g_timeout_add (2 * 1000, (GSourceFunc) timeout_func, loop); bus = gst_pipeline_get_bus (GST_PIPELINE (pipeline)); - gst_bus_add_watch (bus, (GstBusHandler) bus_handler, pipeline); + gst_bus_add_watch (bus, GST_MESSAGE_ANY, (GstBusFunc) bus_handler, pipeline); for (x = 0; x < 10; x++) { g_print ("playing %d\n", x); |