From: Benjamin O. <co...@pd...> - 2004-04-09 19:05:18
|
CVS Root: /home/cvs/gstreamer Module: gstreamer Changes by: company Date: Fri Apr 09 2004 12:05:15 PDT Log message: * gst/gstbin.c: (gst_bin_get_type): * gst/gstclock.c: (gst_clock_get_type): * gst/gstindex.c: (gst_index_get_type): * gst/gstobject.c: (gst_object_get_type), (gst_signal_object_get_type): * gst/gstpad.c: (gst_pad_get_type), (gst_real_pad_get_type), (gst_pad_template_get_type), (gst_ghost_pad_get_type): * gst/gstpluginfeature.c: (gst_plugin_feature_get_type): * gst/gstqueue.c: (gst_queue_get_type): * gst/gstregistry.c: (gst_registry_get_type): * gst/gstsystemclock.c: (gst_system_clock_get_type): * gst/gstthread.c: (gst_thread_get_type): don't use memchunks for these objects, use malloc instead Modified files: . : ChangeLog gst : gstbin.c gstclock.c gstindex.c gstobject.c gstpad.c gstpluginfeature.c gstqueue.c gstregistry.c gstsystemclock.c gstthread.c Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/ChangeLog.diff?r1=1.408&r2=1.409 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstbin.c.diff?r1=1.181&r2=1.182 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstclock.c.diff?r1=1.47&r2=1.48 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstindex.c.diff?r1=1.23&r2=1.24 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstobject.c.diff?r1=1.72&r2=1.73 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstpad.c.diff?r1=1.308&r2=1.309 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstpluginfeature.c.diff?r1=1.21&r2=1.22 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstqueue.c.diff?r1=1.100&r2=1.101 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstregistry.c.diff?r1=1.24&r2=1.25 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstsystemclock.c.diff?r1=1.19&r2=1.20 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstthread.c.diff?r1=1.123&r2=1.124 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /home/cvs/gstreamer/gstreamer/ChangeLog,v retrieving revision 1.408 retrieving revision 1.409 diff -u -d -r1.408 -r1.409 --- a/ChangeLog 8 Apr 2004 14:45:12 -0000 1.408 +++ b/ChangeLog 9 Apr 2004 19:05:03 -0000 1.409 @@ -1,3 +1,19 @@ +2004-04-09 Benjamin Otte <ot...@gn...> + + * gst/gstbin.c: (gst_bin_get_type): + * gst/gstclock.c: (gst_clock_get_type): + * gst/gstindex.c: (gst_index_get_type): + * gst/gstobject.c: (gst_object_get_type), + (gst_signal_object_get_type): + * gst/gstpad.c: (gst_pad_get_type), (gst_real_pad_get_type), + (gst_pad_template_get_type), (gst_ghost_pad_get_type): + * gst/gstpluginfeature.c: (gst_plugin_feature_get_type): + * gst/gstqueue.c: (gst_queue_get_type): + * gst/gstregistry.c: (gst_registry_get_type): + * gst/gstsystemclock.c: (gst_system_clock_get_type): + * gst/gstthread.c: (gst_thread_get_type): + don't use memchunks for these objects, use malloc instead 2004-04-08 Thomas Vander Stichele <thomas at apestaart dot org> * docs/gst/.cvsignore: Index: gstbin.c RCS file: /home/cvs/gstreamer/gstreamer/gst/gstbin.c,v retrieving revision 1.181 retrieving revision 1.182 diff -u -d -r1.181 -r1.182 --- a/gstbin.c 28 Mar 2004 02:29:23 -0000 1.181 +++ b/gstbin.c 9 Apr 2004 19:05:03 -0000 1.182 @@ -106,7 +106,7 @@ NULL, sizeof (GstBin), - 8, + 0, (GInstanceInitFunc) gst_bin_init, NULL }; Index: gstclock.c RCS file: /home/cvs/gstreamer/gstreamer/gst/gstclock.c,v retrieving revision 1.47 retrieving revision 1.48 diff -u -d -r1.47 -r1.48 --- a/gstclock.c 28 Mar 2004 13:15:21 -0000 1.47 +++ b/gstclock.c 9 Apr 2004 19:05:03 -0000 1.48 @@ -342,7 +342,7 @@ sizeof (GstClock), - 4, (GInstanceInitFunc) gst_clock_init, Index: gstindex.c RCS file: /home/cvs/gstreamer/gstreamer/gst/gstindex.c,v retrieving revision 1.23 retrieving revision 1.24 diff -u -d -r1.23 -r1.24 --- a/gstindex.c 30 Mar 2004 09:15:47 -0000 1.23 +++ b/gstindex.c 9 Apr 2004 19:05:03 -0000 1.24 @@ -125,7 +125,7 @@ sizeof (GstIndex), - 1, (GInstanceInitFunc) gst_index_init, Index: gstobject.c RCS file: /home/cvs/gstreamer/gstreamer/gst/gstobject.c,v retrieving revision 1.72 retrieving revision 1.73 diff -u -d -r1.72 -r1.73 --- a/gstobject.c 15 Mar 2004 19:27:10 -0000 1.72 +++ b/gstobject.c 9 Apr 2004 19:05:03 -0000 1.73 @@ -109,7 +109,7 @@ sizeof (GstObject), - 32, (GInstanceInitFunc) gst_object_init, @@ -803,7 +803,7 @@ sizeof (GstSignalObject), - 16, (GInstanceInitFunc) gst_signal_object_init, Index: gstpad.c RCS file: /home/cvs/gstreamer/gstreamer/gst/gstpad.c,v retrieving revision 1.308 retrieving revision 1.309 diff -u -d -r1.308 -r1.309 --- a/gstpad.c 7 Apr 2004 10:42:16 -0000 1.308 +++ b/gstpad.c 9 Apr 2004 19:05:03 -0000 1.309 @@ -74,7 +74,7 @@ sizeof (GstPadClass), NULL, NULL, (GClassInitFunc) gst_pad_class_init, NULL, NULL, sizeof (GstPad), (GInstanceInitFunc) gst_pad_init, NULL @@ -156,7 +156,7 @@ sizeof (GstRealPadClass), NULL, NULL, (GClassInitFunc) gst_real_pad_class_init, NULL, NULL, sizeof (GstRealPad), (GInstanceInitFunc) gst_real_pad_init, NULL @@ -3327,7 +3327,7 @@ sizeof (GstPadTemplateClass), NULL, NULL, (GClassInitFunc) gst_pad_template_class_init, NULL, NULL, sizeof (GstPadTemplate), (GInstanceInitFunc) gst_pad_template_init, NULL @@ -3566,7 +3566,7 @@ sizeof (GstGhostPadClass), NULL, NULL, (GClassInitFunc) gst_ghost_pad_class_init, NULL, NULL, sizeof (GstGhostPad), (GInstanceInitFunc) gst_ghost_pad_init, Index: gstpluginfeature.c RCS file: /home/cvs/gstreamer/gstreamer/gst/gstpluginfeature.c,v retrieving revision 1.21 retrieving revision 1.22 diff -u -d -r1.21 -r1.22 --- a/gstpluginfeature.c 15 Mar 2004 19:27:10 -0000 1.21 +++ b/gstpluginfeature.c 9 Apr 2004 19:05:03 -0000 1.22 @@ -50,7 +50,7 @@ sizeof (GObject), (GInstanceInitFunc) gst_plugin_feature_init, Index: gstqueue.c RCS file: /home/cvs/gstreamer/gstreamer/gst/gstqueue.c,v retrieving revision 1.100 retrieving revision 1.101 diff -u -d -r1.100 -r1.101 --- a/gstqueue.c 15 Mar 2004 19:27:10 -0000 1.100 +++ b/gstqueue.c 9 Apr 2004 19:05:03 -0000 1.101 @@ -131,7 +131,7 @@ sizeof (GstQueue), (GInstanceInitFunc) gst_queue_init, Index: gstregistry.c RCS file: /home/cvs/gstreamer/gstreamer/gst/gstregistry.c,v retrieving revision 1.25 diff -u -d -r1.24 -r1.25 --- a/gstregistry.c 15 Mar 2004 19:27:10 -0000 1.24 +++ b/gstregistry.c 9 Apr 2004 19:05:03 -0000 1.25 @@ -63,7 +63,7 @@ sizeof (GstRegistry), (GInstanceInitFunc) gst_registry_init, Index: gstsystemclock.c RCS file: /home/cvs/gstreamer/gstreamer/gst/gstsystemclock.c,v retrieving revision 1.19 retrieving revision 1.20 diff -u -d -r1.19 -r1.20 --- a/gstsystemclock.c 15 Mar 2004 19:27:10 -0000 1.19 +++ b/gstsystemclock.c 9 Apr 2004 19:05:03 -0000 1.20 @@ -59,7 +59,7 @@ sizeof (GstSystemClock), (GInstanceInitFunc) gst_system_clock_init, Index: gstthread.c RCS file: /home/cvs/gstreamer/gstreamer/gst/gstthread.c,v retrieving revision 1.123 retrieving revision 1.124 diff -u -d -r1.123 -r1.124 --- a/gstthread.c 30 Mar 2004 18:02:38 -0000 1.123 +++ b/gstthread.c 9 Apr 2004 19:05:03 -0000 1.124 @@ -124,7 +124,7 @@ sizeof (GstThread), gst_thread_init, |
From: Benjamin O. <co...@pd...> - 2004-04-17 03:26:59
|
CVS Root: /home/cvs/gstreamer Module: gstreamer Changes by: company Date: Fri Apr 16 2004 20:26:58 PDT Log message: * gst/gstelement.c: (gst_element_dispose): simplify * gst/gstpad.c: (gst_pad_call_chain_function): don't create loads of events due to bad macro usage Modified files: . : ChangeLog gst : gstelement.c gstpad.c Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/ChangeLog.diff?r1=1.439&r2=1.440 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstelement.c.diff?r1=1.273&r2=1.274 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstpad.c.diff?r1=1.312&r2=1.313 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /home/cvs/gstreamer/gstreamer/ChangeLog,v retrieving revision 1.439 retrieving revision 1.440 diff -u -d -r1.439 -r1.440 --- a/ChangeLog 17 Apr 2004 02:21:54 -0000 1.439 +++ b/ChangeLog 17 Apr 2004 03:26:46 -0000 1.440 @@ -1,3 +1,10 @@ +2004-04-17 Benjamin Otte <ot...@gn...> + + * gst/gstelement.c: (gst_element_dispose): + simplify + * gst/gstpad.c: (gst_pad_call_chain_function): + don't create loads of events due to bad macro usage 2004-04-16 David Schleef <ds...@sc...> * gst/gstcaps.c: (gst_caps_is_fixed_foreach): Index: gstelement.c RCS file: /home/cvs/gstreamer/gstreamer/gst/gstelement.c,v retrieving revision 1.273 retrieving revision 1.274 diff -u -d -r1.273 -r1.274 --- a/gstelement.c 6 Apr 2004 19:45:27 -0000 1.273 +++ b/gstelement.c 17 Apr 2004 03:26:46 -0000 1.274 @@ -2974,33 +2974,14 @@ gst_element_dispose (GObject * object) { GstElement *element = GST_ELEMENT (object); - GList *pads; - GstPad *pad; GST_CAT_INFO_OBJECT (GST_CAT_REFCOUNTING, element, "dispose"); gst_element_set_state (element, GST_STATE_NULL); /* first we break all our links with the ouside */ - if (element->pads) { - GList *orig; - - orig = pads = g_list_copy (element->pads); - while (pads) { - pad = GST_PAD (pads->data); - if (GST_PAD_PEER (pad)) { - GST_CAT_DEBUG (GST_CAT_REFCOUNTING, "unlinking pad '%s'", - GST_OBJECT_NAME (GST_OBJECT (GST_PAD (GST_PAD_PEER (pad))))); - gst_pad_unlink (pad, GST_PAD (GST_PAD_PEER (pad))); - } - gst_element_remove_pad (element, pad); - pads = g_list_next (pads); - } - g_list_free (orig); - g_list_free (element->pads); - element->pads = NULL; + while (element->pads) { + gst_element_remove_pad (element, GST_PAD (element->pads->data)); } element->numsrcpads = 0; Index: gstpad.c RCS file: /home/cvs/gstreamer/gstreamer/gst/gstpad.c,v retrieving revision 1.312 retrieving revision 1.313 diff -u -d -r1.312 -r1.313 --- a/gstpad.c 17 Apr 2004 02:21:54 -0000 1.312 +++ b/gstpad.c 17 Apr 2004 03:26:46 -0000 1.313 @@ -4212,11 +4212,12 @@ } #define CALL_CHAINFUNC(pad, data) G_STMT_START {\ - if (GST_IS_EVENT (data) && \ + GstData *__temp = (data); \ + if (GST_IS_EVENT (__temp) && \ !GST_FLAG_IS_SET (gst_pad_get_parent (pad), GST_ELEMENT_EVENT_AWARE)) { \ - gst_pad_send_event (pad, GST_EVENT (data)); \ + gst_pad_send_event (pad, GST_EVENT (__temp)); \ } else { \ - GST_RPAD_CHAINFUNC (pad) (pad, data); \ + GST_RPAD_CHAINFUNC (pad) (pad, __temp); \ } \ }G_STMT_END /** |
From: Benjamin O. <co...@pd...> - 2004-04-21 04:08:33
|
CVS Root: /home/cvs/gstreamer Module: gstreamer Changes by: company Date: Tue Apr 20 2004 21:08:31 PDT Log message: * gst/gstpad.c: (gst_pad_link_fixate): add sophisticated error checking code to see if fixation functions did their fixation right Modified files: . : ChangeLog gst : gstpad.c Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/ChangeLog.diff?r1=1.462&r2=1.463 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstpad.c.diff?r1=1.316&r2=1.317 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /home/cvs/gstreamer/gstreamer/ChangeLog,v retrieving revision 1.462 retrieving revision 1.463 diff -u -d -r1.462 -r1.463 --- a/ChangeLog 21 Apr 2004 03:25:13 -0000 1.462 +++ b/ChangeLog 21 Apr 2004 04:08:19 -0000 1.463 @@ -1,5 +1,11 @@ 2004-04-21 Benjamin Otte <ot...@gn...> + * gst/gstpad.c: (gst_pad_link_fixate): + add sophisticated error checking code to see if fixation functions + did their fixation right + +2004-04-21 Benjamin Otte <ot...@gn...> * gst/gstcaps.c: (gst_caps_append), (gst_caps_union): check for ANY caps before appending/unioning * gst/gstcaps.c: (gst_caps_is_subset), Index: gstpad.c RCS file: /home/cvs/gstreamer/gstreamer/gst/gstpad.c,v retrieving revision 1.316 retrieving revision 1.317 diff -u -d -r1.316 -r1.317 --- a/gstpad.c 21 Apr 2004 03:25:13 -0000 1.316 +++ b/gstpad.c 21 Apr 2004 04:08:19 -0000 1.317 @@ -1196,9 +1196,41 @@ break; } if (newcaps) { - gst_caps_free (caps); - caps = newcaps; - break; +#ifndef G_DISABLE_CHECKS + /* some mad checking for correctly working fixation functions */ + gboolean bad; + if (i == 4) { + /* we trust the default fixation function unconditionally */ + bad = FALSE; + } else if (gst_caps_is_any (caps)) { + bad = gst_caps_is_any (newcaps); + } else { + GstCaps *test = gst_caps_subtract (caps, newcaps); + bad = gst_caps_is_empty (test); + gst_caps_free (test); + /* simplifying is ok, too */ + if (bad) + bad = (gst_caps_get_size (newcaps) >= gst_caps_get_size (caps)); + } + if (bad) { + gchar *newcaps_str = gst_caps_to_string (newcaps); + gchar *caps_str = gst_caps_to_string (caps); + g_warning + ("a fixation function did not fixate correctly, the returned caps %s are no true subset of %s.", + newcaps_str, caps_str); + g_free (newcaps_str); + g_free (caps_str); + gst_caps_free (newcaps); + } else +#endif + { + gst_caps_free (caps); + caps = newcaps; + break; } } |
From: Benjamin O. <co...@pd...> - 2004-04-21 22:57:15
|
CVS Root: /home/cvs/gstreamer Module: gstreamer Changes by: company Date: Wed Apr 21 2004 15:57:11 PDT Log message: reviewed by Benjamin Otte <ot...@gn...> * gst/gstparse.c: (_gst_parse_escape): Free the GString used in _gst_parse_escape() Modified files: . : ChangeLog gst : gstparse.c Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/ChangeLog.diff?r1=1.466&r2=1.467 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstparse.c.diff?r1=1.65&r2=1.66 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /home/cvs/gstreamer/gstreamer/ChangeLog,v retrieving revision 1.466 retrieving revision 1.467 diff -u -d -r1.466 -r1.467 --- a/ChangeLog 21 Apr 2004 19:12:51 -0000 1.466 +++ b/ChangeLog 21 Apr 2004 22:56:58 -0000 1.467 @@ -1,3 +1,10 @@ +2004-04-22 Sebastien Cote <sc...@he...> + + reviewed by Benjamin Otte <ot...@gn...> + * gst/gstparse.c: (_gst_parse_escape): + Free the GString used in _gst_parse_escape() 2004-04-21 Benjamin Otte <in...@pu...> * gst/gstpad.c: (gst_pad_link_negotiate): Index: gstparse.c RCS file: /home/cvs/gstreamer/gstreamer/gst/gstparse.c,v retrieving revision 1.65 retrieving revision 1.66 diff -u -d -r1.65 -r1.66 --- a/gstparse.c 13 Mar 2004 15:26:51 -0000 1.65 +++ b/gstparse.c 21 Apr 2004 22:56:59 -0000 1.66 @@ -44,6 +44,7 @@ _gst_parse_escape (const gchar * str) { GString *gstr = NULL; + gchar *newstr = NULL; g_return_val_if_fail (str != NULL, NULL); @@ -56,7 +57,10 @@ str++; } - return gstr->str; + newstr = gstr->str; + g_string_free (gstr, FALSE); + return newstr; } /** |
From: Benjamin O. <co...@pd...> - 2004-04-22 03:40:24
|
CVS Root: /home/cvs/gstreamer Module: gstreamer Changes by: company Date: Wed Apr 21 2004 20:34:55 PDT Log message: * gst/gstcaps.c: (gst_caps_structure_simplify): unset GValue after use * gst/gstcaps.c: (gst_caps_append), * gst/gstpad.c: (gst_pad_link_fixate), (gst_pad_template_new): use gst_caps_simplify (reduces registry size by 30%) * gst/gstpad.c: (gst_pad_template_new): don't allow NULL caps Modified files: . : ChangeLog gst : gstcaps.c gstpad.c Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/ChangeLog.diff?r1=1.469&r2=1.470 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstcaps.c.diff?r1=1.108&r2=1.109 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstpad.c.diff?r1=1.318&r2=1.319 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /home/cvs/gstreamer/gstreamer/ChangeLog,v retrieving revision 1.469 retrieving revision 1.470 diff -u -d -r1.469 -r1.470 --- a/ChangeLog 22 Apr 2004 02:43:57 -0000 1.469 +++ b/ChangeLog 22 Apr 2004 03:34:43 -0000 1.470 @@ -1,5 +1,15 @@ 2004-04-22 Benjamin Otte <ot...@gn...> + * gst/gstcaps.c: (gst_caps_structure_simplify): + unset GValue after use + * gst/gstcaps.c: (gst_caps_append), + * gst/gstpad.c: (gst_pad_link_fixate), (gst_pad_template_new): + use gst_caps_simplify (reduces registry size by 30%) + * gst/gstpad.c: (gst_pad_template_new): + don't allow NULL caps + +2004-04-22 Benjamin Otte <ot...@gn...> * docs/gst/gstreamer-sections.txt: add gst_caps_do_simplify * gst/gstcaps.c: Index: gstcaps.c RCS file: /home/cvs/gstreamer/gstreamer/gst/gstcaps.c,v retrieving revision 1.108 retrieving revision 1.109 diff -u -d -r1.108 -r1.109 --- a/gstcaps.c 22 Apr 2004 02:43:57 -0000 1.108 +++ b/gstcaps.c 22 Apr 2004 03:34:43 -0000 1.109 @@ -298,6 +298,7 @@ structure = gst_caps_get_structure (caps2, i); gst_caps_append_structure (caps1, structure); } + gst_caps_do_simplify (caps1); } g_ptr_array_free (caps2->structs, TRUE); #ifdef USE_POISONING @@ -1186,6 +1187,7 @@ g_assert (field.name != 0); gst_structure_id_set_value (compare, field.name, &field.value); gst_structure_free (ret); + g_value_unset (&field.value); return NULL; @@ -1193,7 +1195,7 @@ } /** - * gst_caps_simplify: + * gst_caps_do_simplify: * @caps: a #GstCaps to simplify * * Modifies the given @caps inplace into a representation that represents the Index: gstpad.c RCS file: /home/cvs/gstreamer/gstreamer/gst/gstpad.c,v retrieving revision 1.318 retrieving revision 1.319 diff -u -d -r1.318 -r1.319 --- a/gstpad.c 21 Apr 2004 19:12:51 -0000 1.318 +++ b/gstpad.c 22 Apr 2004 03:34:43 -0000 1.319 @@ -1151,6 +1151,7 @@ GST_DEBUG ("trying to fixate caps %" GST_PTR_FORMAT, caps); + gst_caps_do_simplify (caps); while (!gst_caps_is_fixed (caps)) { int i; @@ -1196,9 +1197,11 @@ break; } if (newcaps) { + G_GNUC_UNUSED gboolean bad; + gst_caps_do_simplify (newcaps); #ifndef G_DISABLE_CHECKS /* some mad checking for correctly working fixation functions */ - gboolean bad; if (i == 4) { /* we trust the default fixation function unconditionally */ @@ -3578,6 +3581,7 @@ GstPadTemplate *new; g_return_val_if_fail (name_template != NULL, NULL); + g_return_val_if_fail (caps != NULL, NULL); if (!name_is_valid (name_template, presence)) @@ -3598,6 +3602,7 @@ GST_PAD_TEMPLATE_NAME_TEMPLATE (new) = g_strdup (name_template); GST_PAD_TEMPLATE_DIRECTION (new) = direction; GST_PAD_TEMPLATE_PRESENCE (new) = presence; GST_PAD_TEMPLATE_CAPS (new) = caps; return new; |
From: Benjamin O. <co...@pd...> - 2004-04-22 04:40:09
|
CVS Root: /home/cvs/gstreamer Module: gstreamer Changes by: company Date: Wed Apr 21 2004 21:29:30 PDT Log message: * gst/gstcaps.c: (gst_caps_append), (gst_caps_intersect), (gst_caps_union): only simplify in functions that create new caps. Simplifying in gst_caps_append breaks tests. Modified files: . : ChangeLog gst : gstcaps.c Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/ChangeLog.diff?r1=1.470&r2=1.471 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstcaps.c.diff?r1=1.109&r2=1.110 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /home/cvs/gstreamer/gstreamer/ChangeLog,v retrieving revision 1.470 retrieving revision 1.471 diff -u -d -r1.470 -r1.471 --- a/ChangeLog 22 Apr 2004 03:34:43 -0000 1.470 +++ b/ChangeLog 22 Apr 2004 04:29:18 -0000 1.471 @@ -1,5 +1,12 @@ 2004-04-22 Benjamin Otte <ot...@gn...> + * gst/gstcaps.c: (gst_caps_append), (gst_caps_intersect), + (gst_caps_union): + only simplify in functions that create new caps. Simplifying in + gst_caps_append breaks tests. + +2004-04-22 Benjamin Otte <ot...@gn...> * gst/gstcaps.c: (gst_caps_structure_simplify): unset GValue after use * gst/gstcaps.c: (gst_caps_append), Index: gstcaps.c RCS file: /home/cvs/gstreamer/gstreamer/gst/gstcaps.c,v retrieving revision 1.109 retrieving revision 1.110 diff -u -d -r1.109 -r1.110 --- a/gstcaps.c 22 Apr 2004 03:34:43 -0000 1.109 +++ b/gstcaps.c 22 Apr 2004 04:29:18 -0000 1.110 @@ -298,7 +298,6 @@ structure = gst_caps_get_structure (caps2, i); gst_caps_append_structure (caps1, structure); } - gst_caps_do_simplify (caps1); } g_ptr_array_free (caps2->structs, TRUE); #ifdef USE_POISONING @@ -869,10 +868,6 @@ GstStructure *struct2; GstCaps *dest; -#if 0 - GstCaps *caps; -#endif - g_return_val_if_fail (caps1 != NULL, NULL); g_return_val_if_fail (caps2 != NULL, NULL); @@ -897,14 +892,8 @@ - caps = gst_caps_simplify (dest); - gst_caps_free (dest); - return caps; -#else + gst_caps_do_simplify (dest); return dest; } typedef struct @@ -1019,8 +1008,7 @@ dest2 = gst_caps_copy (caps2); gst_caps_append (dest1, dest2); - /* FIXME: need a simplify function */ + gst_caps_do_simplify (dest1); return dest1; |
From: Benjamin O. <co...@pd...> - 2004-04-22 08:03:19
|
CVS Root: /home/cvs/gstreamer Module: gstreamer Changes by: company Date: Wed Apr 21 2004 21:41:31 PDT Log message: * gst/gstcaps.c: (gst_caps_subtract): allow subtracting ANY and EMPTY from ANY caps Modified files: . : ChangeLog gst : gstcaps.c Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/ChangeLog.diff?r1=1.471&r2=1.472 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstcaps.c.diff?r1=1.110&r2=1.111 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /home/cvs/gstreamer/gstreamer/ChangeLog,v retrieving revision 1.471 retrieving revision 1.472 diff -u -d -r1.471 -r1.472 --- a/ChangeLog 22 Apr 2004 04:29:18 -0000 1.471 +++ b/ChangeLog 22 Apr 2004 04:41:19 -0000 1.472 @@ -1,5 +1,10 @@ 2004-04-22 Benjamin Otte <ot...@gn...> + * gst/gstcaps.c: (gst_caps_subtract): + allow subtracting ANY and EMPTY from ANY caps + +2004-04-22 Benjamin Otte <ot...@gn...> * gst/gstcaps.c: (gst_caps_append), (gst_caps_intersect), (gst_caps_union): only simplify in functions that create new caps. Simplifying in Index: gstcaps.c RCS file: /home/cvs/gstreamer/gstreamer/gst/gstcaps.c,v retrieving revision 1.110 retrieving revision 1.111 diff -u -d -r1.110 -r1.111 --- a/gstcaps.c 22 Apr 2004 04:29:18 -0000 1.110 +++ b/gstcaps.c 22 Apr 2004 04:41:19 -0000 1.111 @@ -952,8 +952,6 @@ GstCaps *dest = NULL, *src; g_return_val_if_fail (minuend != NULL, NULL); - /* what would that be ? */ - g_return_val_if_fail (!gst_caps_is_any (minuend), NULL); g_return_val_if_fail (subtrahend != NULL, NULL); if (gst_caps_is_empty (minuend) || gst_caps_is_any (subtrahend)) { @@ -962,6 +960,13 @@ if (gst_caps_is_empty (subtrahend)) return gst_caps_copy (minuend); + /* FIXME: Do we want this here or above? + The reason we need this is that there is no definition about what + ANY means for specific types, so it's not possible to reduce ANY partially + You can only remove everything or nothing and that is done above. + Note: there's a test that checks this behaviour. */ + g_return_val_if_fail (!gst_caps_is_any (minuend), NULL); src = gst_caps_copy (minuend); for (i = 0; i < subtrahend->structs->len; i++) { sub = gst_caps_get_structure (subtrahend, i); |
From: Benjamin O. <co...@pd...> - 2004-04-23 00:00:38
|
CVS Root: /home/cvs/gstreamer Module: gstreamer Changes by: company Date: Thu Apr 22 2004 17:00:37 PDT Log message: * gst/gstcaps.c: (gst_caps_subtract), (gst_caps_is_equal), (gst_caps_is_subset): add documentation Modified files: . : ChangeLog gst : gstcaps.c Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/ChangeLog.diff?r1=1.475&r2=1.476 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstcaps.c.diff?r1=1.113&r2=1.114 ====Begin Diffs==== Index: gstcaps.c =================================================================== RCS file: /home/cvs/gstreamer/gstreamer/gst/gstcaps.c,v retrieving revision 1.113 retrieving revision 1.114 diff -u -d -r1.113 -r1.114 --- a/gstcaps.c 22 Apr 2004 23:50:46 -0000 1.113 +++ b/gstcaps.c 23 Apr 2004 00:00:25 -0000 1.114 @@ -716,6 +716,17 @@ return FALSE; } +/** + * gst_caps_is_subset: + * @subset: a #GstCaps + * @superset: a potentially greater #GstCaps + * + * Checks if all caps represented by @subset are also represented by @superset + * <note>This function does not work reliably if optional properties for caps + * are included on one caps and omitted on the other.</note> + * Returns: TRUE if @subset is a subset of @superset + */ gboolean gst_caps_is_subset (const GstCaps * subset, const GstCaps * superset) { @@ -736,6 +747,17 @@ return ret; + * gst_caps_is_equal: + * @caps1: a #GstCaps + * @caps2: another #GstCaps + * Checks if the given caps represent the same set of caps. + * Returns: TRUE if both caps are equal gst_caps_is_equal (const GstCaps * caps1, const GstCaps * caps2) @@ -957,6 +979,17 @@ + * gst_caps_subtract: + * @minuend: #GstCaps to substract from + * @subtrahend: #GstCaps to substract + * Subtracts the @subtrahend from the @minuend. + * Returns: the resulting caps GstCaps * gst_caps_subtract (const GstCaps * minuend, const GstCaps * subtrahend) Index: ChangeLog RCS file: /home/cvs/gstreamer/gstreamer/ChangeLog,v retrieving revision 1.475 retrieving revision 1.476 diff -u -d -r1.475 -r1.476 --- a/ChangeLog 22 Apr 2004 23:50:46 -0000 1.475 +++ b/ChangeLog 23 Apr 2004 00:00:25 -0000 1.476 @@ -1,4 +1,10 @@ 2004-04-23 Benjamin Otte <ot...@gn...> + + * gst/gstcaps.c: (gst_caps_subtract), (gst_caps_is_equal), + (gst_caps_is_subset): + add documentation +2004-04-23 Benjamin Otte <ot...@gn...> * gst/gstcaps.c: (gst_caps_structure_subtract_field), (gst_caps_structure_subtract), (gst_caps_subtract), |
From: Benjamin O. <co...@pd...> - 2004-04-23 00:05:04
|
CVS Root: /home/cvs/gstreamer Module: gstreamer Changes by: company Date: Thu Apr 22 2004 17:05:02 PDT Log message: * gst/gstcaps.c: (gst_caps_is_always_compatible): call gst_caps_is_subset Modified files: . : ChangeLog gst : gstcaps.c Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/ChangeLog.diff?r1=1.476&r2=1.477 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstcaps.c.diff?r1=1.114&r2=1.115 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /home/cvs/gstreamer/gstreamer/ChangeLog,v retrieving revision 1.476 retrieving revision 1.477 diff -u -d -r1.476 -r1.477 --- a/ChangeLog 23 Apr 2004 00:00:25 -0000 1.476 +++ b/ChangeLog 23 Apr 2004 00:04:50 -0000 1.477 @@ -1,5 +1,10 @@ 2004-04-23 Benjamin Otte <ot...@gn...> + * gst/gstcaps.c: (gst_caps_is_always_compatible): + call gst_caps_is_subset + +2004-04-23 Benjamin Otte <ot...@gn...> * gst/gstcaps.c: (gst_caps_subtract), (gst_caps_is_equal), (gst_caps_is_subset): add documentation Index: gstcaps.c RCS file: /home/cvs/gstreamer/gstreamer/gst/gstcaps.c,v retrieving revision 1.114 retrieving revision 1.115 diff -u -d -r1.114 -r1.115 --- a/gstcaps.c 23 Apr 2004 00:00:25 -0000 1.114 +++ b/gstcaps.c 23 Apr 2004 00:04:50 -0000 1.115 @@ -628,54 +628,6 @@ struct2); } -static gboolean -gst_structure_field_has_compatible (GQuark field_id, - GValue * val2, gpointer data) -{ - GValue dest = { 0 }; - GstStructure *struct1 = (GstStructure *) data; - const GValue *val1 = gst_structure_id_get_value (struct1, field_id); - - if (val1 == NULL) - return FALSE; - if (gst_value_intersect (&dest, val1, val2)) { - g_value_unset (&dest); - return TRUE; - } - return FALSE; -} -gst_cap_is_always_compatible (const GstStructure * struct1, - const GstStructure * struct2) - if (struct1->name != struct2->name) { - /* the reversed order is important */ - return gst_structure_foreach ((GstStructure *) struct2, - gst_structure_field_has_compatible, (gpointer) struct1); -gst_caps_cap_is_always_compatible (const GstStructure * struct1, - const GstCaps * caps2) - int i; - for (i = 0; i < caps2->structs->len; i++) { - GstStructure *struct2 = gst_caps_get_structure (caps2, i); - if (gst_cap_is_always_compatible (struct1, struct2)) { - return TRUE; - } /** * gst_caps_is_always_compatible: * @caps1: the #GstCaps to test @@ -690,30 +642,10 @@ gboolean gst_caps_is_always_compatible (const GstCaps * caps1, const GstCaps * caps2) { g_return_val_if_fail (caps1 != NULL, FALSE); g_return_val_if_fail (caps2 != NULL, FALSE); - if (gst_caps_is_any (caps2)) - if (gst_caps_is_any (caps1)) - if (gst_caps_is_empty (caps1)) - if (gst_caps_is_empty (caps2)) - for (i = 0; i < caps1->structs->len; i++) { - GstStructure *struct1 = gst_caps_get_structure (caps1, i); - if (gst_caps_cap_is_always_compatible (struct1, caps2) == FALSE) { - return FALSE; + return gst_caps_is_subset (caps1, caps2); |
From: Benjamin O. <co...@pd...> - 2004-04-23 01:21:12
|
CVS Root: /home/cvs/gstreamer Module: gstreamer Changes by: company Date: Thu Apr 22 2004 18:21:11 PDT Log message: * gst/gstvalue.c: (gst_value_compare_buffer), (_gst_value_initialize): add comparison function for buffers Modified files: . : ChangeLog gst : gstvalue.c Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/ChangeLog.diff?r1=1.478&r2=1.479 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstvalue.c.diff?r1=1.28&r2=1.29 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /home/cvs/gstreamer/gstreamer/ChangeLog,v retrieving revision 1.478 retrieving revision 1.479 diff -u -d -r1.478 -r1.479 --- a/ChangeLog 23 Apr 2004 00:39:34 -0000 1.478 +++ b/ChangeLog 23 Apr 2004 01:20:59 -0000 1.479 @@ -1,3 +1,9 @@ +2004-04-23 Benjamin Otte <ot...@gn...> + + * gst/gstvalue.c: (gst_value_compare_buffer), + (_gst_value_initialize): + add comparison function for buffers 2004-04-22 Ronald Bultje <rb...@ro...> * docs/pwg/pwg.xml: Index: gstvalue.c RCS file: /home/cvs/gstreamer/gstreamer/gst/gstvalue.c,v retrieving revision 1.28 retrieving revision 1.29 diff -u -d -r1.28 -r1.29 --- a/gstvalue.c 22 Apr 2004 16:39:23 -0000 1.28 +++ b/gstvalue.c 23 Apr 2004 01:20:59 -0000 1.29 @@ -788,6 +788,25 @@ /*************************************/ /* GstBuffer */ +static int +gst_value_compare_buffer (const GValue * value1, const GValue * value2) +{ + GstBuffer *buf1 = g_value_get_boxed (value1); + GstBuffer *buf2 = g_value_get_boxed (value2); + if (GST_BUFFER_SIZE (buf1) != GST_BUFFER_SIZE (buf2)) + return GST_VALUE_UNORDERED; + if (GST_BUFFER_SIZE (buf1) == 0) + return GST_VALUE_EQUAL; + g_assert (GST_BUFFER_DATA (buf1)); + g_assert (GST_BUFFER_DATA (buf2)); + if (memcmp (GST_BUFFER_DATA (buf1), GST_BUFFER_DATA (buf2), + GST_BUFFER_SIZE (buf1)) == 0) + return GST_VALUE_UNORDERED; +} static char * gst_value_serialize_buffer (const GValue * value) { @@ -2119,7 +2138,7 @@ #endif static GstValueTable gst_value = { 0, - NULL, /*gst_value_compare_buffer, */ + gst_value_compare_buffer, gst_value_serialize_buffer, gst_value_deserialize_buffer, }; |
From: Benjamin O. <co...@pd...> - 2004-04-25 17:48:02
|
CVS Root: /home/cvs/gstreamer Module: gstreamer Changes by: company Date: Sun Apr 25 2004 10:46:42 PDT Log message: * gst/gstcaps.c: (gst_caps_subtract): fix memleak Modified files: . : ChangeLog gst : gstcaps.c Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/ChangeLog.diff?r1=1.479&r2=1.480 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstcaps.c.diff?r1=1.115&r2=1.116 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /home/cvs/gstreamer/gstreamer/ChangeLog,v retrieving revision 1.479 retrieving revision 1.480 diff -u -d -r1.479 -r1.480 --- a/ChangeLog 23 Apr 2004 01:20:59 -0000 1.479 +++ b/ChangeLog 25 Apr 2004 17:46:30 -0000 1.480 @@ -1,3 +1,8 @@ +2004-04-25 Benjamin Otte <ot...@gn...> + + * gst/gstcaps.c: (gst_caps_subtract): + fix memleak 2004-04-23 Benjamin Otte <ot...@gn...> * gst/gstvalue.c: (gst_value_compare_buffer), Index: gstcaps.c RCS file: /home/cvs/gstreamer/gstreamer/gst/gstcaps.c,v retrieving revision 1.115 retrieving revision 1.116 diff -u -d -r1.115 -r1.116 --- a/gstcaps.c 23 Apr 2004 00:04:50 -0000 1.115 +++ b/gstcaps.c 25 Apr 2004 17:46:30 -0000 1.116 @@ -945,6 +945,7 @@ You can only remove everything or nothing and that is done above. Note: there's a test that checks this behaviour. */ g_return_val_if_fail (!gst_caps_is_any (minuend), NULL); + g_assert (subtrahend->structs->len > 0); src = gst_caps_copy (minuend); for (i = 0; i < subtrahend->structs->len; i++) { @@ -977,6 +978,7 @@ return dest; } + gst_caps_free (src); gst_caps_do_simplify (dest); return dest; } @@ -1180,12 +1182,23 @@ gst_caps_structure_figure_out_union, &field)) { gboolean ret = FALSE; - if (gst_structure_n_fields (simplify) == gst_structure_n_fields (compare)) { - gst_structure_id_set_value (compare, field.name, &field.value); - *result = NULL; - ret = TRUE; + if (G_IS_VALUE (&field.value)) { + if (gst_structure_n_fields (simplify) == gst_structure_n_fields (compare)) { + gst_structure_id_set_value (compare, field.name, &field.value); + *result = NULL; + ret = TRUE; + } + g_value_unset (&field.value); + } else { + gchar *one = gst_structure_to_string (simplify); + gchar *two = gst_structure_to_string (compare); + GST_ERROR + ("caps mismatch: structures %s and %s claim to be possible to unify, but aren't", + one, two); + g_free (one); + g_free (two); } - g_value_unset (&field.value); return ret; |
From: Benjamin O. <co...@pd...> - 2004-04-25 20:28:35
|
CVS Root: /home/cvs/gstreamer Module: gstreamer Changes by: company Date: Sun Apr 25 2004 13:28:33 PDT Log message: * gst/gstelement.c: (gst_element_change_state): fix assertion to do an int comparison Modified files: . : ChangeLog gst : gstelement.c Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/ChangeLog.diff?r1=1.481&r2=1.482 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstelement.c.diff?r1=1.275&r2=1.276 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /home/cvs/gstreamer/gstreamer/ChangeLog,v retrieving revision 1.481 retrieving revision 1.482 diff -u -d -r1.481 -r1.482 --- a/ChangeLog 25 Apr 2004 18:24:02 -0000 1.481 +++ b/ChangeLog 25 Apr 2004 20:28:21 -0000 1.482 @@ -1,5 +1,10 @@ 2004-04-25 Benjamin Otte <ot...@gn...> + * gst/gstelement.c: (gst_element_change_state): + fix assertion to do an int comparison + +2004-04-25 Benjamin Otte <ot...@gn...> * gst/elements/gstfilesrc.c: (gst_filesrc_open_file): better debugging output on error Index: gstelement.c RCS file: /home/cvs/gstreamer/gstreamer/gst/gstelement.c,v retrieving revision 1.275 retrieving revision 1.276 diff -u -d -r1.275 -r1.276 --- a/gstelement.c 20 Apr 2004 16:42:25 -0000 1.275 +++ b/gstelement.c 25 Apr 2004 20:28:21 -0000 1.276 @@ -2881,7 +2881,7 @@ switch (old_transition) { case GST_STATE_PLAYING_TO_PAUSED: if (element->clock) { - GstClockTime time = gst_clock_get_event_time (element->clock); + GstClockTimeDiff time = gst_clock_get_event_time (element->clock); g_assert (time >= element->base_time); element->base_time = time - element->base_time; |
From: Benjamin O. <co...@pd...> - 2004-05-03 14:45:52
|
CVS Root: /home/cvs/gstreamer Module: gstreamer Changes by: company Date: Mon May 03 2004 07:45:50 PDT Log message: * gst/gstbin.c: (gst_bin_dispose): better debugging Modified files: . : ChangeLog gst : gstbin.c Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/ChangeLog.diff?r1=1.499&r2=1.500 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstbin.c.diff?r1=1.183&r2=1.184 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /home/cvs/gstreamer/gstreamer/ChangeLog,v retrieving revision 1.499 retrieving revision 1.500 diff -u -d -r1.499 -r1.500 --- a/ChangeLog 3 May 2004 14:11:26 -0000 1.499 +++ b/ChangeLog 3 May 2004 14:45:38 -0000 1.500 @@ -1,3 +1,8 @@ +2004-05-03 Benjamin Otte <in...@pu...> + + * gst/gstbin.c: (gst_bin_dispose): + better debugging 2004-05-03 Johan Dahlin <jo...@gn...> * gst/schedulers/gstoptimalscheduler.c Index: gstbin.c RCS file: /home/cvs/gstreamer/gstreamer/gst/gstbin.c,v retrieving revision 1.183 retrieving revision 1.184 diff -u -d -r1.183 -r1.184 --- a/gstbin.c 20 Apr 2004 16:17:20 -0000 1.183 +++ b/gstbin.c 3 May 2004 14:45:38 -0000 1.184 @@ -821,7 +821,7 @@ GList *children, *orig; GstElement *child; - GST_CAT_DEBUG (GST_CAT_REFCOUNTING, "dispose"); + GST_CAT_DEBUG_OBJECT (GST_CAT_REFCOUNTING, object, "dispose"); if (gst_element_get_state (GST_ELEMENT (object)) == GST_STATE_PLAYING) gst_element_set_state (GST_ELEMENT (object), GST_STATE_PAUSED); |
From: Benjamin O. <co...@pd...> - 2004-05-08 14:50:25
|
CVS Root: /home/cvs/gstreamer Module: gstreamer Changes by: company Date: Sat May 08 2004 07:50:24 PDT Log message: * gst/gstpad.c: (gst_pad_set_active), (gst_pad_link_unnegotiate): mark links as unengaged when unnegotiating instead of deactivating. This way pads aren't marked as unengaged when going PLAYING=>PAUSED Modified files: . : ChangeLog gst : gstpad.c Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/ChangeLog.diff?r1=1.519&r2=1.520 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstpad.c.diff?r1=1.322&r2=1.323 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /home/cvs/gstreamer/gstreamer/ChangeLog,v retrieving revision 1.519 retrieving revision 1.520 diff -u -d -r1.519 -r1.520 --- a/ChangeLog 8 May 2004 11:18:48 -0000 1.519 +++ b/ChangeLog 8 May 2004 14:50:12 -0000 1.520 @@ -1,5 +1,11 @@ 2004-05-08 Benjamin Otte <ot...@gn...> + * gst/gstpad.c: (gst_pad_set_active), (gst_pad_link_unnegotiate): + mark links as unengaged when unnegotiating instead of deactivating. + This way pads aren't marked as unengaged when going PLAYING=>PAUSED + +2004-05-08 Benjamin Otte <ot...@gn...> * docs/manual/helloworld.xml: s/audiosink/osssink (patch by Patrick Guimond) Index: gstpad.c RCS file: /home/cvs/gstreamer/gstreamer/gst/gstpad.c,v retrieving revision 1.322 retrieving revision 1.323 diff -u -d -r1.322 -r1.323 --- a/gstpad.c 6 May 2004 21:40:55 -0000 1.322 +++ b/gstpad.c 8 May 2004 14:50:12 -0000 1.323 @@ -456,7 +456,6 @@ } link = GST_RPAD_LINK (realpad); if (link) { - link->engaged = FALSE; if (link->temp_store) { GST_CAT_INFO (GST_CAT_PADS, "deleting cached buffer from bufpen of pad %s:%s", @@ -2136,6 +2135,7 @@ if (link->caps) { gst_caps_free (link->caps); link->caps = NULL; + link->engaged = FALSE; if (GST_RPAD_LINK (link->srcpad) != link) { g_warning ("unnegotiating unset link"); } else { |
From: Benjamin O. <co...@pd...> - 2004-05-08 18:27:26
|
CVS Root: /home/cvs/gstreamer Module: gstreamer Changes by: company Date: Sat May 08 2004 11:27:23 PDT Log message: * gst/gstpad.c: (gst_pad_proxy_fixate): really reduce the set of caps Modified files: . : ChangeLog gst : gstpad.c Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/ChangeLog.diff?r1=1.521&r2=1.522 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstpad.c.diff?r1=1.323&r2=1.324 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /home/cvs/gstreamer/gstreamer/ChangeLog,v retrieving revision 1.521 retrieving revision 1.522 diff -u -d -r1.521 -r1.522 --- a/ChangeLog 8 May 2004 17:38:23 -0000 1.521 +++ b/ChangeLog 8 May 2004 18:27:11 -0000 1.522 @@ -1,5 +1,10 @@ 2004-05-08 Benjamin Otte <ot...@gn...> + * gst/gstpad.c: (gst_pad_proxy_fixate): + really reduce the set of caps + +2004-05-08 Benjamin Otte <ot...@gn...> * tests/Makefile.am: * tests/spidey_bench.c: (handoff), (main): add benchmark to test how long spider needs to create a pipeline Index: gstpad.c RCS file: /home/cvs/gstreamer/gstreamer/gst/gstpad.c,v retrieving revision 1.323 retrieving revision 1.324 diff -u -d -r1.323 -r1.324 --- a/gstpad.c 8 May 2004 14:50:12 -0000 1.323 +++ b/gstpad.c 8 May 2004 18:27:11 -0000 1.324 @@ -2408,7 +2408,7 @@ if (otherpad != pad) { othercaps = gst_pad_get_negotiated_caps (otherpad); - if (othercaps) { + if (othercaps && !gst_caps_is_subset (caps, othercaps)) { GstCaps *icaps; icaps = gst_caps_intersect (othercaps, caps); |
From: Benjamin O. <co...@pd...> - 2004-05-10 00:36:13
|
CVS Root: /home/cvs/gstreamer Module: gstreamer Changes by: company Date: Sun May 09 2004 17:36:11 PDT Log message: * gst/gstregistry.c: (gst_registry_add_plugin): refuse to add plugins when a plugin with same name is already registered. Fixes a bunch of "How to remove plugins?" issues. May lead to other problems though, let's test Modified files: . : ChangeLog gst : gstregistry.c Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/ChangeLog.diff?r1=1.525&r2=1.526 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstregistry.c.diff?r1=1.28&r2=1.29 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /home/cvs/gstreamer/gstreamer/ChangeLog,v retrieving revision 1.525 retrieving revision 1.526 diff -u -d -r1.525 -r1.526 --- a/ChangeLog 10 May 2004 00:14:40 -0000 1.525 +++ b/ChangeLog 10 May 2004 00:35:59 -0000 1.526 @@ -1,3 +1,10 @@ +2004-05-10 Benjamin Otte <in...@pu...> + + * gst/gstregistry.c: (gst_registry_add_plugin): + refuse to add plugins when a plugin with same name is already + registered. Fixes a bunch of "How to remove plugins?" issues. + May lead to other problems though, let's test 2004-05-10 Stephane Loeuillet <ste...@ti...> * testsuite/caps/caps_strings : audio/ac3 => audio/x-ac3 Index: gstregistry.c RCS file: /home/cvs/gstreamer/gstreamer/gst/gstregistry.c,v retrieving revision 1.28 retrieving revision 1.29 diff -u -d -r1.28 -r1.29 --- a/gstregistry.c 7 May 2004 02:36:27 -0000 1.28 +++ b/gstregistry.c 10 May 2004 00:35:59 -0000 1.29 @@ -37,6 +37,7 @@ #include "gstinfo.h" #include "gstregistry.h" +#include "gstregistrypool.h" #include "gstmarshal.h" #include "gstfilter.h" @@ -281,6 +282,12 @@ gst_registry_add_plugin (GstRegistry * registry, GstPlugin * plugin) { g_return_val_if_fail (GST_IS_REGISTRY (registry), FALSE); + if (gst_registry_pool_find_plugin (gst_plugin_get_name (plugin))) { + GST_WARNING_OBJECT (registry, "Not adding plugin %s, " + "because a plugin with same name already exists", + gst_plugin_get_name (plugin)); + return FALSE; + } plugin->manager = registry; registry->plugins = g_list_prepend (registry->plugins, plugin); |
From: Benjamin O. <co...@pd...> - 2004-05-10 16:48:58
|
CVS Root: /home/cvs/gstreamer Module: gstreamer Changes by: company Date: Mon May 10 2004 09:48:56 PDT Log message: * gst/gstelement.c: (gst_element_class_init), (gst_element_no_more_pads): * gst/gstelement.h: add gst_element_no_more_pads and the "no-more-pads" signal Modified files: . : ChangeLog gst : gstelement.c gstelement.h Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/ChangeLog.diff?r1=1.526&r2=1.527 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstelement.c.diff?r1=1.278&r2=1.279 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstelement.h.diff?r1=1.172&r2=1.173 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /home/cvs/gstreamer/gstreamer/ChangeLog,v retrieving revision 1.526 retrieving revision 1.527 diff -u -d -r1.526 -r1.527 --- a/ChangeLog 10 May 2004 00:35:59 -0000 1.526 +++ b/ChangeLog 10 May 2004 16:48:44 -0000 1.527 @@ -1,5 +1,12 @@ 2004-05-10 Benjamin Otte <in...@pu...> + * gst/gstelement.c: (gst_element_class_init), + (gst_element_no_more_pads): + * gst/gstelement.h: + add gst_element_no_more_pads and the "no-more-pads" signal + +2004-05-10 Benjamin Otte <in...@pu...> * gst/gstregistry.c: (gst_registry_add_plugin): refuse to add plugins when a plugin with same name is already registered. Fixes a bunch of "How to remove plugins?" issues. Index: gstelement.c RCS file: /home/cvs/gstreamer/gstreamer/gst/gstelement.c,v retrieving revision 1.278 retrieving revision 1.279 diff -u -d -r1.278 -r1.279 --- a/gstelement.c 7 May 2004 02:36:27 -0000 1.278 +++ b/gstelement.c 10 May 2004 16:48:44 -0000 1.279 @@ -44,6 +44,7 @@ ERROR, EOS, FOUND_TAG, + NO_MORE_PADS, /* add more above */ LAST_SIGNAL }; @@ -147,6 +148,10 @@ G_STRUCT_OFFSET (GstElementClass, found_tag), NULL, NULL, gst_marshal_VOID__OBJECT_BOXED, G_TYPE_NONE, 2, GST_TYPE_ELEMENT, GST_TYPE_TAG_LIST); + gst_element_signals[FOUND_TAG] = + g_signal_new ("no-more-pads", G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstElementClass, no_more_pads), NULL, + NULL, gst_marshal_VOID__VOID, G_TYPE_NONE, 0); gobject_class->set_property = GST_DEBUG_FUNCPTR (gst_element_real_set_property); @@ -1220,6 +1225,23 @@ gst_element_remove_pad (element, pad); } +/** + * gst_element_no_more_pads: + * @element: a #GstElement + * + * Use this function to signal that the element does not expect any more pads + * to show up in the current pipeline. This function should be called whenever + * pads have been added by the element itself. Elements with GST_PAD_SOMETIMES + * pad templates use this in combination with autopluggers to figure out that + * the element is done initializing its pads. + */ +void +gst_element_no_more_pads (GstElement * element) +{ + g_return_if_fail (GST_IS_ELEMENT (element)); + g_signal_emit (element, gst_element_signals[NO_MORE_PADS], 0); +} /** * gst_element_get_pad: Index: gstelement.h RCS file: /home/cvs/gstreamer/gstreamer/gst/gstelement.h,v retrieving revision 1.172 retrieving revision 1.173 diff -u -d -r1.172 -r1.173 --- a/gstelement.h 30 Mar 2004 07:36:19 -0000 1.172 +++ b/gstelement.h 10 May 2004 16:48:44 -0000 1.173 @@ -245,7 +245,11 @@ void (*set_index) (GstElement *element, GstIndex *index); GstElementStateReturn (*set_state) (GstElement *element, GstElementState state); - gpointer _gst_reserved[GST_PADDING]; + /* FIXME 0.9: move up to signals */ + void (*no_more_pads) (GstElement *element); + + gpointer _gst_reserved[GST_PADDING - 1]; void gst_element_class_add_pad_template (GstElementClass *klass, GstPadTemplate *templ); @@ -313,7 +317,10 @@ void gst_element_add_pad (GstElement *element, GstPad *pad); void gst_element_remove_pad (GstElement *element, GstPad *pad); GstPad * gst_element_add_ghost_pad (GstElement *element, GstPad *pad, const gchar *name); +#ifndef GST_DISABLE_DEPRECATED void gst_element_remove_ghost_pad (GstElement *element, GstPad *pad); +#endif +void gst_element_no_more_pads (GstElement *element); GstPad* gst_element_get_pad (GstElement *element, const gchar *name); GstPad* gst_element_get_static_pad (GstElement *element, const gchar *name); |
From: Benjamin O. <co...@pd...> - 2004-05-12 23:43:16
|
CVS Root: /home/cvs/gstreamer Module: gstreamer Changes by: company Date: Wed May 12 2004 16:43:15 PDT Log message: * gst/gstpipeline.c: (gst_pipeline_dispose), (gst_pipeline_change_state): call gst_scheduler_reset on dispose (fixes #141416) Modified files: . : ChangeLog gst : gstpipeline.c Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/ChangeLog.diff?r1=1.532&r2=1.533 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstpipeline.c.diff?r1=1.79&r2=1.80 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /home/cvs/gstreamer/gstreamer/ChangeLog,v retrieving revision 1.532 retrieving revision 1.533 diff -u -d -r1.532 -r1.533 --- a/ChangeLog 11 May 2004 16:20:40 -0000 1.532 +++ b/ChangeLog 12 May 2004 23:43:03 -0000 1.533 @@ -1,3 +1,9 @@ +2004-05-13 Benjamin Otte <ot...@gn...> + + * gst/gstpipeline.c: (gst_pipeline_dispose), + (gst_pipeline_change_state): + call gst_scheduler_reset on dispose (fixes #141416) 2004-05-11 Benjamin Otte <in...@pu...> * gst/elements/gstfilesrc.c: (gst_filesrc_get_mmap): Index: gstpipeline.c RCS file: /home/cvs/gstreamer/gstreamer/gst/gstpipeline.c,v retrieving revision 1.79 retrieving revision 1.80 diff -u -d -r1.79 -r1.80 --- a/gstpipeline.c 15 Mar 2004 19:27:10 -0000 1.79 +++ b/gstpipeline.c 12 May 2004 23:43:03 -0000 1.80 @@ -132,10 +132,13 @@ gst_pipeline_dispose (GObject * object) { GstPipeline *pipeline = GST_PIPELINE (object); + GstScheduler *sched; - G_OBJECT_CLASS (parent_class)->dispose (object); + g_assert (GST_IS_SCHEDULER (GST_ELEMENT_SCHED (pipeline))); + sched = GST_ELEMENT_SCHED (pipeline); - gst_object_replace ((GstObject **) & GST_ELEMENT_SCHED (pipeline), NULL); + gst_scheduler_reset (sched); + G_OBJECT_CLASS (parent_class)->dispose (object); } /** @@ -163,15 +166,7 @@ case GST_STATE_PAUSED_TO_PLAYING: case GST_STATE_PLAYING_TO_PAUSED: case GST_STATE_PAUSED_TO_READY: - break; case GST_STATE_READY_TO_NULL: - /* FIXME: calling gst_scheduler_reset() here is bad, since we - * might not be in cothread 0 */ -#if 0 - if (GST_ELEMENT_SCHED (element)) { - gst_scheduler_reset (GST_ELEMENT_SCHED (element)); - } -#endif break; } |
From: Benjamin O. <co...@pd...> - 2004-05-19 14:21:00
|
CVS Root: /home/cvs/gstreamer Module: gstreamer Changes by: company Date: Wed May 19 2004 07:20:58 PDT Log message: * gst/gstvalue.c: (gst_value_deserialize_int_helper): fix int variable deserialization and add a helper so we can actually debug this. Modified files: . : ChangeLog gst : gstvalue.c Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/ChangeLog.diff?r1=1.544&r2=1.545 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstvalue.c.diff?r1=1.32&r2=1.33 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /home/cvs/gstreamer/gstreamer/ChangeLog,v retrieving revision 1.544 retrieving revision 1.545 diff -u -d -r1.544 -r1.545 --- a/ChangeLog 18 May 2004 22:49:52 -0000 1.544 +++ b/ChangeLog 19 May 2004 14:20:46 -0000 1.545 @@ -1,3 +1,9 @@ +2004-05-19 Benjamin Otte <in...@pu...> + + * gst/gstvalue.c: (gst_value_deserialize_int_helper): + fix int variable deserialization and add a helper so we can actually + debug this. 2004-05-18 David Schleef <ds...@sc...> * testsuite/debug/commandline.c: (main): Call ./commandline, not Index: gstvalue.c RCS file: /home/cvs/gstreamer/gstreamer/gst/gstvalue.c,v retrieving revision 1.32 retrieving revision 1.33 diff -u -d -r1.32 -r1.33 --- a/gstvalue.c 18 May 2004 01:36:14 -0000 1.32 +++ b/gstvalue.c 19 May 2004 14:20:46 -0000 1.33 @@ -944,7 +944,43 @@ g_assert_not_reached (); \ /* NO_COPY_MADNESS!!! */ \ return (char *) g_value_get_string (&val); \ -} \ +} +static gboolean +gst_value_deserialize_int_helper (long long *to, const char *s, long long min, + long long max) +{ + gboolean ret = FALSE; + char *end; + *to = gst_strtoll (s, &end, 0); + if (*end == 0) { + ret = TRUE; + } else { + if (g_ascii_strcasecmp (s, "little_endian") == 0) { + *to = G_LITTLE_ENDIAN; + ret = TRUE; + } else if (g_ascii_strcasecmp (s, "big_endian") == 0) { + *to = G_BIG_ENDIAN; + } else if (g_ascii_strcasecmp (s, "byte_order") == 0) { + *to = G_BYTE_ORDER; + } else if (g_ascii_strcasecmp (s, "min") == 0) { + *to = min; + } else if (g_ascii_strcasecmp (s, "max") == 0) { + *to = max; + } + } + if (ret) { + if (*to < min || *to > max) { + ret = FALSE; + return ret; #define CREATE_SERIALIZATION(_type,_macro) \ CREATE_SERIALIZATION_START(_type,_macro) \ @@ -953,39 +989,13 @@ gst_value_deserialize_ ## _type (GValue * dest, const char *s) \ { \ long long x; \ - char *end; \ - gboolean ret = FALSE; \ \ - x = gst_strtoll (s, &end, 0); \ - if (*end == 0) { \ - ret = TRUE; \ + if (gst_value_deserialize_int_helper (&x, s, G_MIN ## _macro, G_MAX ## _macro)) { \ + g_value_set_ ## _type (dest, x); \ + return TRUE; \ } else { \ - if (g_ascii_strcasecmp (s, "little_endian") == 0) { \ - x = G_LITTLE_ENDIAN; \ - ret = TRUE; \ - } else if (g_ascii_strcasecmp (s, "big_endian") == 0) { \ - x = G_BIG_ENDIAN; \ - } else if (g_ascii_strcasecmp (s, "byte_order") == 0) { \ - x = G_BYTE_ORDER; \ - } else if (g_ascii_strcasecmp (s, "min") == 0) { \ - x = G_MIN ## _macro; \ - } else if (g_ascii_strcasecmp (s, "max") == 0) { \ - x = G_MAX ## _macro; \ - } \ - } \ - if (ret) { \ - if (x > G_MAX ## _macro || \ - x < G_MIN ## _macro) {\ - ret = FALSE; \ - } else { \ - g_value_set_ ## _type (dest, x); \ + return FALSE; \ } \ - return ret; \ } #define CREATE_USERIALIZATION(_type,_macro) \ |
From: Benjamin O. <co...@pd...> - 2004-06-07 01:01:18
|
CVS Root: /home/cvs/gstreamer Module: gstreamer Changes by: company Date: Mon Jun 07 2004 11:01:17 EST Log message: * gst/gstelement.c: (gst_element_set_time_delay): add failure check * gst/gstinfo.h: put brackets around macro arguments of GST_TIME_ARGS, add note to move it to correct header in 0.9 Modified files: . : ChangeLog gst : gstelement.c gstinfo.h Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/ChangeLog.diff?r1=1.573&r2=1.574 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstelement.c.diff?r1=1.280&r2=1.281 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstinfo.h.diff?r1=1.74&r2=1.75 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /home/cvs/gstreamer/gstreamer/ChangeLog,v retrieving revision 1.573 retrieving revision 1.574 diff -u -d -r1.573 -r1.574 --- a/ChangeLog 6 Jun 2004 23:39:39 -0000 1.573 +++ b/ChangeLog 7 Jun 2004 01:01:04 -0000 1.574 @@ -1,5 +1,13 @@ 2004-06-07 Benjamin Otte <ot...@gn...> + * gst/gstelement.c: (gst_element_set_time_delay): + add failure check + * gst/gstinfo.h: + put brackets around macro arguments of GST_TIME_ARGS, add note to + move it to correct header in 0.9 + +2004-06-07 Benjamin Otte <ot...@gn...> * gst/indexers/gstfileindex.c: (gst_file_index_get_writer_id), (gst_file_index_load), (_file_index_id_save_entries), (gst_file_index_commit), (gst_file_index_add_association), Index: gstelement.c RCS file: /home/cvs/gstreamer/gstreamer/gst/gstelement.c,v retrieving revision 1.280 retrieving revision 1.281 diff -u -d -r1.280 -r1.281 --- a/gstelement.c 13 May 2004 15:07:56 -0000 1.280 +++ b/gstelement.c 7 Jun 2004 01:01:04 -0000 1.281 @@ -919,6 +919,7 @@ g_return_if_fail (GST_IS_ELEMENT (element)); g_return_if_fail (GST_IS_CLOCK (element->clock)); g_return_if_fail (element->current_state >= GST_STATE_PAUSED); + g_return_if_fail (time >= delay); switch (element->current_state) { case GST_STATE_PAUSED: Index: gstinfo.h RCS file: /home/cvs/gstreamer/gstreamer/gst/gstinfo.h,v retrieving revision 1.74 retrieving revision 1.75 diff -u -d -r1.74 -r1.75 --- a/gstinfo.h 10 May 2004 18:07:23 -0000 1.74 +++ b/gstinfo.h 7 Jun 2004 01:01:04 -0000 1.75 @@ -818,12 +818,13 @@ void gst_debug_print_stack_trace (void); /* timestamp debugging macros */ +/* FIXME 0.9: move into the correct header (gstclock.h) */ #define GST_TIME_FORMAT "u:%02u:%02u.%09u" #define GST_TIME_ARGS(t) \ - (guint) (t / (GST_SECOND * 60 * 60)), \ - (guint) ((t / (GST_SECOND * 60)) % 60), \ - (guint) ((t / GST_SECOND) % 60), \ - (guint) (t % GST_SECOND) + (guint) ((t) / (GST_SECOND * 60 * 60)), \ + (guint) (((t) / (GST_SECOND * 60)) % 60), \ + (guint) (((t) / GST_SECOND) % 60), \ + (guint) ((t) % GST_SECOND) G_END_DECLS |
From: Benjamin O. <co...@pd...> - 2004-06-16 21:07:47
|
CVS Root: /home/cvs/gstreamer Module: gstreamer Changes by: company Date: Wed Jun 16 2004 14:07:02 PDT Log message: * gst/gstelementfactory.c: (gst_element_factory_create): make the freakin "elementfactory bla has no type" message more useful. So we actually can do something when someone shows up complaining about it. Modified files: . : ChangeLog gst : gstelementfactory.c Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/ChangeLog.diff?r1=1.599&r2=1.600 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstelementfactory.c.diff?r1=1.96&r2=1.97 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /home/cvs/gstreamer/gstreamer/ChangeLog,v retrieving revision 1.599 retrieving revision 1.600 diff -u -d -r1.599 -r1.600 --- ChangeLog 15 Jun 2004 14:17:55 -0000 1.599 +++ ChangeLog 16 Jun 2004 21:06:49 -0000 1.600 @@ -1,3 +1,10 @@ +2004-06-16 Benjamin Otte <in...@pu...> + + * gst/gstelementfactory.c: (gst_element_factory_create): + make the freakin "elementfactory bla has no type" message more + useful. So we actually can do something when someone shows up + complaining about it. 2004-06-15 Johan Dahlin <jo...@gn...> * tools/gst-inspect.c (main): Fallback to plugin if no element is @@ -81,7 +88,7 @@ 2004-06-12 Steve Lhomme <ste...@fr...> * win32/config.h: - * gst/gst-i18n-app.h: + * gst/gst-i18n-app.h: enable NLS under Windows 2004-06-12 Jan Schmidt <th...@ma...> Index: gstelementfactory.c RCS file: /home/cvs/gstreamer/gstreamer/gst/gstelementfactory.c,v retrieving revision 1.96 retrieving revision 1.97 diff -u -d -r1.96 -r1.97 --- gstelementfactory.c 6 Apr 2004 19:45:27 -0000 1.96 +++ gstelementfactory.c 16 Jun 2004 21:06:50 -0000 1.97 @@ -27,6 +27,7 @@ #include "gstregistrypool.h" #include "gstinfo.h" #include "gsturi.h" +#include "registries/gstxmlregistry.h" /* g_critical in gst_element_factory_create */ GST_DEBUG_CATEGORY_STATIC (element_factory_debug); #define GST_CAT_DEFAULT element_factory_debug @@ -283,8 +284,14 @@ GST_INFO ("creating \"%s\"", GST_PLUGIN_FEATURE_NAME (factory)); if (factory->type == 0) { - g_critical ("Factory for `%s' has no type", - GST_PLUGIN_FEATURE_NAME (factory)); + GstPlugin *plugin = GST_PLUGIN_FEATURE (factory)->manager; + g_critical + ("Factory for `%s' has no type. This probably means the plugin wasn't found because the registry is broken. The plugin GStreamer was looking for is named '%s' and is expected in file '%s'. The registry for this plugin is located at '%s'", + GST_PLUGIN_FEATURE_NAME (factory), + gst_plugin_get_name (plugin), gst_plugin_get_filename (plugin), + GST_IS_XML_REGISTRY (plugin->manager) ? GST_XML_REGISTRY (plugin-> + manager)->location : "Unknown"); return NULL; } |
From: Benjamin O. <co...@pd...> - 2004-06-22 03:09:13
|
CVS Root: /home/cvs/gstreamer Module: gstreamer Changes by: company Date: Mon Jun 21 2004 20:09:08 PDT Log message: * gst/gstelement.h: remove define that referenced a nonexisting GstElement struct member Modified files: . : ChangeLog gst : gstelement.h Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/ChangeLog.diff?r1=1.605&r2=1.606 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstelement.h.diff?r1=1.175&r2=1.176 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /home/cvs/gstreamer/gstreamer/ChangeLog,v retrieving revision 1.605 retrieving revision 1.606 diff -u -d -r1.605 -r1.606 --- ChangeLog 20 Jun 2004 20:49:31 -0000 1.605 +++ ChangeLog 22 Jun 2004 03:08:56 -0000 1.606 @@ -1,3 +1,8 @@ +2004-06-22 Benjamin Otte <ot...@gn...> + + * gst/gstelement.h: + remove define that referenced a nonexisting GstElement struct member 2004-06-20 Benjamin Otte <ot...@gn...> * gst/gstdata.c: (gst_data_is_writable): Index: gstelement.h RCS file: /home/cvs/gstreamer/gstreamer/gst/gstelement.h,v retrieving revision 1.175 retrieving revision 1.176 diff -u -d -r1.175 -r1.176 --- gstelement.h 13 Jun 2004 10:01:49 -0000 1.175 +++ gstelement.h 22 Jun 2004 03:08:56 -0000 1.176 @@ -136,7 +136,6 @@ #define GST_ELEMENT_NAME(obj) (GST_OBJECT_NAME(obj)) #define GST_ELEMENT_PARENT(obj) (GST_OBJECT_PARENT(obj)) -#define GST_ELEMENT_MANAGER(obj) (((GstElement*)(obj))->manager) #define GST_ELEMENT_SCHED(obj) (((GstElement*)(obj))->sched) #define GST_ELEMENT_CLOCK(obj) (((GstElement*)(obj))->clock) #define GST_ELEMENT_PADS(obj) ((obj)->pads) |
From: Benjamin O. <co...@pd...> - 2004-07-02 03:24:31
|
CVS Root: /home/cvs/gstreamer Module: gstreamer Changes by: company Date: Fri Jul 02 2004 13:24:21 EST Log message: * gst/gstpad.c: (gst_pad_check_schedulers), (gst_pad_can_link_filtered), (gst_pad_link_filtered), (gst_pad_link_prepare): check that pads that get linked belong to the same manager. The old code allowed linking elements before putting them into bins, so it worked to link them and then put them in different threads, which lead to weird behaviour. Since this effectively disallows linking elements before putting them in a bin, some applications might not work after this and error out. If these applications are too critical, we might need to revert that patch. Please test this before the next release... Modified files: . : ChangeLog gst : gstpad.c Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/ChangeLog.diff?r1=1.617&r2=1.618 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstpad.c.diff?r1=1.328&r2=1.329 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /home/cvs/gstreamer/gstreamer/ChangeLog,v retrieving revision 1.617 retrieving revision 1.618 diff -u -d -r1.617 -r1.618 --- ChangeLog 29 Jun 2004 00:34:37 -0000 1.617 +++ ChangeLog 2 Jul 2004 03:24:08 -0000 1.618 @@ -1,3 +1,17 @@ +2004-07-02 Benjamin Otte <ot...@gn...> + + * gst/gstpad.c: (gst_pad_check_schedulers), + (gst_pad_can_link_filtered), (gst_pad_link_filtered), + (gst_pad_link_prepare): + check that pads that get linked belong to the same manager. The old + code allowed linking elements before putting them into bins, so it + worked to link them and then put them in different threads, which + lead to weird behaviour. + Since this effectively disallows linking elements before putting + them in a bin, some applications might not work after this and error + out. If these applications are too critical, we might need to revert + that patch. Please test this before the next release... 2004-06-28 Benjamin Otte <in...@pu...> * gst/gstpad.c: (gst_pad_get_caps): Index: gstpad.c RCS file: /home/cvs/gstreamer/gstreamer/gst/gstpad.c,v retrieving revision 1.328 retrieving revision 1.329 diff -u -d -r1.328 -r1.329 --- gstpad.c 29 Jun 2004 00:34:37 -0000 1.328 +++ gstpad.c 2 Jul 2004 03:24:08 -0000 1.329 @@ -1053,16 +1053,44 @@ src_sched = gst_pad_get_scheduler (GST_PAD (realsrc)); sink_sched = gst_pad_get_scheduler (GST_PAD (realsink)); - if (src_sched && sink_sched) { - if (GST_FLAG_IS_SET (GST_PAD_PARENT (realsrc), GST_ELEMENT_DECOUPLED)) - num_decoupled++; - if (GST_FLAG_IS_SET (GST_PAD_PARENT (realsink), GST_ELEMENT_DECOUPLED)) + if (GST_FLAG_IS_SET (GST_PAD_PARENT (realsrc), GST_ELEMENT_DECOUPLED)) + num_decoupled++; + if (GST_FLAG_IS_SET (GST_PAD_PARENT (realsink), GST_ELEMENT_DECOUPLED)) - if (src_sched != sink_sched && num_decoupled != 1) { - return FALSE; + if (!src_sched && !sink_sched) { + if (num_decoupled == 0) { + GstObject *src_manager, *sink_manager; + /* figure out if the managers are equal */ + src_manager = GST_OBJECT (gst_pad_get_parent (GST_PAD (realsrc))); + while (!GST_FLAG_IS_SET (src_manager, GST_BIN_FLAG_MANAGER)) { + if (!gst_object_get_parent (src_manager)) + break; + src_manager = gst_object_get_parent (src_manager); + } + sink_manager = GST_OBJECT (gst_pad_get_parent (GST_PAD (realsink))); + while (!GST_FLAG_IS_SET (sink_manager, GST_BIN_FLAG_MANAGER)) { + if (!gst_object_get_parent (sink_manager)) + sink_manager = gst_object_get_parent (sink_manager); + if (sink_manager != src_manager) + return FALSE; } + } else { + if (!src_sched + && !GST_FLAG_IS_SET (GST_PAD_PARENT (realsrc), GST_ELEMENT_DECOUPLED)) + return FALSE; + if (!sink_sched + && !GST_FLAG_IS_SET (GST_PAD_PARENT (realsink), GST_ELEMENT_DECOUPLED)) } + if (src_sched != sink_sched && num_decoupled != 1) { + return FALSE; + } return TRUE; } @@ -1674,8 +1702,10 @@ if (!gst_pad_check_schedulers (realsrc, realsink)) { - g_warning ("linking pads with different scheds requires " - "exactly one decoupled element (such as queue)"); + GST_CAT_INFO (GST_CAT_CAPS, "schedulers for pads %s:%s and %s:%s weren't " + "equal (or didn't exist at all). Linking pads with different " + "schedulers requires exactly one decoupled element (such as queue)", + GST_DEBUG_PAD_NAME (realsrc), GST_DEBUG_PAD_NAME (realsink)); return FALSE; @@ -1795,8 +1825,10 @@ + g_warning ("schedulers for pads %s:%s and %s:%s weren't " @@ -1844,16 +1876,11 @@ src_sched = gst_pad_get_scheduler (GST_PAD (link->srcpad)); sink_sched = gst_pad_get_scheduler (GST_PAD (link->sinkpad)); + /* should have been checked by gst_pad_check_schedulers */ + g_assert (src_sched == sink_sched); + g_assert (sink_sched != NULL); /* now tell the scheduler */ - if (src_sched && src_sched == sink_sched) { - gst_scheduler_pad_link (src_sched, - GST_PAD (link->srcpad), GST_PAD (link->sinkpad)); - } else { - GST_CAT_INFO (GST_CAT_PADS, - "not telling link to scheduler %s:%s and %s:%s, %p %p", - GST_DEBUG_PAD_NAME (link->srcpad), GST_DEBUG_PAD_NAME (link->sinkpad), - src_sched, sink_sched); - } + gst_scheduler_pad_link (src_sched, link->srcpad, link->sinkpad); GST_CAT_INFO (GST_CAT_PADS, "linked %s:%s and %s:%s, successful", GST_DEBUG_PAD_NAME (link->srcpad), GST_DEBUG_PAD_NAME (link->sinkpad)); @@ -2207,8 +2234,10 @@ g_return_val_if_fail (GST_PAD_PARENT (realsink) != NULL, NULL); return NULL; |
From: Thomas V. S. <th...@ap...> - 2004-07-02 09:42:37
|
Hi, > check that pads that get linked belong to the same manager. The old > code allowed linking elements before putting them into bins, so it > worked to link them and then put them in different threads, which > lead to weird behaviour. > Since this effectively disallows linking elements before putting > them in a bin, some applications might not work after this and error > out. If these applications are too critical, we might need to revert > that patch. Please test this before the next release... Hm, while I agree that it's a problem I don't think this is a change we can make in the 0.8 series at all. It breaks apps that aren't doing anything wrong to make a point to apps that are doing it wrong. Isn't there some better way this can be checked, like checking this in the scheduler when going to PLAYING ? If not, the patch should IMO still be reverted and kept for 0.9. Thomas Dave/Dina : future TV today ! - http://www.davedina.org/ <-*- thomas (dot) apestaart (dot) org -*-> Sometimes I wish I was you so I'd know how it feels to have me inside of you <-*- thomas (at) apestaart (dot) org -*-> URGent, best radio on the net - 24/7 ! - http://urgent.fm/ |
From: Benjamin O. <in...@pu...> - 2004-07-02 12:52:43
|
On Fri, 2 Jul 2004, Thomas Vander Stichele wrote: > Hm, > while I agree that it's a problem I don't think this is a change we can > make in the 0.8 series at all. It breaks apps that aren't doing > anything wrong to make a point to apps that are doing it wrong. > No, it breaks apps that are doing something wrong. You should only link pads when they are already in a bin, not before. Such a behaviour is buggy. So the only reason not to apply this patch would be a broken application. If there is such an application in wide circulation (I consider apps like Rb, totem-gst or gnome-media "wide circulation"), we should not apply this patch to not break buggy applications that rely on a broken feature. But if there is no application yet, it's IMO a good idea to apply it right now, so nobody starts writing such an application. So if people run cvs with all these applications (and you all do that right now, right? ;)) an all these applications work, stricter error checking is a good thing. > Isn't there some better way this can be checked, like checking this in > the scheduler when going to PLAYING ? > Feel free to implement something if you think it's necessary. The problem was that people were doing this in their apps which lead to some weird errors that were hard to debug. So I went ahead and made it error out as it should. I have recently been quite agreesive in adding all sorts of error checking to the core, because there's a lot of things that shouldn't/mustn't happen but aren't checked for and then lead to weird issues nobody understands. If such a change is invasive and might disable something that worked before (like this change) I've carefully checked that things don't break. Of course I'm not perfect there either. Another recent example you might stumble upon (especially when running core cvs with releassed plugins, as all the people will do soon when the next core is released) is that return values from getcaps functions are checked to be a subset of the template caps. This is something everybody expects anyway and it's been a requirement since day 1, so people act very surprised when it's not the case (hi Iain). Unfortunately it wasn't checked before. So there's lots of plugins that return wrong caps. In current cvs this will get you a g_warning and an automatic reduction of the caps to be a subset of the template caps. Known offenders in gst-plugins 0.8.2 are ximagesink, xvimagesink (the templates advertise framerate=[1, 100] but it returns framerate=[0, MAX]), osssink (advertising only G_BYTE_ORDER as allowed andianness but also accepting non-native byte orders on some soundcards), avidemux (Ronald said that, haven't looked yet) and interleave (advertising 0 channels when not connected yet). Apart from avidemux all those bugs have been fixed in gst-plugins cvs. But expect lots of people to show up complaining about warnings once the next core is released... Benjamin |