From: <en...@fr...> - 2005-08-26 22:33:06
|
CVS Root: /cvs/gstreamer Module: gstreamer Changes by: ensonic Date: Fri Aug 26 2005 15:33:03 PDT Log message: * gst/gstmessage.c: * gst/gstmessage.h: doc fixes Modified files: . : ChangeLog gst : gstmessage.c gstmessage.h Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/ChangeLog.diff?r1=1.1417&r2=1.1418 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstmessage.c.diff?r1=1.25&r2=1.26 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstmessage.h.diff?r1=1.14&r2=1.15 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gstreamer/ChangeLog,v retrieving revision 1.1417 retrieving revision 1.1418 diff -u -d -r1.1417 -r1.1418 --- ChangeLog 26 Aug 2005 21:23:51 -0000 1.1417 +++ ChangeLog 26 Aug 2005 22:32:51 -0000 1.1418 @@ -1,5 +1,11 @@ 2005-08-27 Stefan Kost <en...@us...> + * gst/gstmessage.c: + * gst/gstmessage.h: + doc fixes + +2005-08-27 Stefan Kost <en...@us...> * gst/base/gstbasetransform.c: (gst_base_transform_transform_size): fix div-by-zero Index: gstmessage.c RCS file: /cvs/gstreamer/gstreamer/gst/gstmessage.c,v retrieving revision 1.25 retrieving revision 1.26 diff -u -d -r1.25 -r1.26 --- gstmessage.c 25 Aug 2005 10:51:14 -0000 1.25 +++ gstmessage.c 26 Aug 2005 22:32:51 -0000 1.26 @@ -175,6 +175,7 @@ /** * gst_message_new_eos: + * @src: The object originating the message. * * Create a new eos message. This message is generated and posted in * the sink elements of a GstBin. The bin will only forward the EOS @@ -371,6 +372,7 @@ * gst_message_new_custom: + * @type: The #GstMessageType to distinguish messages * @src: The object originating the message. * @structure: The structure for the message. The message will take ownership of * the structure. Index: gstmessage.h RCS file: /cvs/gstreamer/gstreamer/gst/gstmessage.h,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- gstmessage.h 25 Aug 2005 10:51:14 -0000 1.14 +++ gstmessage.h 26 Aug 2005 22:32:51 -0000 1.15 @@ -145,6 +145,21 @@ GstMessage * gst_message_new_custom (GstMessageType type, GstObject * src, GstStructure * structure); +/** + * gst_message_new_application: + * @str: The structure for the message. The message will take ownership of + * the structure. + * + * Create a new application-typed message. This can be used for anything not + * handled by other message-specific functions to pass a message to the + * app. The structure field can be NULL. + * Returns: The new message. + * MT safe. + */ #define gst_message_new_application(src, str) \ gst_message_new_custom (GST_MESSAGE_APPLICATION, src, str) |
From: <en...@fr...> - 2005-11-04 15:03:11
|
CVS Root: /cvs/gstreamer Module: gstreamer Changes by: ensonic Date: Fri Nov 04 2005 07:03:00 PST Log message: * gst/gstregistry.c: * gst/gstregistry.h: added missing docs Modified files: . : ChangeLog gst : gstregistry.c gstregistry.h Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/ChangeLog.diff?r1=1.1833&r2=1.1834 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstregistry.c.diff?r1=1.51&r2=1.52 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstregistry.h.diff?r1=1.27&r2=1.28 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gstreamer/ChangeLog,v retrieving revision 1.1833 retrieving revision 1.1834 diff -u -d -r1.1833 -r1.1834 --- ChangeLog 4 Nov 2005 14:35:10 -0000 1.1833 +++ ChangeLog 4 Nov 2005 15:02:47 -0000 1.1834 @@ -1,3 +1,9 @@ +2005-11-04 Stefan Kost <en...@us...> + + * gst/gstregistry.c: + * gst/gstregistry.h: + added missing docs 2005-11-04 Edward Hervey <ed...@fl...> * gst/base/gstbasesrc.c: (gst_base_src_get_range): Index: gstregistry.c RCS file: /cvs/gstreamer/gstreamer/gst/gstregistry.c,v retrieving revision 1.51 retrieving revision 1.52 diff -u -d -r1.51 -r1.52 --- gstregistry.c 2 Nov 2005 15:34:23 -0000 1.51 +++ gstregistry.c 4 Nov 2005 15:02:48 -0000 1.52 @@ -550,6 +550,14 @@ FALSE, &data); } +/** + * gst_registry_get_plugin_list: + * @registry: the registry to search + * + * Get a copy of all plugins registered in the given registry. + * Returns: a copy of the list. Free after use. + */ GList * gst_registry_get_plugin_list (GstRegistry * registry) { Index: gstregistry.h RCS file: /cvs/gstreamer/gstreamer/gst/gstregistry.h,v retrieving revision 1.27 retrieving revision 1.28 diff -u -d -r1.27 -r1.28 --- gstregistry.h 15 Oct 2005 15:30:22 -0000 1.27 +++ gstregistry.h 4 Nov 2005 15:02:48 -0000 1.28 @@ -105,18 +105,89 @@ void _gst_registry_cleanup (void); +/* convinience defines for the default registry */ + * gst_default_registry_add_plugin: + * @plugin: the plugin to add + * Add the plugin to the default registry. + * The plugin-added signal will be emitted. + * Returns: TRUE on success. #define gst_default_registry_add_plugin(plugin) \ gst_registry_add_plugin (gst_registry_get_default(), plugin) + * gst_default_registry_add_path: + * @path: the path to add to the registry + * Add the given path to the default registry. The syntax of the + * path is specific to the registry. If the path has already been + * added, do nothing. #define gst_default_registry_add_path(path) \ gst_registry_add_path (gst_registry_get_default(), path) + * gst_default_registry_get_path_list: + * Get the list of paths for the default registry. + * Returns: A Glist of paths as strings. g_list_free after use. #define gst_default_registry_get_path_list() \ gst_registry_get_path_list (gst_registry_get_default()) + + * gst_default_registry_get_plugin_list: + * Get a copy of all plugins registered in the default registry. #define gst_default_registry_get_plugin_list() \ gst_registry_get_plugin_list (gst_registry_get_default()) + * gst_default_registry_find_feature: + * @name: the pluginfeature name to find + * @type: the pluginfeature type to find + * Find the pluginfeature with the given name and type in the default registry. + * Returns: The pluginfeature with the given name and type or NULL + * if the plugin was not found. #define gst_default_registry_find_feature(name,type) \ gst_registry_find_feature (gst_registry_get_default(),name,type) + * gst_default_registry_find_plugin: + * @name: the plugin name to find + * Find the plugin with the given name in the default registry. + * The plugin will be reffed; caller is responsible for unreffing. + * Returns: The plugin with the given name or NULL if the plugin was not found. #define gst_default_registry_find_plugin(name) \ gst_registry_find_plugin (gst_registry_get_default(),name) + * gst_default_registry_feature_filter: + * @filter: the filter to use + * @first: only return first match + * @user_data: user data passed to the filter function + * Runs a filter against all features of the plugins in the default registry + * and returns a GList with the results. + * If the first flag is set, only the first match is + * returned (as a list with a single object). + * Returns: a GList of plugin features, gst_plugin_feature_list_free after use. #define gst_default_registry_feature_filter(filter,first,user_data) \ gst_registry_feature_filter (gst_registry_get_default(),filter,first,user_data) |
From: <en...@fr...> - 2005-11-18 16:04:44
|
CVS Root: /cvs/gstreamer Module: gstreamer Changes by: ensonic Date: Fri Nov 18 2005 08:04:40 PST Log message: * gst/gstcaps.c: * gst/gstghostpad.c: * gst/gsttrace.c: * gst/gstvalue.c: * gst/gstvalue.h: docs fixes Modified files: . : ChangeLog gst : gstcaps.c gstghostpad.c gsttrace.c gstvalue.c gstvalue.h Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/ChangeLog.diff?r1=1.1924&r2=1.1925 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstcaps.c.diff?r1=1.153&r2=1.154 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstghostpad.c.diff?r1=1.27&r2=1.28 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gsttrace.c.diff?r1=1.28&r2=1.29 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstvalue.c.diff?r1=1.83&r2=1.84 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstvalue.h.diff?r1=1.36&r2=1.37 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gstreamer/ChangeLog,v retrieving revision 1.1924 retrieving revision 1.1925 diff -u -d -r1.1924 -r1.1925 --- ChangeLog 18 Nov 2005 15:52:24 -0000 1.1924 +++ ChangeLog 18 Nov 2005 16:04:28 -0000 1.1925 @@ -1,3 +1,12 @@ +2005-11-18 Stefan Kost <en...@us...> + + * gst/gstcaps.c: + * gst/gstghostpad.c: + * gst/gsttrace.c: + * gst/gstvalue.c: + * gst/gstvalue.h: + docs fixes 2005-11-18 Andy Wingo <wi...@po...> * gst/net/gstnetclientclock.c: Turn off debugging. Index: gstcaps.c RCS file: /cvs/gstreamer/gstreamer/gst/gstcaps.c,v retrieving revision 1.153 retrieving revision 1.154 diff -u -d -r1.153 -r1.154 --- gstcaps.c 11 Nov 2005 18:25:50 -0000 1.153 +++ gstcaps.c 18 Nov 2005 16:04:28 -0000 1.154 @@ -22,7 +22,7 @@ * @short_description: Structure describing sets of media formats * @see_also: #GstStructure * - * Caps are lighweight refcounted objects describing media types. + * Caps (capabilities) are lighweight refcounted objects describing media types. * They are composed of an array of #GstStructure. * Caps are exposed on #GstPadTemplate to describe all possible types a @@ -31,7 +31,7 @@ * Caps are exposed on the element pads using the gst_pad_get_caps() pad * function. This function describes the possible types that the pad can - * handle or produce at runtime. + * handle or produce at runtime. * Caps are also attached to buffers to describe to content of the data * pointed to by the buffer with gst_buffer_set_caps(). Caps attached to @@ -57,7 +57,7 @@ * gst_caps_is_fixed() to test for fixed caps. Only fixed caps can be * set on a #GstPad or #GstBuffer. - * Various methods exist to work with the media types such as substracting + * Various methods exist to work with the media types such as subtracting * or intersecting. * Last reviewed on 2005-11-09 (0.9.4) Index: gstghostpad.c RCS file: /cvs/gstreamer/gstreamer/gst/gstghostpad.c,v retrieving revision 1.27 retrieving revision 1.28 diff -u -d -r1.27 -r1.28 --- gstghostpad.c 14 Nov 2005 15:15:43 -0000 1.27 +++ gstghostpad.c 18 Nov 2005 16:04:28 -0000 1.28 @@ -26,6 +26,19 @@ * @short_description: Pseudo link pads * @see_also: #GstPad + * GhostPads are useful when organizing pipelines with #GstBin like elements. + * The idea here is to create hierarchical element graphs. The bin element + * contains a sub-graph. Now one would like to treat the bin-element like other + * #GstElements. This is where GhostPads come into play. A GhostPad acts as a + * proxy for another pad. Thus the bin can have sink and source ghost-pads that + * are accociated with sink and source pads of the child elements. + * + * If the target pad is known at creation time, gst_ghost_pad_new() is the + * function to use to get a ghost-pad. Otherwise one can use gst_ghost_pad_new_notarget() + * to create the ghost-pad and use gst_ghost_pad_set_target() to establish the + * accociation later on. + * Last reviewed on 2005-11-18 (0.9.5) */ #include "gst_private.h" Index: gsttrace.c RCS file: /cvs/gstreamer/gstreamer/gst/gsttrace.c,v retrieving revision 1.29 diff -u -d -r1.28 -r1.29 --- gsttrace.c 20 Oct 2005 21:08:47 -0000 1.28 +++ gsttrace.c 18 Nov 2005 16:04:28 -0000 1.29 @@ -24,6 +24,13 @@ * SECTION:gsttrace * @short_description: Tracing functionality + * Traces allows to track object allocation. They provide a instance counter per + * #GType. The counter is incremented for each object allocated and decremented + * it when it's freed. + * (FIXME: add example - see jamboree/tests/read-tags.c) #ifdef HAVE_CONFIG_H Index: gstvalue.c RCS file: /cvs/gstreamer/gstreamer/gst/gstvalue.c,v retrieving revision 1.83 retrieving revision 1.84 diff -u -d -r1.83 -r1.84 --- gstvalue.c 15 Oct 2005 17:59:07 -0000 1.83 +++ gstvalue.c 18 Nov 2005 16:04:28 -0000 1.84 @@ -2177,8 +2177,9 @@ * Creates a GValue cooresponding to the union of @value1 and @value2. - * Returns: TRUE if the values could be unioned + * Returns: %TRUE if a union was successful +/* FIXME: change return type to 'void'? */ gboolean gst_value_union (GValue * dest, const GValue * value1, const GValue * value2) { @@ -2363,7 +2364,7 @@ * Subtracts @subtrahend from @minuend and stores the result in @dest. * Note that this means subtraction as in sets, not as in mathematics. - * Returns: TRUE if the subtraction is not empty + * Returns: %TRUE if the subtraction is not empty gst_value_subtract (GValue * dest, const GValue * minuend, Index: gstvalue.h RCS file: /cvs/gstreamer/gstreamer/gst/gstvalue.h,v retrieving revision 1.36 retrieving revision 1.37 diff -u -d -r1.36 -r1.37 --- gstvalue.h 17 Oct 2005 09:28:35 -0000 1.36 +++ gstvalue.h 18 Nov 2005 16:04:28 -0000 1.37 @@ -267,24 +267,86 @@ typedef int (* GstValueCompareFunc) (const GValue *value1, const GValue *value2); +/** + * GstValueSerializeFunc: + * @value1: a #GValue + * Used by gst_value_serialize() to obtain a non-binary form of the #GValue. + * Returns: the string representation of the value + */ typedef char * (* GstValueSerializeFunc) (const GValue *value1); + * GstValueDeserializeFunc: + * @dest: a #GValue + * @s: a string + * Used by gst_value_deserialize() to parse a non-binary form into the #GValue. + * Returns: %TRUE for success typedef gboolean (* GstValueDeserializeFunc) (GValue *dest, const char *s); + * GstValueUnionFunc: + * @dest: a #GValue for the result + * @value1: a #GValue operand + * @value2: a #GValue operand + * Used by gst_value_union() to perform unification for a specific #GValue + * type. Register a new implementation with gst_value_register_union_func(). +/* FIXME: shouldn't the return value be gboolean ? */ typedef int (* GstValueUnionFunc) (GValue *dest, const GValue *value1, + * GstValueIntersectFunc: + * Used by gst_value_intersect() to perform intersection for a specific #GValue + * type. Register a new implementation with gst_value_register_intersection_func(). + * Returns: %TRUE if the values can intersect typedef int (* GstValueIntersectFunc) (GValue *dest, + * GstValueSubtractFunc: + * @minuend: a #GValue operand + * @subtrahend: a #GValue operand + * Used by gst_value_subtract() to perform subtraction for a specific #GValue + * type. Register a new implementation with gst_value_register_subtract_func(). typedef int (* GstValueSubtractFunc) (GValue *dest, const GValue *minuend, const GValue *subtrahend); typedef struct _GstValueTable GstValueTable; + * GstValueTable: + * @type: a #GType + * @compare: a #GstValueCompareFunc + * @serialize: a #GstValueSerializeFunc + * @deserialize: a #GstValueDeserializeFunc + * VTable for the #GValue @type. struct _GstValueTable { GType type; GstValueCompareFunc compare; |
From: <en...@fr...> - 2005-11-24 16:56:43
|
CVS Root: /cvs/gstreamer Module: gstreamer Changes by: ensonic Date: Thu Nov 24 2005 08:56:40 PST Log message: * gst/gstinfo.h: do not crash on pad==NULL Modified files: . : ChangeLog gst : gstinfo.h Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/ChangeLog.diff?r1=1.2010&r2=1.2011 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstinfo.h.diff?r1=1.90&r2=1.91 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gstreamer/ChangeLog,v retrieving revision 1.2010 retrieving revision 1.2011 diff -u -d -r1.2010 -r1.2011 --- ChangeLog 24 Nov 2005 16:32:25 -0000 1.2010 +++ ChangeLog 24 Nov 2005 16:56:28 -0000 1.2011 @@ -1,3 +1,8 @@ +2005-11-24 Stefan Kost <en...@us...> + + * gst/gstinfo.h: + do not crash on pad==NULL 2005-11-24 Thomas Vander Stichele <thomas at apestaart dot org> Patch by: Stefan Kost Index: gstinfo.h RCS file: /cvs/gstreamer/gstreamer/gst/gstinfo.h,v retrieving revision 1.90 retrieving revision 1.91 diff -u -d -r1.90 -r1.91 --- gstinfo.h 21 Nov 2005 15:47:09 -0000 1.90 +++ gstinfo.h 24 Nov 2005 16:56:28 -0000 1.91 @@ -185,9 +185,11 @@ * statements. */ #define GST_DEBUG_PAD_NAME(pad) \ - (GST_OBJECT_PARENT(pad) != NULL) ? \ + (pad != NULL) ? \ + ((GST_OBJECT_PARENT(pad) != NULL) ? \ GST_STR_NULL (GST_OBJECT_NAME (GST_OBJECT_PARENT(pad))) : \ - "''", GST_OBJECT_NAME (pad) + "''" ) : "''", \ + (pad==NULL) ? GST_OBJECT_NAME (pad) : "''" /** * GST_FUNCTION: |
From: <en...@fr...> - 2005-12-16 21:59:57
|
CVS Root: /cvs/gstreamer Module: gstreamer Changes by: ensonic Date: Fri Dec 16 2005 13:59:24 PST Log message: * gst/gst.c: * gst/gst_private.h: change some char* into char[] Modified files: . : ChangeLog gst : gst.c gst_private.h Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/ChangeLog.diff?r1=1.2143&r2=1.2144 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gst.c.diff?r1=1.194&r2=1.195 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gst_private.h.diff?r1=1.25&r2=1.26 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gstreamer/ChangeLog,v retrieving revision 1.2143 retrieving revision 1.2144 diff -u -d -r1.2143 -r1.2144 --- ChangeLog 16 Dec 2005 19:24:23 -0000 1.2143 +++ ChangeLog 16 Dec 2005 21:59:12 -0000 1.2144 @@ -1,3 +1,9 @@ +2005-12-16 Stefan Kost <en...@us...> + + * gst/gst.c: + * gst/gst_private.h: + change some char* into char[] 2005-12-16 Wim Taymans <wi...@fl...> * gst/gstregistryxml.c: (load_feature): Index: gst.c RCS file: /cvs/gstreamer/gstreamer/gst/gst.c,v retrieving revision 1.194 retrieving revision 1.195 diff -u -d -r1.194 -r1.195 --- gst.c 16 Dec 2005 17:34:19 -0000 1.194 +++ gst.c 16 Dec 2005 21:59:12 -0000 1.195 @@ -131,7 +131,7 @@ static GSList *preload_plugins = NULL; -const gchar *g_log_domain_gstreamer = "GStreamer"; +const gchar g_log_domain_gstreamer[] = "GStreamer"; static void debug_log_handler (const gchar * log_domain, Index: gst_private.h RCS file: /cvs/gstreamer/gstreamer/gst/gst_private.h,v retrieving revision 1.25 retrieving revision 1.26 diff -u -d -r1.25 -r1.26 --- gst_private.h 30 Nov 2005 09:59:03 -0000 1.25 +++ gst_private.h 16 Dec 2005 21:59:12 -0000 1.26 @@ -30,7 +30,7 @@ /* This needs to be before glib.h, since it might be used in inline * functions */ -extern const char *g_log_domain_gstreamer; +extern const char g_log_domain_gstreamer[]; #include <glib.h> |
From: <en...@ke...> - 2006-03-24 10:44:32
|
CVS Root: /cvs/gstreamer Module: gstreamer Changes by: ensonic Date: Fri Mar 24 2006 10:44:29 UTC Log message: * gst/gstelement.c: Little clarification in the docs Modified files: . : ChangeLog gst : gstelement.c Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/ChangeLog.diff?r1=1.2393&r2=1.2394 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstelement.c.diff?r1=1.426&r2=1.427 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gstreamer/ChangeLog,v retrieving revision 1.2393 retrieving revision 1.2394 diff -u -d -r1.2393 -r1.2394 --- ChangeLog 24 Mar 2006 10:38:20 -0000 1.2393 +++ ChangeLog 24 Mar 2006 10:44:17 -0000 1.2394 @@ -1,5 +1,10 @@ 2006-03-24 Stefan Kost <en...@us...> + * gst/gstelement.c: + Little clarification in the docs + +2006-03-24 Stefan Kost <en...@us...> * docs/README: formatting fix * plugins/elements/gstidentity.c: Index: gstelement.c RCS file: /cvs/gstreamer/gstreamer/gst/gstelement.c,v retrieving revision 1.426 retrieving revision 1.427 diff -u -d -r1.426 -r1.427 --- gstelement.c 22 Mar 2006 13:10:16 -0000 1.426 +++ gstelement.c 24 Mar 2006 10:44:17 -0000 1.427 @@ -1054,6 +1054,8 @@ * * Sets the detailed information for a #GstElementClass. * <note>This function is for use in _base_init functions only.</note> + * + * The @details are copied. */ void gst_element_class_set_details (GstElementClass * klass, |
From: <en...@ke...> - 2006-04-28 17:52:28
|
CVS Root: /cvs/gstreamer Module: gstreamer Changes by: ensonic Date: Fri Apr 28 2006 17:52:25 UTC Log message: * gst/gstutils.c: (gst_element_link_pads): cleanup double code Modified files: . : ChangeLog gst : gstutils.c Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/ChangeLog.diff?r1=1.2454&r2=1.2455 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstutils.c.diff?r1=1.138&r2=1.139 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gstreamer/ChangeLog,v retrieving revision 1.2454 retrieving revision 1.2455 diff -u -d -r1.2454 -r1.2455 --- ChangeLog 28 Apr 2006 17:33:41 -0000 1.2454 +++ ChangeLog 28 Apr 2006 17:52:13 -0000 1.2455 @@ -1,5 +1,10 @@ 2006-04-28 Stefan Kost <en...@us...> + * gst/gstutils.c: (gst_element_link_pads): + cleanup double code + +2006-04-28 Stefan Kost <en...@us...> * libs/gst/controller/gstcontroller.c: (gst_controller_sync_values): some little tuning Index: gstutils.c RCS file: /cvs/gstreamer/gstreamer/gst/gstutils.c,v retrieving revision 1.138 retrieving revision 1.139 diff -u -d -r1.138 -r1.139 --- gstutils.c 28 Apr 2006 15:48:50 -0000 1.138 +++ gstutils.c 28 Apr 2006 17:52:13 -0000 1.139 @@ -1439,17 +1439,13 @@ if (srcpadname) { GST_CAT_DEBUG (GST_CAT_ELEMENT_PADS, "no link possible from %s:%s to %s", GST_DEBUG_PAD_NAME (srcpad), GST_ELEMENT_NAME (dest)); - if (srcpad) - gst_object_unref (srcpad); - srcpad = NULL; if (destpad) gst_object_unref (destpad); destpad = NULL; - } else { } + if (srcpad) + gst_object_unref (srcpad); + srcpad = NULL; if (destpad) { /* loop through the existing pads in the destination */ @@ -1465,8 +1461,6 @@ GST_DEBUG_PAD_NAME (temp), GST_DEBUG_PAD_NAME (destpad)); gst_object_unref (temp); gst_object_unref (destpad); - if (srcpad) - gst_object_unref (srcpad); return TRUE; } if (temp) { |
From: <en...@ke...> - 2006-04-28 20:44:43
|
CVS Root: /cvs/gstreamer Module: gstreamer Changes by: ensonic Date: Fri Apr 28 2006 20:44:33 UTC Log message: * gst/gst.c: * gst/gstregistry.c: (gst_registry_scan_path_level), (gst_registry_scan_path): * gst/gstregistry.h: only write out registry if it has changed, fixes #338339 Modified files: . : ChangeLog gst : gst.c gstregistry.c gstregistry.h Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/ChangeLog.diff?r1=1.2457&r2=1.2458 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gst.c.diff?r1=1.198&r2=1.199 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstregistry.c.diff?r1=1.58&r2=1.59 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstregistry.h.diff?r1=1.32&r2=1.33 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gstreamer/ChangeLog,v retrieving revision 1.2457 retrieving revision 1.2458 diff -u -d -r1.2457 -r1.2458 --- ChangeLog 28 Apr 2006 18:55:16 -0000 1.2457 +++ ChangeLog 28 Apr 2006 20:44:21 -0000 1.2458 @@ -1,5 +1,13 @@ 2006-04-28 Stefan Kost <en...@us...> + * gst/gst.c: + * gst/gstregistry.c: (gst_registry_scan_path_level), + (gst_registry_scan_path): + * gst/gstregistry.h: + only write out registry if it has changed, fixes #338339 + +2006-04-28 Stefan Kost <en...@us...> * gst/gstbin.c: * gst/gstpipeline.c: * plugins/elements/gstcapsfilter.c: Index: gst.c RCS file: /cvs/gstreamer/gstreamer/gst/gst.c,v retrieving revision 1.198 retrieving revision 1.199 diff -u -d -r1.198 -r1.199 --- gst.c 1 Apr 2006 09:41:43 -0000 1.198 +++ gst.c 28 Apr 2006 20:44:21 -0000 1.199 @@ -602,6 +602,7 @@ char *registry_file; const char *plugin_path; GstRegistry *default_registry; + gboolean changed = FALSE; default_registry = gst_registry_get_default (); registry_file = g_strdup (g_getenv ("GST_REGISTRY")); @@ -622,7 +623,7 @@ GST_DEBUG ("GST_PLUGIN_PATH set to %s", plugin_path); list = g_strsplit (plugin_path, G_SEARCHPATH_SEPARATOR_S, 0); for (i = 0; list[i]; i++) { - gst_registry_scan_path (default_registry, list[i]); + changed |= gst_registry_scan_path (default_registry, list[i]); } g_strfreev (list); } else { @@ -642,11 +643,11 @@ * system-installed ones */ home_plugins = g_build_filename (g_get_home_dir (), ".gstreamer-" GST_MAJORMINOR, "plugins", NULL); - gst_registry_scan_path (default_registry, home_plugins); + changed |= gst_registry_scan_path (default_registry, home_plugins); g_free (home_plugins); /* add the main (installed) library path */ - gst_registry_scan_path (default_registry, PLUGINDIR); + changed |= gst_registry_scan_path (default_registry, PLUGINDIR); char **list; int i; @@ -654,12 +655,15 @@ GST_DEBUG ("GST_PLUGIN_SYSTEM_PATH set to %s", plugin_path); } - gst_registry_xml_write_cache (default_registry, registry_file); + if (changed) { + GST_DEBUG ("writing registry cache"); + gst_registry_xml_write_cache (default_registry, registry_file); + } _gst_registry_remove_cache_plugins (default_registry); Index: gstregistry.c RCS file: /cvs/gstreamer/gstreamer/gst/gstregistry.c,v retrieving revision 1.58 retrieving revision 1.59 diff -u -d -r1.58 -r1.59 --- gstregistry.c 8 Apr 2006 20:57:29 -0000 1.58 +++ gstregistry.c 28 Apr 2006 20:44:21 -0000 1.59 @@ -736,7 +736,7 @@ return plugin; } -static void +static gboolean gst_registry_scan_path_level (GstRegistry * registry, const gchar * path, int level) { @@ -745,10 +745,11 @@ gchar *filename; GstPlugin *plugin; GstPlugin *newplugin; + gboolean changed = FALSE; dir = g_dir_open (path, 0, NULL); if (!dir) - return; + return FALSE; while ((dirent = g_dir_read_name (dir))) { filename = g_strjoin ("/", path, dirent, NULL); @@ -758,7 +759,7 @@ if (g_file_test (filename, G_FILE_TEST_IS_DIR)) { if (level > 0) { GST_LOG_OBJECT (registry, "found directory, recursing"); - gst_registry_scan_path_level (registry, filename, level - 1); + changed |= gst_registry_scan_path_level (registry, filename, level - 1); } else { GST_LOG_OBJECT (registry, "found directory, but recursion level is too deep"); @@ -819,6 +820,7 @@ newplugin->registered = TRUE; gst_object_unref (newplugin); } + changed = TRUE; gst_object_unref (plugin); @@ -828,6 +830,7 @@ if (newplugin) { newplugin->registered = TRUE; gst_object_unref (newplugin); @@ -835,6 +838,10 @@ } g_dir_close (dir); + GST_DEBUG_OBJECT (registry, "registry changed? %d", changed); + return changed; /** @@ -845,15 +852,23 @@ * Add the given path to the registry. The syntax of the * path is specific to the registry. If the path has already been * added, do nothing. + * + * Returns: %TRUE if registry changed */ -void +gboolean gst_registry_scan_path (GstRegistry * registry, const gchar * path) - g_return_if_fail (GST_IS_REGISTRY (registry)); - g_return_if_fail (path != NULL); + gboolean changed; + g_return_val_if_fail (GST_IS_REGISTRY (registry), FALSE); + g_return_val_if_fail (path != NULL, FALSE); GST_DEBUG_OBJECT (registry, "scanning path %s", path); - gst_registry_scan_path_level (registry, path, 10); + changed = gst_registry_scan_path_level (registry, path, 10); void Index: gstregistry.h RCS file: /cvs/gstreamer/gstreamer/gst/gstregistry.h,v retrieving revision 1.32 retrieving revision 1.33 diff -u -d -r1.32 -r1.33 --- gstregistry.h 8 Mar 2006 12:57:37 -0000 1.32 +++ gstregistry.h 28 Apr 2006 20:44:21 -0000 1.33 @@ -78,7 +78,7 @@ GstRegistry * gst_registry_get_default (void); -void gst_registry_scan_path (GstRegistry *registry, const gchar *path); +gboolean gst_registry_scan_path (GstRegistry *registry, const gchar *path); GList* gst_registry_get_path_list (GstRegistry *registry); gboolean gst_registry_add_plugin (GstRegistry *registry, GstPlugin *plugin); |
From: <en...@ke...> - 2006-05-08 23:33:31
|
CVS Root: /cvs/gstreamer Module: gstreamer Changes by: ensonic Date: Sat May 06 2006 21:45:39 UTC Log message: * gst/gstelement.c: use full enum names and preprend a '%' in docs strings to make recent gtk-doc turn that into a link Modified files: . : ChangeLog gst : gstelement.c Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/ChangeLog.diff?r1=1.2483&r2=1.2484 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstelement.c.diff?r1=1.429&r2=1.430 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gstreamer/ChangeLog,v retrieving revision 1.2483 retrieving revision 1.2484 diff -u -d -r1.2483 -r1.2484 --- ChangeLog 5 May 2006 21:44:57 -0000 1.2483 +++ ChangeLog 6 May 2006 21:45:26 -0000 1.2484 @@ -1,3 +1,9 @@ +2006-05-07 Stefan Kost <en...@us...> + + * gst/gstelement.c: + use full enum names and preprend a '%' in docs strings to make recent + gtk-doc turn that into a link 2006-05-05 Tim-Philipp Müller <tim at centricular dot net> * docs/manual/basics-bins.xml: Index: gstelement.c RCS file: /cvs/gstreamer/gstreamer/gst/gstelement.c,v retrieving revision 1.429 retrieving revision 1.430 diff -u -d -r1.429 -r1.430 --- gstelement.c 8 Apr 2006 20:57:29 -0000 1.429 +++ gstelement.c 6 May 2006 21:45:27 -0000 1.430 @@ -1745,7 +1745,7 @@ /** * gst_element_get_state: * @element: a #GstElement to get the state of. - * @state: a pointer to #GstState to hold the state. Can be NULL. + * @state: a pointer to #GstState to hold the state. Can be %NULL. * @pending: a pointer to #GstState to hold the pending state. * Can be %NULL. * @timeout: a #GstClockTime to specify the timeout for an async @@ -1859,9 +1859,9 @@ * pending state if any. This function is used * by elements that do asynchronous state changes. * The core will normally call this method automatically when an - * element returned SUCCESS from the state change function. - * Elements that return ASYNC from the change_state function should - * eventually call this method from the streaming thread to signal + * element returned %GST_STATE_CHANGE_SUCCESS from the state change function. + * Elements that return %GST_STATE_CHANGE_ASYNC from the change_state function + * should eventually call this method from the streaming thread to signal * successfull state change completion. * * If after calling this method the element still has not reached @@ -1964,11 +1964,11 @@ * * Brings the element to the lost state. The current state of the * element is copied to the pending state so that any call to - * gst_element_get_state() will return ASYNC. + * gst_element_get_state() will return %GST_STATE_CHANGE_ASYNC. * This is mostly used for elements that lost their preroll buffer - * in the PAUSED state after a flush, they become PAUSED again - * if a new preroll buffer is queued. + * in the %GST_STATE_PAUSED state after a flush, they become %GST_STATE_PAUSED + * again if a new preroll buffer is queued. * This function can only be called when the element is currently * not in error or an async state change. |
From: <en...@ke...> - 2006-05-09 00:59:49
|
CVS Root: /cvs/gstreamer Module: gstreamer Changes by: ensonic Date: Sun May 07 2006 19:58:00 UTC Log message: * gst/gstcaps.c: Docs about how to print caps for debug purposes. * gst/gstpadtemplate.c: (gst_static_pad_template_get): use gst_caps_make_writable instead of gst_caps_copy, Fixes #340608 Modified files: . : ChangeLog gst : gstcaps.c gstpadtemplate.c Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/ChangeLog.diff?r1=1.2484&r2=1.2485 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstcaps.c.diff?r1=1.163&r2=1.164 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstpadtemplate.c.diff?r1=1.9&r2=1.10 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gstreamer/ChangeLog,v retrieving revision 1.2484 retrieving revision 1.2485 diff -u -d -r1.2484 -r1.2485 --- ChangeLog 6 May 2006 21:45:26 -0000 1.2484 +++ ChangeLog 7 May 2006 19:57:48 -0000 1.2485 @@ -1,5 +1,13 @@ 2006-05-07 Stefan Kost <en...@us...> + * gst/gstcaps.c: + Docs about how to print caps for debug purposes. + + * gst/gstpadtemplate.c: (gst_static_pad_template_get): + use gst_caps_make_writable instead of gst_caps_copy, Fixes #340608 + +2006-05-07 Stefan Kost <en...@us...> * gst/gstelement.c: use full enum names and preprend a '%' in docs strings to make recent gtk-doc turn that into a link Index: gstcaps.c RCS file: /cvs/gstreamer/gstreamer/gst/gstcaps.c,v retrieving revision 1.163 retrieving revision 1.164 diff -u -d -r1.163 -r1.164 --- gstcaps.c 28 Feb 2006 10:52:02 -0000 1.163 +++ gstcaps.c 7 May 2006 19:57:48 -0000 1.164 @@ -1589,6 +1589,12 @@ * Converts @caps to a string representation. This string representation * can be converted back to a #GstCaps by gst_caps_from_string(). * + * For debugging purposes its easier to do something like this: + * <programlisting> + * GST_LOG ("caps are %" GST_PTR_FORMAT, caps); + * </programlisting> + * This prints the caps in human readble form. + * * Returns: a newly allocated string representing @caps. */ gchar * Index: gstpadtemplate.c RCS file: /cvs/gstreamer/gstreamer/gst/gstpadtemplate.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- gstpadtemplate.c 8 Apr 2006 20:57:29 -0000 1.9 +++ gstpadtemplate.c 7 May 2006 19:57:48 -0000 1.10 @@ -277,7 +277,7 @@ GST_PAD_TEMPLATE_PRESENCE (new) = pad_template->presence; GST_PAD_TEMPLATE_CAPS (new) = - gst_caps_copy (gst_static_caps_get (&pad_template->static_caps)); + gst_caps_make_writable (gst_static_caps_get (&pad_template->static_caps)); return new; } |
From: <en...@ke...> - 2006-07-20 20:03:08
|
CVS Root: /cvs/gstreamer Module: gstreamer Changes by: ensonic Date: Thu Jul 20 2006 20:03:07 UTC Log message: * gst/gstparse.c: (gst_parse_launch): Do not hange on recursive uasge of gst_parse_launch() Modified files: . : ChangeLog gst : gstparse.c Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/ChangeLog.diff?r1=1.2684&r2=1.2685 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstparse.c.diff?r1=1.70&r2=1.71 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gstreamer/ChangeLog,v retrieving revision 1.2684 retrieving revision 1.2685 diff -u -d -r1.2684 -r1.2685 --- ChangeLog 20 Jul 2006 16:10:17 -0000 1.2684 +++ ChangeLog 20 Jul 2006 20:02:55 -0000 1.2685 @@ -1,3 +1,8 @@ +2006-07-20 Stefan Kost <en...@us...> + + * gst/gstparse.c: (gst_parse_launch): + Do not hange on recursive uasge of gst_parse_launch() 2006-07-20 Tim-Philipp Müller <tim at centricular dot net> * gst/gsttaglist.c: Index: gstparse.c RCS file: /cvs/gstreamer/gstreamer/gst/gstparse.c,v retrieving revision 1.70 retrieving revision 1.71 diff -u -d -r1.70 -r1.71 --- gstparse.c 4 May 2006 15:20:14 -0000 1.70 +++ gstparse.c 20 Jul 2006 20:02:55 -0000 1.71 @@ -136,7 +136,7 @@ GstElement * gst_parse_launch (const gchar * pipeline_description, GError ** error) { - GstElement *element; + GstElement *element = NULL; static GStaticMutex flex_lock = G_STATIC_MUTEX_INIT; g_return_val_if_fail (pipeline_description != NULL, NULL); @@ -145,9 +145,12 @@ pipeline_description); /* the need for the mutex will go away with flex 2.5.6 */ - g_static_mutex_lock (&flex_lock); - element = _gst_parse_launch (pipeline_description, error); - g_static_mutex_unlock (&flex_lock); + if (g_static_mutex_trylock (&flex_lock)) { + element = _gst_parse_launch (pipeline_description, error); + g_static_mutex_unlock (&flex_lock); + } else { + GST_WARNING ("gst_parse_launch() cannot be nested"); + } return element; } |
From: <en...@ke...> - 2006-07-21 13:11:46
|
CVS Root: /cvs/gstreamer Module: gstreamer Changes by: ensonic Date: Fri Jul 21 2006 13:11:45 UTC Log message: * configure.ac: * gst/gstparse.c: (gst_parse_launch): Modified files: . : ChangeLog configure.ac gst : gstparse.c Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/ChangeLog.diff?r1=1.2687&r2=1.2688 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/configure.ac.diff?r1=1.477&r2=1.478 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstparse.c.diff?r1=1.72&r2=1.73 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gstreamer/ChangeLog,v retrieving revision 1.2687 retrieving revision 1.2688 diff -u -d -r1.2687 -r1.2688 --- ChangeLog 21 Jul 2006 10:40:25 -0000 1.2687 +++ ChangeLog 21 Jul 2006 13:11:33 -0000 1.2688 @@ -1,3 +1,8 @@ +2006-07-21 Stefan Kost <en...@us...> + + * configure.ac: + * gst/gstparse.c: (gst_parse_launch): 2006-07-21 Wim Taymans <wi...@fl...> * gst/gstparse.c: (gst_parse_launch): Index: configure.ac RCS file: /cvs/gstreamer/gstreamer/configure.ac,v retrieving revision 1.477 retrieving revision 1.478 diff -u -d -r1.477 -r1.478 --- configure.ac 14 Jul 2006 15:52:55 -0000 1.477 +++ configure.ac 21 Jul 2006 13:11:33 -0000 1.478 @@ -236,41 +236,16 @@ dnl find an assembler AM_PROG_AS -dnl we use awk in the bison version check -AC_PROG_AWK - -dnl we require bison for building the parser -dnl FIXME: check if AC_PROG_YACC is suitable here -dnl FIXME: make precious -AC_PATH_PROG(BISON_PATH, bison, no) -if test x$BISON_PATH = xno; then - AC_MSG_ERROR(Could not find bison) -fi -dnl check bison version -AC_MSG_CHECKING([bison version]) -if $BISON_PATH --version | head -n 1 | $AWK '{ if ($4 < 1.35) exit 1; else exit 0;}'; -then - AC_MSG_RESULT([ok]) -else - AC_MSG_RESULT([too old.]) - AC_MSG_ERROR([Your bison version is too old, v1.35 or later is required.]) -dnl we require flex for building the parser -dnl FIXME: check if AC_PROG_LEX is suitable here -AC_PATH_PROG(FLEX_PATH, flex, no) -if test x$FLEX_PATH = xno; then - AC_MSG_ERROR(Could not find flex) -dnl Perl is used in building documentation +dnl Perl is used in building documentation and in the version checks AC_PATH_PROG(PERL_PATH, perl, no) if test x$PERL_PATH = xno; then AC_MSG_ERROR(Could not find perl) fi +dnl we require flex and bison for building the parser +GST_BISON_CHECK +GST_FLEX_CHECK AC_PATH_PROG(VALGRIND_PATH, valgrind, no) AM_CONDITIONAL(HAVE_VALGRIND, test ! "x$VALGRIND_PATH" = "xno") Index: gstparse.c RCS file: /cvs/gstreamer/gstreamer/gst/gstparse.c,v retrieving revision 1.72 retrieving revision 1.73 diff -u -d -r1.72 -r1.73 --- gstparse.c 21 Jul 2006 10:40:25 -0000 1.72 +++ gstparse.c 21 Jul 2006 13:11:33 -0000 1.73 @@ -38,7 +38,10 @@ /* the need for the mutex will go away with flex 2.5.6 */ static gboolean flex_busy = FALSE; +#ifndef HAVE_MT_SAVE_FLEX static GStaticRecMutex flex_lock = G_STATIC_REC_MUTEX_INIT; +#endif extern GstElement *_gst_parse_launch (const gchar *, GError **); @@ -147,7 +150,9 @@ GST_CAT_INFO (GST_CAT_PIPELINE, "parsing pipeline description %s", pipeline_description); g_static_rec_mutex_lock (&flex_lock); if (flex_busy) goto recursive_call; flex_busy = TRUE; @@ -155,7 +160,9 @@ element = _gst_parse_launch (pipeline_description, error); flex_busy = FALSE; g_static_rec_mutex_unlock (&flex_lock); return element; @@ -163,7 +170,9 @@ recursive_call: { GST_WARNING ("calls to gst_parse_launch() cannot be nested"); g_static_rec_mutex_unlock (&flex_lock); g_warning ("calls to gst_parse_launch() cannot be nested"); return NULL; } |
From: <en...@ke...> - 2006-07-21 18:52:43
|
CVS Root: /cvs/gstreamer Module: gstreamer Changes by: ensonic Date: Fri Jul 21 2006 18:52:42 UTC Log message: * gst/gstparse.c: (gst_parse_launch): Also remove reentrance checks if flex is MT save (#348179) Fix my empty ChangeLog entry below Modified files: . : ChangeLog gst : gstparse.c Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/ChangeLog.diff?r1=1.2690&r2=1.2691 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstparse.c.diff?r1=1.73&r2=1.74 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gstreamer/ChangeLog,v retrieving revision 1.2690 retrieving revision 1.2691 diff -u -d -r1.2690 -r1.2691 --- ChangeLog 21 Jul 2006 16:01:34 -0000 1.2690 +++ ChangeLog 21 Jul 2006 18:52:30 -0000 1.2691 @@ -1,3 +1,9 @@ +2006-07-21 Stefan Kost <en...@us...> + + * gst/gstparse.c: (gst_parse_launch): + Also remove reentrance checks if flex is MT save (#348179) + Fix my empty ChangeLog entry below 2006-07-21 Andy Wingo <wi...@po...> * docs/libs/gstreamer-libs-sections.txt: Attempt to pacify buildbot. @@ -14,6 +20,8 @@ * configure.ac: * gst/gstparse.c: (gst_parse_launch): + Check for flex version and omit mutex if we have a MT save flex + (fixes #348179) 2006-07-21 Wim Taymans <wi...@fl...> Index: gstparse.c RCS file: /cvs/gstreamer/gstreamer/gst/gstparse.c,v retrieving revision 1.73 retrieving revision 1.74 diff -u -d -r1.73 -r1.74 --- gstparse.c 21 Jul 2006 13:11:33 -0000 1.73 +++ gstparse.c 21 Jul 2006 18:52:30 -0000 1.74 @@ -36,10 +36,9 @@ #include "gstparse.h" #include "gstinfo.h" +#ifndef HAVE_MT_SAVE_FLEX /* the need for the mutex will go away with flex 2.5.6 */ static gboolean flex_busy = FALSE; - -#ifndef HAVE_MT_SAVE_FLEX static GStaticRecMutex flex_lock = G_STATIC_REC_MUTEX_INIT; #endif @@ -152,28 +151,28 @@ #ifndef HAVE_MT_SAVE_FLEX g_static_rec_mutex_lock (&flex_lock); -#endif if (flex_busy) goto recursive_call; flex_busy = TRUE; +#endif element = _gst_parse_launch (pipeline_description, error); - flex_busy = FALSE; + flex_busy = FALSE; g_static_rec_mutex_unlock (&flex_lock); return element; /* ERRORS */ recursive_call: { GST_WARNING ("calls to gst_parse_launch() cannot be nested"); g_static_rec_mutex_unlock (&flex_lock); g_warning ("calls to gst_parse_launch() cannot be nested"); return NULL; } } |
From: <en...@ke...> - 2006-07-25 13:06:32
|
CVS Root: /cvs/gstreamer Module: gstreamer Changes by: ensonic Date: Tue Jul 25 2006 13:06:26 UTC Log message: * gst/gstinfo.h: Move the Win32 version from gst-plugins-good/gst/avi/avidemux.c to here. Modified files: . : ChangeLog gst : gstinfo.h Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/ChangeLog.diff?r1=1.2694&r2=1.2695 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstinfo.h.diff?r1=1.94&r2=1.95 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gstreamer/ChangeLog,v retrieving revision 1.2694 retrieving revision 1.2695 diff -u -d -r1.2694 -r1.2695 --- ChangeLog 24 Jul 2006 16:33:30 -0000 1.2694 +++ ChangeLog 25 Jul 2006 13:06:13 -0000 1.2695 @@ -1,3 +1,9 @@ +2006-07-25 Stefan Kost <en...@us...> + + * gst/gstinfo.h: + Move the Win32 version from gst-plugins-good/gst/avi/avidemux.c to + here. 2006-07-24 Tim-Philipp Müller <tim at centricular dot net> * gst/gsttaglist.c: (_gst_tag_initialize): Index: gstinfo.h RCS file: /cvs/gstreamer/gstreamer/gst/gstinfo.h,v retrieving revision 1.94 retrieving revision 1.95 diff -u -d -r1.94 -r1.95 --- gstinfo.h 12 Jun 2006 08:47:16 -0000 1.94 +++ gstinfo.h 25 Jul 2006 13:06:14 -0000 1.95 @@ -305,7 +305,13 @@ * Declares a GstDebugCategory variable as extern. Use in header files. * This macro expands to nothing if debugging is disabled. */ +#ifndef WIN32 #define GST_DEBUG_CATEGORY_EXTERN(cat) extern GstDebugCategory *cat +#else +#define GST_DEBUG_CATEGORY_EXTERN(cat) \ + extern _declspec (dllimport) GstDebugCategory *cat; +#endif /** * GST_DEBUG_CATEGORY_STATIC: * @cat: the category |
From: <en...@ke...> - 2006-07-27 14:58:34
|
CVS Root: /cvs/gstreamer Module: gstreamer Changes by: ensonic Date: Wed Jul 26 2006 20:31:07 UTC Log message: * gst/gstregistry.c: Move big documentation comment into class section header, so that it appears in the API docs. Modified files: . : ChangeLog gst : gstregistry.c Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/ChangeLog.diff?r1=1.2701&r2=1.2702 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstregistry.c.diff?r1=1.60&r2=1.61 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gstreamer/ChangeLog,v retrieving revision 1.2701 retrieving revision 1.2702 diff -u -d -r1.2701 -r1.2702 --- ChangeLog 26 Jul 2006 17:18:25 -0000 1.2701 +++ ChangeLog 26 Jul 2006 20:30:54 -0000 1.2702 @@ -1,3 +1,9 @@ +2006-07-26 Stefan Kost <en...@us...> + + * gst/gstregistry.c: + Move big documentation comment into class section header, so that it + appears in the API docs. 2006-07-26 Jan Schmidt <th...@ma...> * docs/gst/gstreamer-sections.txt: Index: gstregistry.c RCS file: /cvs/gstreamer/gstreamer/gst/gstregistry.c,v retrieving revision 1.60 retrieving revision 1.61 diff -u -d -r1.60 -r1.61 --- gstregistry.c 12 Jun 2006 09:17:44 -0000 1.60 +++ gstregistry.c 26 Jul 2006 20:30:55 -0000 1.61 @@ -28,42 +28,14 @@ * * One registry holds the metadata of a set of plugins. * All registries build the #GstRegistryPool. - */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif -#include "gst_private.h" -#include <glib.h> -#include <sys/types.h> -#include <sys/stat.h> -#ifdef HAVE_UNISTD_H -#include <unistd.h> -#include <errno.h> -#include <stdio.h> -#include <string.h> -#include "gstinfo.h" -#include "gstregistry.h" -#include "gstmarshal.h" -#include "gstfilter.h" -#define GST_CAT_DEFAULT GST_CAT_REGISTRY -/* the one instance of the default registry and the mutex protecting the - * variable. */ -static GStaticMutex _gst_registry_mutex = G_STATIC_MUTEX_INIT; -static GstRegistry *_gst_registry_default = NULL; -/* - * Design: + * + * <emphasis role="bold">Design:</emphasis> - * The GstRegistry object is a list of plugins and some functions for dealing - * with them. Plugins are matched 1-1 with a file on disk, and may or may not be - * loaded at a given time. There may be multiple GstRegistry objects, but the - * "default registry" is the only object that has any meaning to the core. + * The #GstRegistry object is a list of plugins and some functions for dealing + * with them. #GstPlugins are matched 1-1 with a file on disk, and may or may + * not be loaded at a given time. There may be multiple #GstRegistry objects, + * but the "default registry" is the only object that has any meaning to the + * core. * The registry.xml file is actually a cache of plugin information. This is * unlike versions prior to 0.10, where the registry file was the primary source @@ -77,17 +49,24 @@ * consuming process, so we cache information in the registry.xml file. * On startup, plugins are searched for in the plugin search path. This path can - * be set directly using the GST_PLUGIN_PATH environment variable. The registry + * be set directly using the %GST_PLUGIN_PATH environment variable. The registry * file is loaded from ~/.gstreamer-$GST_MAJORMINOR/registry-$ARCH.xml or the - * file listed in the GST_REGISTRY env var. The only reason to change the + * file listed in the %GST_REGISTRY env var. The only reason to change the * registry location is for testing. * For each plugin that is found in the plugin search path, there could be 3 * possibilities for cached information: - * - * - the cache may not contain information about a given file. - * - the cache may have stale information. - * - the cache may have current information. + * <itemizedlist> + * <listitem> + * <para>the cache may not contain information about a given file.</para> + * </listitem> + * <para>the cache may have stale information.</para> + * <para>the cache may have current information.</para> + * </itemizedlist> * In the first two cases, the plugin is loaded and the cache updated. In * addition to these cases, the cache may have entries for plugins that are not @@ -99,16 +78,42 @@ * checked to make sure the information is minimally valid. If not, the entry is * simply dropped. - * Implementation notes: + * <emphasis role="bold">Implementation notes:</emphasis> * The "cache" and "default registry" are different concepts and can represent * different sets of plugins. For various reasons, at init time, the cache is * stored in the default registry, and plugins not relevant to the current - * process are marked with the GST_PLUGIN_FLAG_CACHED bit. These plugins are + * process are marked with the %GST_PLUGIN_FLAG_CACHED bit. These plugins are * removed at the end of intitialization. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif +#include "gst_private.h" +#include <glib.h> +#include <sys/types.h> +#include <sys/stat.h> +#ifdef HAVE_UNISTD_H +#include <unistd.h> +#include <errno.h> +#include <stdio.h> +#include <string.h> +#include "gstinfo.h" +#include "gstregistry.h" +#include "gstmarshal.h" +#include "gstfilter.h" +#define GST_CAT_DEFAULT GST_CAT_REGISTRY +/* the one instance of the default registry and the mutex protecting the + * variable. */ +static GStaticMutex _gst_registry_mutex = G_STATIC_MUTEX_INIT; +static GstRegistry *_gst_registry_default = NULL; /* Element signals and args */ enum { |
From: <en...@ke...> - 2006-08-20 14:30:33
|
CVS Root: /cvs/gstreamer Module: gstreamer Changes by: ensonic Date: Sun Aug 20 2006 14:30:32 UTC Log message: * gst/gstvalue.c: (gst_value_compare_list), (gst_value_compare_fraction_range), (gst_value_intersect_fraction_fraction_range), (gst_value_intersect_fraction_range_fraction_range), (gst_value_subtract_fraction_fraction_range), (gst_value_subtract_fraction_range_fraction_range), (gst_value_get_compare_func), (gst_value_compare), (gst_value_compare_with_func): * gst/gstvalue.h: Saves the expensive lookup of the compare function in many cases (#345444) Modified files: . : ChangeLog gst : gstvalue.c gstvalue.h Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/ChangeLog.diff?r1=1.2756&r2=1.2757 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstvalue.c.diff?r1=1.122&r2=1.123 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstvalue.h.diff?r1=1.44&r2=1.45 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gstreamer/ChangeLog,v retrieving revision 1.2756 retrieving revision 1.2757 diff -u -d -r1.2756 -r1.2757 --- ChangeLog 18 Aug 2006 13:41:01 -0000 1.2756 +++ ChangeLog 20 Aug 2006 14:30:20 -0000 1.2757 @@ -1,3 +1,17 @@ +2006-08-20 Stefan Kost <en...@us...> + + * gst/gstvalue.c: (gst_value_compare_list), + (gst_value_compare_fraction_range), + (gst_value_intersect_fraction_fraction_range), + (gst_value_intersect_fraction_range_fraction_range), + (gst_value_subtract_fraction_fraction_range), + (gst_value_subtract_fraction_range_fraction_range), + (gst_value_get_compare_func), (gst_value_compare), + (gst_value_compare_with_func): + * gst/gstvalue.h: + Saves the expensive lookup of the compare function in many cases + (#345444) 2006-08-18 Edward Hervey <ed...@fl...> * tests/check/gst/gstinfo.c: (gst_info_suite): Index: gstvalue.c RCS file: /cvs/gstreamer/gstreamer/gst/gstvalue.c,v retrieving revision 1.122 retrieving revision 1.123 diff -u -d -r1.122 -r1.123 --- gstvalue.c 31 Jul 2006 16:34:41 -0000 1.122 +++ gstvalue.c 20 Aug 2006 14:30:20 -0000 1.123 @@ -467,6 +467,7 @@ GValue *v2; gint len, to_remove; guint8 *removed; + GstValueCompareFunc compare; /* get length and do initial length check. */ len = array1->len; @@ -482,21 +483,24 @@ * item in array2, remove it from array2 by marking it as removed */ for (i = 0; i < len; i++) { v1 = &g_array_index (array1, GValue, i); - for (j = 0; j < len; j++) { - /* item is removed, we can skip it */ - if (removed[j]) - continue; - v2 = &g_array_index (array2, GValue, j); - if (gst_value_compare (v1, v2) == GST_VALUE_EQUAL) { - /* mark item as removed now that we found it in array2 and - * decrement the number of remaining items in array2. */ - removed[j] = 1; - to_remove--; - break; + if ((compare = gst_value_get_compare_func (v1))) { + for (j = 0; j < len; j++) { + /* item is removed, we can skip it */ + if (removed[j]) + continue; + v2 = &g_array_index (array2, GValue, j); + if (gst_value_compare_with_func (v1, v2, compare) == GST_VALUE_EQUAL) { + /* mark item as removed now that we found it in array2 and + * decrement the number of remaining items in array2. */ + removed[j] = 1; + to_remove--; + break; + } } - } - /* item in array1 and not in array2, UNORDERED */ - if (j == len) + /* item in array1 and not in array2, UNORDERED */ + if (j == len) + return GST_VALUE_UNORDERED; + } else return GST_VALUE_UNORDERED; } /* if not all items were removed, array2 contained something not in array1 */ @@ -1195,6 +1199,7 @@ gst_value_compare_fraction_range (const GValue * value1, const GValue * value2) { GValue *vals1, *vals2; if (value2->data[0].v_pointer == value1->data[0].v_pointer) return GST_VALUE_EQUAL; /* Only possible if both are NULL */ @@ -1204,10 +1209,13 @@ vals1 = (GValue *) value1->data[0].v_pointer; vals2 = (GValue *) value2->data[0].v_pointer; - if (gst_value_compare (&vals1[0], &vals2[0]) == GST_VALUE_EQUAL && - gst_value_compare (&vals1[1], &vals2[1]) == GST_VALUE_EQUAL) - return GST_VALUE_EQUAL; - + if ((compare = gst_value_get_compare_func (&vals1[0]))) { + if (gst_value_compare_with_func (&vals1[0], &vals2[0], compare) == + GST_VALUE_EQUAL && + gst_value_compare_with_func (&vals1[1], &vals2[1], compare) == + GST_VALUE_EQUAL) + return GST_VALUE_EQUAL; + } return GST_VALUE_UNORDERED; } @@ -2216,19 +2224,22 @@ int res1, res2; GValue *vals; vals = src2->data[0].v_pointer; if (vals == NULL) return FALSE; - res1 = gst_value_compare (&vals[0], src1); - res2 = gst_value_compare (&vals[1], src1); + if ((compare = gst_value_get_compare_func (src1))) { + res1 = gst_value_compare_with_func (&vals[0], src1, compare); + res2 = gst_value_compare_with_func (&vals[1], src1, compare); - if ((res1 == GST_VALUE_EQUAL || res1 == GST_VALUE_LESS_THAN) && - (res2 == GST_VALUE_EQUAL || res2 == GST_VALUE_GREATER_THAN)) { - gst_value_init_and_copy (dest, src1); - return TRUE; + if ((res1 == GST_VALUE_EQUAL || res1 == GST_VALUE_LESS_THAN) && + (res2 == GST_VALUE_EQUAL || res2 == GST_VALUE_GREATER_THAN)) { + gst_value_init_and_copy (dest, src1); + return TRUE; + } return FALSE; @@ -2242,39 +2253,42 @@ GValue *max; int res; vals1 = src1->data[0].v_pointer; vals2 = src2->data[0].v_pointer; g_return_val_if_fail (vals1 != NULL && vals2 != NULL, FALSE); - /* min = MAX (src1.start, src2.start) */ - res = gst_value_compare (&vals1[0], &vals2[0]); - g_return_val_if_fail (res != GST_VALUE_UNORDERED, FALSE); - if (res == GST_VALUE_LESS_THAN) - min = &vals2[0]; /* Take the max of the 2 */ - else - min = &vals1[0]; + /* min = MAX (src1.start, src2.start) */ + res = gst_value_compare_with_func (&vals1[0], &vals2[0], compare); + g_return_val_if_fail (res != GST_VALUE_UNORDERED, FALSE); + if (res == GST_VALUE_LESS_THAN) + min = &vals2[0]; /* Take the max of the 2 */ + else + min = &vals1[0]; - /* max = MIN (src1.end, src2.end) */ - res = gst_value_compare (&vals1[1], &vals2[1]); - if (res == GST_VALUE_GREATER_THAN) - max = &vals2[1]; /* Take the min of the 2 */ - max = &vals1[1]; + /* max = MIN (src1.end, src2.end) */ + res = gst_value_compare_with_func (&vals1[1], &vals2[1], compare); + if (res == GST_VALUE_GREATER_THAN) + max = &vals2[1]; /* Take the min of the 2 */ + max = &vals1[1]; - res = gst_value_compare (min, max); - if (res == GST_VALUE_LESS_THAN) { - g_value_init (dest, GST_TYPE_FRACTION_RANGE); - vals1 = dest->data[0].v_pointer; - g_value_copy (min, &vals1[0]); - g_value_copy (max, &vals1[1]); - } - if (res == GST_VALUE_EQUAL) { - gst_value_init_and_copy (dest, min); + res = gst_value_compare_with_func (min, max, compare); + if (res == GST_VALUE_LESS_THAN) { + g_value_init (dest, GST_TYPE_FRACTION_RANGE); + vals1 = dest->data[0].v_pointer; + g_value_copy (min, &vals1[0]); + g_value_copy (max, &vals1[1]); + if (res == GST_VALUE_EQUAL) { + gst_value_init_and_copy (dest, min); @@ -2543,14 +2557,19 @@ const GValue *min = gst_value_get_fraction_range_min (subtrahend); const GValue *max = gst_value_get_fraction_range_max (subtrahend); - /* subtracting a range from an fraction only works if the fraction - * is not in the range */ - if (gst_value_compare (minuend, min) == GST_VALUE_LESS_THAN || - gst_value_compare (minuend, max) == GST_VALUE_GREATER_THAN) { - /* and the result is the value */ - gst_value_init_and_copy (dest, minuend); + if ((compare = gst_value_get_compare_func (minuend))) { + /* subtracting a range from an fraction only works if the fraction + * is not in the range */ + if (gst_value_compare_with_func (minuend, min, compare) == + GST_VALUE_LESS_THAN || + gst_value_compare_with_func (minuend, max, compare) == + GST_VALUE_GREATER_THAN) { + /* and the result is the value */ + gst_value_init_and_copy (dest, minuend); @@ -2579,21 +2598,25 @@ GValue v1 = { 0, }; GValue v2 = { 0, }; GValue *pv1, *pv2; /* yeah, hungarian! */ g_return_val_if_fail (min1 != NULL && max1 != NULL, FALSE); g_return_val_if_fail (min2 != NULL && max2 != NULL, FALSE); - cmp1 = gst_value_compare (max2, max1); + compare = gst_value_get_compare_func (min1); + g_return_val_if_fail (compare, FALSE); + cmp1 = gst_value_compare_with_func (max2, max1, compare); g_return_val_if_fail (cmp1 != GST_VALUE_UNORDERED, FALSE); if (cmp1 == GST_VALUE_LESS_THAN) max1 = max2; - cmp1 = gst_value_compare (min1, min2); + cmp1 = gst_value_compare_with_func (min1, min2, compare); if (cmp1 == GST_VALUE_GREATER_THAN) min2 = min1; - cmp1 = gst_value_compare (min1, max1); - cmp2 = gst_value_compare (min2, max2); + cmp1 = gst_value_compare_with_func (min1, max1, compare); + cmp2 = gst_value_compare_with_func (min2, max2, compare); if (cmp1 == GST_VALUE_LESS_THAN && cmp2 == GST_VALUE_LESS_THAN) { pv1 = &v1; @@ -2658,27 +2681,20 @@ /** - * gst_value_compare: - * @value1: a value to compare - * @value2: another value to compare + * gst_value_get_compare_func: + * @value1: a value to get the compare function for * - * Compares @value1 and @value2. If @value1 and @value2 cannot be - * compared, the function returns GST_VALUE_UNORDERED. Otherwise, - * if @value1 is greater than @value2, GST_VALUE_GREATER is returned. - * If @value1 is less than @value2, GST_VALUE_LESSER is returned. - * If the values are equal, GST_VALUE_EQUAL is returned. + * Determines the compare function to be used with values of the same type as + * @value1. The function can be given to gst_value_compare_with_func(). - * Returns: A GstValueCompareType value + * Returns: A #GstValueCompareFunc value */ -int -gst_value_compare (const GValue * value1, const GValue * value2) +GstValueCompareFunc +gst_value_get_compare_func (const GValue * value1) GstValueTable *table, *best = NULL; guint i; - if (G_VALUE_TYPE (value1) != G_VALUE_TYPE (value2)) - return GST_VALUE_UNORDERED; for (i = 0; i < gst_value_table->len; i++) { table = &g_array_index (gst_value_table, GstValueTable, i); if (table->type == G_VALUE_TYPE (value1) && table->compare != NULL) { @@ -2691,7 +2707,35 @@ } if (best) { - return best->compare (value1, value2); + return best->compare; + return NULL; +} +/** + * gst_value_compare: + * @value1: a value to compare + * @value2: another value to compare + * + * Compares @value1 and @value2. If @value1 and @value2 cannot be + * compared, the function returns GST_VALUE_UNORDERED. Otherwise, + * if @value1 is greater than @value2, GST_VALUE_GREATER is returned. + * If @value1 is less than @value2, GST_VALUE_LESSER is returned. + * If the values are equal, GST_VALUE_EQUAL is returned. + * Returns: A #GstValueCompareType value + */ +gint +gst_value_compare (const GValue * value1, const GValue * value2) +{ + if (G_VALUE_TYPE (value1) != G_VALUE_TYPE (value2)) + return GST_VALUE_UNORDERED; + compare = gst_value_get_compare_func (value1); + if (compare) { + return compare (value1, value2); g_critical ("unable to compare values of type %s\n", @@ -2699,6 +2743,30 @@ + * gst_value_compare_with_func: + * @compare: compare function + * Compares @value1 and @value2 using the @compare function. Works like + * gst_value_compare() but allows to save time determining the compare function + * a multiple times. +gst_value_compare_with_func (const GValue * value1, const GValue * value2, + GstValueCompareFunc compare) + g_assert (compare); + return compare (value1, value2); /* union */ Index: gstvalue.h RCS file: /cvs/gstreamer/gstreamer/gst/gstvalue.h,v retrieving revision 1.44 retrieving revision 1.45 diff -u -d -r1.44 -r1.45 --- gstvalue.h 14 Aug 2006 12:35:06 -0000 1.44 +++ gstvalue.h 20 Aug 2006 14:30:20 -0000 1.45 @@ -485,7 +485,11 @@ const GValue *value2); gboolean gst_value_can_compare (const GValue *value1, +GstValueCompareFunc gst_value_get_compare_func (const GValue * value1); +gint gst_value_compare_with_func (const GValue * value1, + const GValue * value2, + GstValueCompareFunc compare); + gboolean gst_value_union (GValue *dest, const GValue *value1, |
From: <en...@ke...> - 2006-08-20 15:55:25
|
CVS Root: /cvs/gstreamer Module: gstreamer Changes by: ensonic Date: Sun Aug 20 2006 15:55:24 UTC Log message: * gst/gstvalue.c: * gst/gstvalue.h: Use these optimizations only internaly. Modified files: . : ChangeLog gst : gstvalue.c gstvalue.h Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/ChangeLog.diff?r1=1.2757&r2=1.2758 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstvalue.c.diff?r1=1.123&r2=1.124 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstvalue.h.diff?r1=1.45&r2=1.46 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gstreamer/ChangeLog,v retrieving revision 1.2757 retrieving revision 1.2758 diff -u -d -r1.2757 -r1.2758 --- ChangeLog 20 Aug 2006 14:30:20 -0000 1.2757 +++ ChangeLog 20 Aug 2006 15:55:12 -0000 1.2758 @@ -1,5 +1,11 @@ 2006-08-20 Stefan Kost <en...@us...> + * gst/gstvalue.c: + * gst/gstvalue.h: + Use these optimizations only internaly. + +2006-08-20 Stefan Kost <en...@us...> * gst/gstvalue.c: (gst_value_compare_list), (gst_value_compare_fraction_range), (gst_value_intersect_fraction_fraction_range), @@ -9,8 +15,8 @@ (gst_value_get_compare_func), (gst_value_compare), (gst_value_compare_with_func): * gst/gstvalue.h: - Saves the expensive lookup of the compare function in many cases - (#345444) + Saves the expensive lookup of the compare function in many cases + (#345444) 2006-08-18 Edward Hervey <ed...@fl...> Index: gstvalue.c RCS file: /cvs/gstreamer/gstreamer/gst/gstvalue.c,v retrieving revision 1.123 retrieving revision 1.124 diff -u -d -r1.123 -r1.124 --- gstvalue.c 20 Aug 2006 14:30:20 -0000 1.123 +++ gstvalue.c 20 Aug 2006 15:55:12 -0000 1.124 @@ -82,6 +82,10 @@ static gint gst_greatest_common_divisor (gint a, gint b); static gchar *gst_value_serialize_fraction (const GValue * value); +static GstValueCompareFunc gst_value_get_compare_func (const GValue * value1); +static gint gst_value_compare_with_func (const GValue * value1, + const GValue * value2, GstValueCompareFunc compare); /******** * list * ********/ @@ -2680,7 +2684,7 @@ return FALSE; } -/** +/* * gst_value_get_compare_func: * @value1: a value to get the compare function for * @@ -2689,7 +2693,7 @@ * Returns: A #GstValueCompareFunc value */ -GstValueCompareFunc +static GstValueCompareFunc gst_value_get_compare_func (const GValue * value1) { GstValueTable *table, *best = NULL; @@ -2743,7 +2747,7 @@ return GST_VALUE_UNORDERED; * gst_value_compare_with_func: * @value1: a value to compare * @value2: another value to compare @@ -2755,7 +2759,7 @@ * Returns: A #GstValueCompareType value -gint +static gint gst_value_compare_with_func (const GValue * value1, const GValue * value2, GstValueCompareFunc compare) Index: gstvalue.h RCS file: /cvs/gstreamer/gstreamer/gst/gstvalue.h,v retrieving revision 1.45 retrieving revision 1.46 diff -u -d -r1.45 -r1.46 --- gstvalue.h 20 Aug 2006 14:30:20 -0000 1.45 +++ gstvalue.h 20 Aug 2006 15:55:12 -0000 1.46 @@ -485,11 +485,6 @@ const GValue *value2); gboolean gst_value_can_compare (const GValue *value1, -GstValueCompareFunc gst_value_get_compare_func (const GValue * value1); -gint gst_value_compare_with_func (const GValue * value1, - const GValue * value2, - GstValueCompareFunc compare); - /* union */ gboolean gst_value_union (GValue *dest, const GValue *value1, |
From: <en...@ke...> - 2006-09-15 21:30:13
|
CVS Root: /cvs/gstreamer Module: gstreamer Changes by: ensonic Date: Fri Sep 15 2006 21:30:12 UTC Log message: * gst/gsterror.c: Documents how to receive errors. Modified files: . : ChangeLog gst : gsterror.c Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/ChangeLog.diff?r1=1.2805&r2=1.2806 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gsterror.c.diff?r1=1.30&r2=1.31 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gstreamer/ChangeLog,v retrieving revision 1.2805 retrieving revision 1.2806 diff -u -d -r1.2805 -r1.2806 --- ChangeLog 15 Sep 2006 10:43:15 -0000 1.2805 +++ ChangeLog 15 Sep 2006 21:30:00 -0000 1.2806 @@ -1,3 +1,8 @@ +2006-09-16 Stefan Kost <en...@us...> + + * gst/gsterror.c: + Documents how to receive errors. 2006-09-15 Wim Taymans <wi...@fl...> * tools/gst-launch.c: (sigint_handler_sighandler), (check_intr), Index: gsterror.c RCS file: /cvs/gstreamer/gstreamer/gst/gsterror.c,v retrieving revision 1.30 retrieving revision 1.31 diff -u -d -r1.30 -r1.31 --- gsterror.c 2 Sep 2006 13:40:41 -0000 1.30 +++ gsterror.c 15 Sep 2006 21:30:00 -0000 1.31 @@ -44,7 +44,9 @@ * processing. In short, an element doesn't know what it is being used for. * * It is the application or compound element using the given element that - * has more context about the use of the element. The thrown errors should + * has more context about the use of the element. Errors can be received by + * listening to the #GstBus of the element/pipeline for #GstMessage objects with + * the type %GST_MESSAGE_ERROR or %GST_MESSAGE_WARNING. The thrown errors should * be inspected, and filtered if appropriate. * An application is expected to, by default, present the user with a @@ -92,6 +94,8 @@ * passed. #GST_ERROR_SYSTEM can be used as a shortcut to give * debug information on a system call error.</para></listitem> * </itemizedlist> + * + * Last reviewed on 2006-09-15 (0.10.10) */ #ifdef HAVE_CONFIG_H |
From: <en...@ke...> - 2006-10-18 08:54:43
|
CVS Root: /cvs/gstreamer Module: gstreamer Changes by: ensonic Date: Wed Oct 18 2006 08:54:42 UTC Log message: * gst/gstvalue.c: (gst_value_set_date), (gst_date_copy): check for validity of dates Modified files: . : ChangeLog gst : gstvalue.c Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/ChangeLog.diff?r1=1.2883&r2=1.2884 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstvalue.c.diff?r1=1.125&r2=1.126 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gstreamer/ChangeLog,v retrieving revision 1.2883 retrieving revision 1.2884 diff -u -d -r1.2883 -r1.2884 --- ChangeLog 17 Oct 2006 12:09:35 -0000 1.2883 +++ ChangeLog 18 Oct 2006 08:54:29 -0000 1.2884 @@ -1,3 +1,8 @@ +2006-10-18 Stefan Kost <en...@us...> + + * gst/gstvalue.c: (gst_value_set_date), (gst_date_copy): + check for validity of dates 2006-10-17 Tim-Philipp Müller <tim at centricular dot net> * docs/gst/gstreamer-sections.txt: Index: gstvalue.c RCS file: /cvs/gstreamer/gstreamer/gst/gstvalue.c,v retrieving revision 1.125 retrieving revision 1.126 diff -u -d -r1.125 -r1.126 --- gstvalue.c 17 Sep 2006 19:26:16 -0000 1.125 +++ gstvalue.c 18 Oct 2006 08:54:30 -0000 1.126 @@ -3726,6 +3726,7 @@ gst_value_set_date (GValue * value, const GDate * date) { g_return_if_fail (G_VALUE_TYPE (value) == GST_TYPE_DATE); + g_return_if_fail (g_date_valid (date)); g_value_set_boxed (value, date); } @@ -3751,6 +3752,11 @@ const GDate *date = (const GDate *) boxed; + if (!g_date_valid (date)) { + GST_WARNING ("invalid GDate"); + return NULL; + } return g_date_new_julian (g_date_get_julian (date)); |
From: <en...@ke...> - 2006-11-06 15:19:17
|
CVS Root: /cvs/gstreamer Module: gstreamer Changes by: ensonic Date: Mon Nov 06 2006 15:19:09 UTC Log message: * gst/gstpad.c: (gst_pad_event_default_dispatch), (gst_pad_push_event): Enhance debug and improve docs * gst/gsturi.c: Fix docs Modified files: . : ChangeLog gst : gstpad.c gsturi.c Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/ChangeLog.diff?r1=1.2912&r2=1.2913 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstpad.c.diff?r1=1.533&r2=1.534 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gsturi.c.diff?r1=1.35&r2=1.36 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gstreamer/ChangeLog,v retrieving revision 1.2912 retrieving revision 1.2913 diff -u -d -r1.2912 -r1.2913 --- ChangeLog 6 Nov 2006 15:17:35 -0000 1.2912 +++ ChangeLog 6 Nov 2006 15:18:56 -0000 1.2913 @@ -1,5 +1,14 @@ 2006-11-06 Stefan Kost <en...@us...> + * gst/gstpad.c: (gst_pad_event_default_dispatch), + (gst_pad_push_event): + Enhance debug and improve docs + + * gst/gsturi.c: + Fix docs + +2006-11-06 Stefan Kost <en...@us...> * docs/random/ensonic/distributed.txt: * docs/random/ensonic/profiling.txt: more ideas Index: gstpad.c RCS file: /cvs/gstreamer/gstreamer/gst/gstpad.c,v retrieving revision 1.533 retrieving revision 1.534 diff -u -d -r1.533 -r1.534 --- gstpad.c 3 Nov 2006 13:57:28 -0000 1.533 +++ gstpad.c 6 Nov 2006 15:18:56 -0000 1.534 @@ -2874,8 +2874,8 @@ GList *orig, *pads; gboolean result; - GST_INFO_OBJECT (pad, "Sending event %p to all internally linked pads", - event); + GST_INFO_OBJECT (pad, "Sending event %p (%s) to all internally linked pads", + event, GST_EVENT_TYPE_NAME (event)); result = (GST_PAD_DIRECTION (pad) == GST_PAD_SINK); @@ -3929,13 +3929,15 @@ if (peerpad == NULL) goto not_linked; - GST_LOG_OBJECT (pad, "sending event to peerpad %" GST_PTR_FORMAT, peerpad); + GST_LOG_OBJECT (pad, "sending event %s to peerpad %" GST_PTR_FORMAT, + GST_EVENT_TYPE_NAME (event), peerpad); gst_object_ref (peerpad); GST_OBJECT_UNLOCK (pad); result = gst_pad_send_event (peerpad, event); - GST_LOG_OBJECT (pad, "sent event to peerpad %" GST_PTR_FORMAT, peerpad); + GST_LOG_OBJECT (pad, "sent event %s to peerpad %" GST_PTR_FORMAT, gst_object_unref (peerpad); return result; @@ -4162,10 +4164,10 @@ * * Starts a task that repeadedly calls @func with @data. This function * is nostly used in the pad activation function to start the - * dataflow. This function will automatically acquire the STREAM_LOCK of - * the pad before calling @func. + * dataflow. This function will automatically acquire the #GST_PAD_STREAM_LOCK + * of the pad before calling @func. - * Returns: a TRUE if the task could be started. + * Returns: a %TRUE if the task could be started. */ gboolean gst_pad_start_task (GstPad * pad, GstTaskFunction func, gpointer data) Index: gsturi.c RCS file: /cvs/gstreamer/gstreamer/gst/gsturi.c,v retrieving revision 1.35 retrieving revision 1.36 diff -u -d -r1.35 -r1.36 --- gsturi.c 25 Sep 2006 11:16:37 -0000 1.35 +++ gsturi.c 6 Nov 2006 15:18:57 -0000 1.36 @@ -377,7 +377,9 @@ * @uri: an URI string * @protocol: a protocol string (e.g. "http") - * Returns TRUE if the protocol of a given valid URI matches @protocol. + * Checks if the protocol of a given valid URI matches @protocol. + * + * Returns: %TRUE if the protocol matches. * Since: 0.10.4 |
From: <en...@ke...> - 2007-01-15 12:19:11
|
CVS Root: /cvs/gstreamer Module: gstreamer Changes by: ensonic Date: Mon Jan 15 2007 12:18:58 UTC Log message: * gst/gstregistrybinary.c: (gst_registry_binary_write), (gst_registry_binary_initialize_magic), (gst_registry_binary_save_string), (gst_registry_binary_make_data), (gst_registry_binary_save_pad_template), (gst_registry_binary_save_feature), (gst_registry_binary_save_plugin), (gst_registry_binary_write_cache), (gst_registry_binary_check_magic), (gst_registry_binary_load_pad_template), (gst_registry_binary_load_feature), (gst_registry_binary_load_plugin), (gst_registry_binary_read_cache): * gst/gstregistrybinary.h: use glib types, cleanup comments, impement interfaces and uri-types Modified files: . : ChangeLog gst : gstregistrybinary.c gstregistrybinary.h Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/ChangeLog.diff?r1=1.3010&r2=1.3011 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstregistrybinary.c.diff?r1=1.1&r2=1.2 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstregistrybinary.h.diff?r1=1.1&r2=1.2 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gstreamer/ChangeLog,v retrieving revision 1.3010 retrieving revision 1.3011 diff -u -d -r1.3010 -r1.3011 --- ChangeLog 13 Jan 2007 10:33:41 -0000 1.3010 +++ ChangeLog 15 Jan 2007 12:18:46 -0000 1.3011 @@ -1,3 +1,20 @@ +2007-01-15 Stefan Kost <en...@us...> + + * gst/gstregistrybinary.c: (gst_registry_binary_write), + (gst_registry_binary_initialize_magic), + (gst_registry_binary_save_string), (gst_registry_binary_make_data), + (gst_registry_binary_save_pad_template), + (gst_registry_binary_save_feature), + (gst_registry_binary_save_plugin), + (gst_registry_binary_write_cache), + (gst_registry_binary_check_magic), + (gst_registry_binary_load_pad_template), + (gst_registry_binary_load_feature), + (gst_registry_binary_load_plugin), + (gst_registry_binary_read_cache): + * gst/gstregistrybinary.h: + use glib types, cleanup comments, impement interfaces and uri-types 2007-01-13 Andy Wingo <wi...@po...> * gst/gstpad.c (gst_pad_get_range, gst_pad_pull_range): Allow Index: gstregistrybinary.c RCS file: /cvs/gstreamer/gstreamer/gst/gstregistrybinary.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- gstregistrybinary.c 11 Jan 2007 13:45:51 -0000 1.1 +++ gstregistrybinary.c 15 Jan 2007 12:18:46 -0000 1.2 @@ -23,11 +23,13 @@ /* FIXME: * - Add random key to libgstreamer during build and only accept registry, - * if key matches + * if key matches (or is the version check enough) * - handle cases where we can't mmap * - keep registry binary blob and reference strings * (need const flags in GstPlugin, etc.) * - why do we collect a list of binary chunks and not write immediately + * - because we need to process subchunks, before we can set e.g. nr_of_items + * in parnt chunk * - need more robustness * - don't parse beyond mem-block size * - include md5-sum ? @@ -131,6 +133,26 @@ } /* + * gst_registry_binary_save_data: + * + * Store some data in a binary chunk. + * Returns: the initialized chunk + */ +inline static GstBinaryChunk * +gst_registry_binary_make_data (gpointer data, gulong size) +{ + GstBinaryChunk *chunk; + chunk = g_malloc (sizeof (GstBinaryChunk)); + chunk->data = data; + chunk->size = size; + chunk->flags = GST_BINARY_REGISTRY_FLAG_NONE; + chunk->align = TRUE; + return chunk; +} +/* * gst_registry_binary_save_pad_template: * * Store pad_templates in binary chunks. @@ -145,12 +167,7 @@ GstBinaryChunk *chk; pt = g_malloc (sizeof (GstBinaryPadTemplate)); - chk = g_malloc (sizeof (GstBinaryChunk)); - - chk->data = pt; - chk->size = sizeof (GstBinaryPadTemplate); - chk->flags = GST_BINARY_REGISTRY_FLAG_NONE; - chk->align = TRUE; + chk = gst_registry_binary_make_data (pt, sizeof (GstBinaryPadTemplate)); pt->presence = template->presence; pt->direction = template->direction; @@ -186,19 +203,44 @@ } pf = g_malloc (sizeof (GstBinaryPluginFeature)); - chk->data = pf; - chk->size = sizeof (GstBinaryPluginFeature); + chk = gst_registry_binary_make_data (pf, sizeof (GstBinaryPluginFeature)); pf->rank = feature->rank; - pf->npadtemplates = pf->ninterfaces = pf->nuritypes = 0; + pf->npadtemplates = pf->ninterfaces = pf->nuriprotocols = 0; if (GST_IS_ELEMENT_FACTORY (feature)) { GstElementFactory *factory = GST_ELEMENT_FACTORY (feature); + /* save interfaces */ + for (walk = factory->interfaces; walk; + walk = g_list_next (walk), pf->ninterfaces++) { + gst_registry_binary_save_string (list, (gchar *) walk->data); + } + GST_DEBUG ("Saved %d Interfaces", pf->ninterfaces); + /* save uritypes */ + if (GST_URI_TYPE_IS_VALID (factory->uri_type)) { + if (factory->uri_protocols) { + GstBinaryChunk *subchk; + gchar **protocol; + subchk = + gst_registry_binary_make_data (&factory->uri_type, + sizeof (factory->uri_type)); + subchk->flags = GST_BINARY_REGISTRY_FLAG_CONST; + protocol = factory->uri_protocols; + while (*protocol) { + gst_registry_binary_save_string (list, *protocol++); + pf->nuriprotocols++; + } + *list = g_list_prepend (*list, subchk); + GST_DEBUG ("Saved %d UriTypes", pf->nuriprotocols); + } else { + g_warning ("GStreamer feature '%s' is URI handler but does not provide" + " any protocols it can handle", feature->name); + } /* save pad-templates */ for (walk = factory->staticpadtemplates; walk; walk = g_list_next (walk), pf->npadtemplates++) { @@ -215,15 +257,20 @@ gst_registry_binary_save_string (list, factory->details.description); gst_registry_binary_save_string (list, factory->details.klass); gst_registry_binary_save_string (list, factory->details.longname); + } else if (GST_IS_TYPE_FIND_FACTORY (feature)) { + /* FIXME: save typefind */ +#ifndef GST_DISABLE_INDEX + else if (GST_IS_INDEX_FACTORY (feature)) { + /* FIXME: save indexers */ + } +#endif /* pack plugin feature strings */ gst_registry_binary_save_string (list, feature->name); gst_registry_binary_save_string (list, (gchar *) type_name); *list = g_list_prepend (*list, chk); - /* FIXME: save interfaces and uritypes */ return TRUE; /* Errors */ @@ -249,12 +296,7 @@ GList *walk; pe = g_malloc (sizeof (GstBinaryPluginElement)); - chk->data = pe; - chk->size = sizeof (GstBinaryPluginElement); + chk = gst_registry_binary_make_data (pe, sizeof (GstBinaryPluginElement)); pe->file_size = plugin->file_size; pe->file_mtime = plugin->file_mtime; @@ -502,7 +544,7 @@ { GstBinaryPluginFeature *pf; GstPluginFeature *feature; - gchar *type_name; + gchar *type_name = NULL, *str; GType type; guint i; @@ -557,26 +599,47 @@ goto fail; } } - } - gst_registry_add_feature (registry, feature); - GST_DEBUG ("Added feature %s", feature->name); + /* load uritypes */ + if (pf->nuriprotocols) { + GST_DEBUG ("Reading %d UriTypes at address %p", pf->nuriprotocols, *in); - /* FIXME: handle interfaces and uritypes */ -#if 0 - for (i = 0; i < pf->ninterfaces; i++) { - // read string - __gst_element_factory_add_interface (factory, s); + align32 (*in); + factory->uri_type = *((guint *) * in); + *in += sizeof (factory->uri_type); + //unpack_element(*in, &factory->uri_type, factory->uri_type); + factory->uri_protocols = g_new0 (gchar *, pf->nuriprotocols + 1); + for (i = 0; i < pf->nuriprotocols; i++) { + unpack_string (*in, str); + factory->uri_protocols[i] = str; + /* load interfaces */ + GST_DEBUG ("Reading %d Interfaces at address %p", pf->ninterfaces, *in); + for (i = 0; i < pf->ninterfaces; i++) { + unpack_string (*in, str); + __gst_element_factory_add_interface (factory, str); + g_free (str); + /* FIXME: load typefind */ - for (i = 0; i < pf->nuritypes; i++) { - add_to_char_array (&factory->uri_protocols, s); + /* FIXME: load indexers */ #endif + gst_registry_add_feature (registry, feature); + GST_DEBUG ("Added feature %s", feature->name); + g_free (type_name); fail: if (GST_IS_OBJECT (feature)) gst_object_unref (feature); else @@ -718,7 +781,6 @@ return TRUE; /* empty file, this is not an error */ for (; ((size_t) in + sizeof (GstBinaryPluginElement)) < (size_t) contents + size;) { Index: gstregistrybinary.h RCS file: /cvs/gstreamer/gstreamer/gst/gstregistrybinary.h,v --- gstregistrybinary.h 11 Jan 2007 13:45:51 -0000 1.1 +++ gstregistrybinary.h 15 Jan 2007 12:18:46 -0000 1.2 @@ -81,8 +81,8 @@ typedef struct _GstBinaryRegistryMagic - char magic[GST_MAGIC_BINARY_REGISTRY_LEN]; - char version[GST_MAGIC_BINARY_VERSION_LEN]; + gchar magic[GST_MAGIC_BINARY_REGISTRY_LEN]; + gchar version[GST_MAGIC_BINARY_VERSION_LEN]; } GstBinaryRegistryMagic; @@ -94,76 +94,67 @@ GST_BINARY_REGISTRY_FLAG_CONST = 1 }; -/* GstBinaryChunk: + * GstBinaryChunk: * Header for binary blobs */ typedef struct _GstBinaryChunk - void *data; - unsigned int size; - unsigned int flags; + gpointer data; + guint size; + guint flags; gboolean align; } GstBinaryChunk; -/* A structure containing (staticely) every information needed for a plugin -** -** Notes : -** "nfeatures" is used to say how many GstBinaryPluginFeature structures we will have -** right after the structure itself. -*/ + * GstBinaryPluginElement: + * @nfeatures: says how many GstBinaryPluginFeature structures we will have + * right after the structure itself. + * A structure containing (staticely) every information needed for a plugin typedef struct _GstBinaryPluginElement - unsigned long file_size; - unsigned long file_mtime; + gulong file_size; + gulong file_mtime; - unsigned int nfeatures; + guint nfeatures; } GstBinaryPluginElement; -/* A structure containing the plugin features -** Note : -** "npadtemplates" is used to store the number of GstBinaryPadTemplate structures following the structure itself. -** "ninterfaces" is used to store the number of GstBinaryInterface structures following the structure itself. -** "nuritypes" is used to store the number of GstBinaryUriType structures following the structure itself. + * GstBinaryPluginFeature: + * @npadtemplates: stores the number of GstBinaryPadTemplate structures + * following the structure + * @ninterfaces: stores the number of interface names following the structure + * @nuriprotocols: stores the number of protocol strings following the structure + * A structure containing the plugin features typedef struct _GstBinaryPluginFeature - unsigned long rank; + gulong rank; - unsigned int npadtemplates; - unsigned int ninterfaces; - unsigned int nuritypes; + guint npadtemplates; + guint ninterfaces; + guint nuriprotocols; } GstBinaryPluginFeature; -/* -** A structure containing the static pad templates of a plugin feature + * GstBinaryPadTemplate: + * A structure containing the static pad templates of a plugin feature typedef struct _GstBinaryPadTemplate - int direction; /* Either 0:"sink" or 1:"src" */ + guint direction; /* Either 0:"sink" or 1:"src" */ GstPadPresence presence; } GstBinaryPadTemplate; -/* -** A very simple structure defining the plugin feature interface string -//#define GST_BINARY_REGISTRY_INTERFACE_INTERFACE_LEN (512) -typedef struct _GstBinaryInterface -{ - //char interface[GST_BINARY_REGISTRY_INTERFACE_INTERFACE_LEN]; - unsigned long size; -} GstBinaryInterface; -/* Uri Type */ -typedef struct _GstBinaryUriType - GstURIType type; /* GST_URI_SINK / GST_URI_SRC */ - unsigned long nuriprotocols; -} GstBinaryUriType; /* Function prototypes */ gboolean gst_registry_binary_write_cache(GstRegistry *registry, const char *location); |
From: <en...@ke...> - 2007-01-15 14:49:27
|
CVS Root: /cvs/gstreamer Module: gstreamer Changes by: ensonic Date: Mon Jan 15 2007 14:40:03 UTC Log message: * gst/gsttaglist.c: (_gst_tag_initialize): Change tag type from STRING to DOUBLE. Apply ChangeLog surgery for my previous two entries. Modified files: . : ChangeLog gst : gsttaglist.c Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/ChangeLog.diff?r1=1.3012&r2=1.3013 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gsttaglist.c.diff?r1=1.52&r2=1.53 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gstreamer/ChangeLog,v retrieving revision 1.3012 retrieving revision 1.3013 diff -u -d -r1.3012 -r1.3013 --- ChangeLog 15 Jan 2007 13:57:12 -0000 1.3012 +++ ChangeLog 15 Jan 2007 14:39:51 -0000 1.3013 @@ -1,9 +1,15 @@ 2007-01-15 Stefan Kost <en...@us...> + * gst/gsttaglist.c: (_gst_tag_initialize): + Change tag type from STRING to DOUBLE. Apply ChangeLog surgery for my + previous two entries. + +2007-01-15 Stefan Kost <en...@us...> * docs/gst/gstreamer-sections.txt: * gst/gsttaglist.c: (_gst_tag_initialize): * gst/gsttaglist.h: - add tag support for beat-per-minute + Add tag support for beat-per-minute. @@ -20,7 +26,7 @@ (gst_registry_binary_load_plugin), (gst_registry_binary_read_cache): * gst/gstregistrybinary.h: - use glib types, cleanup comments, impement interfaces and uri-types + Use glib types, cleanup comments, impement interfaces and uri-types. 2007-01-13 Andy Wingo <wi...@po...> Index: gsttaglist.c RCS file: /cvs/gstreamer/gstreamer/gst/gsttaglist.c,v retrieving revision 1.52 retrieving revision 1.53 diff -u -d -r1.52 -r1.53 --- gsttaglist.c 15 Jan 2007 13:57:12 -0000 1.52 +++ gsttaglist.c 15 Jan 2007 14:39:51 -0000 1.53 @@ -213,7 +213,7 @@ _("image"), _("image related to this stream"), gst_tag_merge_use_first); gst_tag_register (GST_TAG_PREVIEW_IMAGE, GST_TAG_FLAG_META, GST_TYPE_BUFFER, _("preview image"), _("preview image related to this stream"), NULL); - gst_tag_register (GST_TAG_BEATS_PER_MINUTE, GST_TAG_FLAG_META, G_TYPE_STRING, + gst_tag_register (GST_TAG_BEATS_PER_MINUTE, GST_TAG_FLAG_META, G_TYPE_DOUBLE, _("beats per minute"), _("number of beats per minute in audio"), NULL); } |
From: <en...@ke...> - 2007-01-18 12:00:38
|
CVS Root: /cvs/gstreamer Module: gstreamer Changes by: ensonic Date: Thu Jan 18 2007 12:00:35 UTC Log message: * gst/gsttaglist.h: * gst/gsttagsetter.c: Add more docs regarding tag merge-modes and when to send tags. Fix 'since' statement for new tag. Modified files: . : ChangeLog gst : gsttaglist.h gsttagsetter.c Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/ChangeLog.diff?r1=1.3018&r2=1.3019 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gsttaglist.h.diff?r1=1.38&r2=1.39 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gsttagsetter.c.diff?r1=1.22&r2=1.23 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gstreamer/ChangeLog,v retrieving revision 1.3018 retrieving revision 1.3019 diff -u -d -r1.3018 -r1.3019 --- ChangeLog 17 Jan 2007 14:33:39 -0000 1.3018 +++ ChangeLog 18 Jan 2007 12:00:23 -0000 1.3019 @@ -1,3 +1,10 @@ +2007-01-18 Stefan Kost <en...@us...> + + * gst/gsttaglist.h: + * gst/gsttagsetter.c: + Add more docs regarding tag merge-modes and when to send tags. Fix 'since' + statement for new tag. 2007-01-17 Edward Hervey <ed...@fl...> * plugins/elements/gstmultiqueue.c: (gst_single_queue_new): Index: gsttaglist.h RCS file: /cvs/gstreamer/gstreamer/gst/gsttaglist.h,v retrieving revision 1.38 retrieving revision 1.39 diff -u -d -r1.38 -r1.39 --- gsttaglist.h 15 Jan 2007 13:57:12 -0000 1.38 +++ gsttaglist.h 18 Jan 2007 12:00:23 -0000 1.39 @@ -31,7 +31,7 @@ /** * GstTagMergeMode: * @GST_TAG_MERGE_UNDEFINED: undefined merge mode - * @GST_TAG_MERGE_REPLACE_ALL: replace all tags + * @GST_TAG_MERGE_REPLACE_ALL: replace all tags (clear list and append) * @GST_TAG_MERGE_REPLACE: replace tags * @GST_TAG_MERGE_APPEND: append tags * @GST_TAG_MERGE_PREPEND: prepend tags @@ -39,7 +39,72 @@ * @GST_TAG_MERGE_KEEP_ALL: keep all existing tags * @GST_TAG_MERGE_COUNT: the number of merge modes * - * The different tag merging modes. + * The different tag merging modes are basically replace, overwrite and append, + * but they can be seen from two directions. + * Given two taglists: A - the one that are supplied to + * gst_tag_setter_merge_tags() or gst_tag_setter_add_tags() and B - the tags + * already in the element, how are the tags merged? In the table below this is + * shown for the cases that a tag exists in the list (A) or does not exists (!A) + * and combination thereof. + * + * <table frame="all" colsep="1" rowsep="1"> + * <title>merge mode</title> + * <tgroup cols='5' align='left'> + * <thead> + * <row> + * <entry>merge mode</entry> + * <entry>A + B</entry> + * <entry>A + !B</entry> + * <entry>!A + B</entry> + * <entry>!A + !B</entry> + * </row> + * </thead> + * <tbody> + * <entry>REPLACE_ALL</entry> + * <entry>B</entry> + * <entry>-</entry> + * <entry>REPLACE</entry> + * <entry>A</entry> + * <entry>APPEND</entry> + * <entry>A, B</entry> + * <entry>PREPEND</entry> + * <entry>B, A</entry> + * <entry>KEEP</entry> + * <entry>KEEP_ALL</entry> + * </tbody> + * </tgroup> + * </table> */ typedef enum { GST_TAG_MERGE_UNDEFINED, @@ -523,7 +588,7 @@ * number of beats per minute in audio - * Since: 0.10.11 + * Since: 0.10.12 #define GST_TAG_BEATS_PER_MINUTE "beats-per-minute" Index: gsttagsetter.c RCS file: /cvs/gstreamer/gstreamer/gst/gsttagsetter.c,v retrieving revision 1.22 retrieving revision 1.23 diff -u -d -r1.22 -r1.23 --- gsttagsetter.c 12 Jan 2007 10:48:49 -0000 1.22 +++ gsttagsetter.c 18 Jan 2007 12:00:23 -0000 1.23 @@ -36,7 +36,10 @@ * <para> * If you just want to retrieve metadata in your application then all you * need to do is watch for tag messages on your pipeline's bus. This - * interface is only for setting metadata, not for extracting it. + * interface is only for setting metadata, not for extracting it. To set tags + * from the application, find tagsetter elements and set tags using e.g. + * gst_tag_setter_merge_tags() or gst_tag_setter_add_tags(). The application + * should do that before the element goes to %GST_STATE_PAUSED. * </para> * Elements implementing the #GstTagSetter interface often have to merge |
From: <en...@ke...> - 2007-01-30 15:04:52
|
CVS Root: /cvs/gstreamer Module: gstreamer Changes by: ensonic Date: Tue Jan 30 2007 15:04:45 UTC Log message: * gst/gstplugin.h: Fix and expand GstPluginDesc API docs. Modified files: . : ChangeLog gst : gstplugin.h Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/ChangeLog.diff?r1=1.3036&r2=1.3037 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstplugin.h.diff?r1=1.65&r2=1.66 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gstreamer/ChangeLog,v retrieving revision 1.3036 retrieving revision 1.3037 diff -u -d -r1.3036 -r1.3037 --- ChangeLog 29 Jan 2007 15:54:09 -0000 1.3036 +++ ChangeLog 30 Jan 2007 15:04:33 -0000 1.3037 @@ -1,3 +1,8 @@ +2007-01-30 Stefan Kost <en...@us...> + + * gst/gstplugin.h: + Fix and expand GstPluginDesc API docs. 2007-01-29 Stefan Kost <en...@us...> * configure.ac: Index: gstplugin.h RCS file: /cvs/gstreamer/gstreamer/gst/gstplugin.h,v retrieving revision 1.65 retrieving revision 1.66 diff -u -d -r1.65 -r1.66 --- gstplugin.h 6 Jul 2006 09:21:03 -0000 1.65 +++ gstplugin.h 30 Jan 2007 15:04:33 -0000 1.66 @@ -101,9 +101,11 @@ * @origin: URL to provider of plugin * @_gst_reserved: private, for later expansion * + * A plugin should export a variable of this type called plugin_desc. The plugin + * loader will use the data provided there to initialize the plugin. - * A plugins should export a variable of this type called plugin_desc. This plugin - * loaded will use this variable to initialize the plugin. + * The @licence parameter must be one of: LGPL, GPL, QPL, GPL/QPL, MPL, + * Proprietary, unknown. */ struct _GstPluginDesc { gint major_version; |
From: <en...@ke...> - 2007-03-14 13:40:47
|
CVS Root: /cvs/gstreamer Module: gstreamer Changes by: ensonic Date: Wed Mar 14 2007 13:40:40 UTC Log message: * gst/gstchildproxy.c: (gst_child_proxy_get_property), (gst_child_proxy_set_property): Invert precondition check to be alike the ones in the mimiced gobject api. Modified files: . : ChangeLog gst : gstchildproxy.c Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/ChangeLog.diff?r1=1.3113&r2=1.3114 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstchildproxy.c.diff?r1=1.9&r2=1.10 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gstreamer/ChangeLog,v retrieving revision 1.3113 retrieving revision 1.3114 diff -u -d -r1.3113 -r1.3114 --- ChangeLog 13 Mar 2007 14:53:20 -0000 1.3113 +++ ChangeLog 14 Mar 2007 13:40:27 -0000 1.3114 @@ -1,3 +1,10 @@ +2007-03-14 Stefan Kost <en...@us...> + + * gst/gstchildproxy.c: (gst_child_proxy_get_property), + (gst_child_proxy_set_property): + Invert precondition check to be alike the ones in the mimiced gobject + api. 2007-03-13 Stefan Kost <en...@us...> * docs/design/draft-tagreading.txt: Index: gstchildproxy.c RCS file: /cvs/gstreamer/gstreamer/gst/gstchildproxy.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- gstchildproxy.c 11 Feb 2007 19:59:12 -0000 1.9 +++ gstchildproxy.c 14 Mar 2007 13:40:28 -0000 1.10 @@ -214,7 +214,7 @@ * gst_child_proxy_get_property: * @object: object to query * @name: name of the property - * @value: an uninitialized #GValue that should take the result. + * @value: a #GValue that should take the result. * * Gets a single property using the GstChildProxy mechanism. * You are responsible for for freeing it by calling g_value_unset() @@ -228,7 +228,7 @@ g_return_if_fail (GST_IS_OBJECT (object)); g_return_if_fail (name != NULL); - g_return_if_fail (!G_IS_VALUE (value)); + g_return_if_fail (G_IS_VALUE (value)); if (!gst_child_proxy_lookup (object, name, &target, &pspec)) goto not_found; @@ -316,7 +316,7 @@ |