diff --git a/ChangeLog b/ChangeLog index 774965d503..75fb764839 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,27 @@ +2005-09-19 David Schleef + + * docs/gst/Makefile.am: Ignore a few more internal headers + * docs/gst/gstreamer-docs.sgml: Remove old sections + * docs/gst/gstreamer-sections.txt: Remove old sections + * docs/gst/tmpl/gstobject.sgml: update + * docs/gst/tmpl/gstplugin.sgml: update + * docs/gst/tmpl/gstpluginfeature.sgml: update + * docs/random/ds/0.9-suggested-changes: update. + * gst/Makefile.am: remove memchunk and trashstack, since they're + not used. + * gst/gst.c: (gst_deinit): rename gst_registry_deinit to _cleanup + * gst/gst.h: don't include some headers + * gst/gstchildproxy.c: add gstmarshal.h + * gst/gstclock.c: Don't use memchunks + * gst/gstminiobject.c: Add some docs + * gst/gstobject.c: remove DESTROYED flag, since it's redundant + * gst/gstobject.h: same + * gst/gstplugin.c: include gstmacros.h + * gst/gstplugin.h: don't include gstmacros.h, since it's private + * gst/gstquery.c: don't use memchunks + * gst/gstregistry.c: rename gst_registry_deinit() + * gst/gstregistry.h: same + 2005-09-19 David Schleef * docs/libs/gstreamer-libs-docs.sgml: Remove docs for getbits diff --git a/docs/gst/Makefile.am b/docs/gst/Makefile.am index 67e94cede1..2ee7f7b731 100644 --- a/docs/gst/Makefile.am +++ b/docs/gst/Makefile.am @@ -71,6 +71,7 @@ IGNORE_HFILES= \ gthread-cothreads.h \ faircothreads.h \ types.h \ + glib-compat.h \ grammar.tab.h \ gstmarshal.h \ gstaggregator.h \ @@ -78,6 +79,7 @@ IGNORE_HFILES= \ gstfdsink.h \ gstfdsrc.h \ gstidentity.h \ + gstmacros.h \ gstmd5sink.h \ gstmultifilesrc.h \ gstmultifdsink.h \ @@ -85,10 +87,12 @@ IGNORE_HFILES= \ gstshaper.h \ gststatistics.h \ gsttee.h \ + gsttrashstack.h \ gsttypefindelement.h \ gstspider.h \ gstspideridentity.h \ gstsearchfuncs.h \ + gsttrashstack.h \ gstxmlregistry.h # Images to copy into HTML directory. diff --git a/docs/gst/gstreamer-docs.sgml b/docs/gst/gstreamer-docs.sgml index d0cce20e19..ca19df173d 100644 --- a/docs/gst/gstreamer-docs.sgml +++ b/docs/gst/gstreamer-docs.sgml @@ -27,8 +27,6 @@ - - @@ -42,13 +40,11 @@ - - @@ -134,7 +130,6 @@ &GstQuery; &GstQueue; &GstRegistry; - &GstRegistryPool; &GstStructure; &GstSystemClock; &GstTagList; @@ -160,10 +155,7 @@ &GstCheck; &GstInfo; - &GstMacros; - &GstMemChunk; &GstTrace; - &GstTrashStack; diff --git a/docs/gst/gstreamer-sections.txt b/docs/gst/gstreamer-sections.txt index 5b8bc3a6dd..b27aa3fa2a 100644 --- a/docs/gst/gstreamer-sections.txt +++ b/docs/gst/gstreamer-sections.txt @@ -81,6 +81,7 @@ gst_bin_flags_get_type gstbus GstBus GstBus +GstBusFunc GstBusFlags GstBusSyncReply GstBusHandler @@ -929,28 +930,6 @@ gst_iterator_result_get_type -
-gstmacros -GstMacros - -GST_GNUC_CONSTRUCTOR -GST_INLINE_FUNC -GST_CAN_INLINE -
- - -
-gstmemchunk -GstMemChunk -GstMemChunk -gst_mem_chunk_new -gst_mem_chunk_destroy -gst_mem_chunk_alloc -gst_mem_chunk_alloc0 -gst_mem_chunk_free -
- -
gstmessage GstMessage @@ -1428,14 +1407,24 @@ gst_plugin_load_file gst_plugin_unload_plugin gst_plugin_add_feature gst_plugin_load +gst_plugin_load_by_name +gst_plugin_list_free +GstPluginClass GST_PLUGIN +GST_PLUGIN_CLASS +GST_PLUGIN_GET_CLASS GST_TYPE_PLUGIN GST_TYPE_PLUGIN_ERROR +GST_IS_PLUGIN +GST_IS_PLUGIN_CLASS +GstPluginFlags +GST_TYPE_PLUGIN_FLAGS gst_plugin_get_type gst_plugin_error_get_type +gst_plugin_flags_get_type
@@ -1453,6 +1442,8 @@ gst_plugin_feature_set_rank gst_plugin_feature_set_name gst_plugin_feature_get_rank gst_plugin_feature_get_name +gst_plugin_feature_load +gst_plugin_feature_list_free GstPluginFeatureClass GST_PLUGIN_FEATURE @@ -1589,6 +1580,27 @@ gst_registry_find_feature gst_registry_load_plugin gst_registry_unload_plugin gst_registry_update_plugin +gst_registry_scan_path +gst_registry_get_feature_list +gst_registry_xml_read_cache +gst_registry_xml_write_cache +gst_registry_scan_paths +gst_registry_get_default +gst_registry_lookup +gst_registry_remove_feature +gst_registry_get_feature_list_by_plugin +gst_registry_lookup_feature +gst_registry_get_plugin_list +gst_registry_add_feature + +gst_default_registry_find_feature +gst_default_registry_get_path_list +gst_default_registry_add_plugin +gst_default_registry_add_path +gst_default_registry_scan_paths +gst_default_registry_find_plugin +gst_default_registry_get_plugin_list +gst_default_registry_feature_filter GstRegistryClass GST_REGISTRY @@ -1606,24 +1618,6 @@ gst_registry_return_get_type -
-gstregistrypool -GstRegistryPool -gst_registry_pool_list -gst_registry_pool_add -gst_registry_pool_remove -gst_registry_pool_add_plugin -gst_registry_pool_load_all -gst_registry_pool_plugin_filter -gst_registry_pool_feature_filter -gst_registry_pool_plugin_list -gst_registry_pool_feature_list -gst_registry_pool_find_plugin -gst_registry_pool_find_feature -gst_registry_pool_get_prefered -
- -
gststructure GstStructure @@ -1903,17 +1897,6 @@ gst_alloc_trace_flags_get_type
-
-gsttrashstack -GstTrashStack -GstTrashStack -GstTrashStackElement -gst_vgpointer -gst_vgulong -SMP_LOCK -
- -
gsttypefind GstTypeFind diff --git a/docs/gst/tmpl/gstobject.sgml b/docs/gst/tmpl/gstobject.sgml index ca8c2fbe8e..7baef0aae5 100644 --- a/docs/gst/tmpl/gstobject.sgml +++ b/docs/gst/tmpl/gstobject.sgml @@ -129,7 +129,6 @@ Flags for an object @GST_OBJECT_DISPOSING: -@GST_OBJECT_DESTROYED: @GST_OBJECT_FLOATING: @GST_OBJECT_FLAG_LAST: subclasses can add additional flags starting from this flag @@ -218,14 +217,6 @@ Acquire a reference to the mutex of this object. @obj: Object to get the mutex of. - - - - - -@obj: - - diff --git a/docs/gst/tmpl/gstplugin.sgml b/docs/gst/tmpl/gstplugin.sgml index 67522442ee..3e1cf62291 100644 --- a/docs/gst/tmpl/gstplugin.sgml +++ b/docs/gst/tmpl/gstplugin.sgml @@ -285,3 +285,20 @@ to get a list of plugins that match certain criteria. @name: + + + + + +@name: +@Returns: + + + + + + + +@list: + + diff --git a/docs/gst/tmpl/gstpluginfeature.sgml b/docs/gst/tmpl/gstpluginfeature.sgml index 0f433cdd2d..04fc047aee 100644 --- a/docs/gst/tmpl/gstpluginfeature.sgml +++ b/docs/gst/tmpl/gstpluginfeature.sgml @@ -96,3 +96,20 @@ to get a list of pluginfeature that match certain criteria. @Returns: + + + + + +@feature: +@Returns: + + + + + + + +@list: + + diff --git a/docs/random/ds/0.9-suggested-changes b/docs/random/ds/0.9-suggested-changes index 86e1b17853..013bed2eaa 100644 --- a/docs/random/ds/0.9-suggested-changes +++ b/docs/random/ds/0.9-suggested-changes @@ -4,13 +4,8 @@ API: - MAKE A DOCUMENT THAT LISTS ALL API CHANGES AND HOW TO DEAL WITH THEM - - GstElementState should be a real enum, not something that looks like flags - changing state can be done with ++ and -- instead of >> and << - - replace object/structure set/get macros with actual functions. - - events should all use GstStructure - - reorganize headers (split app headers vs plugin headers maybe) while at it also make sure to only allow including of the main headers like glib, so we can freely shuffle stuff around @@ -37,31 +32,17 @@ API: (Though the main reason for identities atm is to be able to connect without plugging - Company) - - remove float support from dparams - - - dparams: should be converted into some kind of special pad and - object property combination. - - read/write locks on buffers - be able to send events to unlinked pads (bug #114442) - caps should have a flag on fields to indicate that the field is optional - - deprecate gst_buffer_merge() and replace with a function that takes - ownership of the buffers. (bug #136408) - - fakesrc handoff should be changed to return a GstData * or carry a GstData **, wo the user can provide own buffers and events. - - remove GST_OBJECT_DESTROYED() - - - fix plugin code to load plugins with RTLD_LOCAL - - don't install gstmarshal.h - - remove unnecessary headers from gst.h (gstqueue.h in particular) - - make sure GstClockTime is used wherever it should (e.g. gstplay) - make gst_bin_get_list virtual so subclasses can override it (e.g. @@ -77,8 +58,6 @@ API: 24 fps pulled down to 60 and straight video, etc) and make sure our video stream descriptions make sense. - - remove GstMemChunk - - do an audit to remove GtkObject-isms from gtk-1.2 caps: diff --git a/gst/Makefile.am b/gst/Makefile.am index 10a7e56312..60d334b9fd 100644 --- a/gst/Makefile.am +++ b/gst/Makefile.am @@ -88,7 +88,6 @@ libgstreamer_@GST_MAJORMINOR@_la_SOURCES = \ gstinfo.c \ gstinterface.c \ gstiterator.c \ - gstmemchunk.c \ gstmessage.c \ gstminiobject.c \ gstpad.c \ @@ -106,7 +105,6 @@ libgstreamer_@GST_MAJORMINOR@_la_SOURCES = \ gsttagsetter.c \ gsttask.c \ $(GST_TRACE_SRC) \ - gsttrashstack.c \ gsttypefind.c \ gsttypefindfactory.c \ $(GST_URI_SRC) \ @@ -166,7 +164,6 @@ gst_headers = \ gstinterface.h \ gstiterator.h \ gstmacros.h \ - gstmemchunk.h \ gstmessage.h \ gstminiobject.h \ gstpad.h \ @@ -182,7 +179,6 @@ gst_headers = \ gsttagsetter.h \ gsttask.h \ gsttrace.h \ - gsttrashstack.h \ gsttypefind.h \ gsttypefindfactory.h \ gsturi.h \ diff --git a/gst/gst.c b/gst/gst.c index 9bcffe0e0a..5f42cd4483 100644 --- a/gst/gst.c +++ b/gst/gst.c @@ -919,7 +919,7 @@ gst_deinit (void) gst_object_unref (clock); gst_object_unref (clock); - gst_registry_deinit (); + _gst_registry_cleanup (); gst_initialized = FALSE; GST_INFO ("deinitialized GStreamer"); diff --git a/gst/gst.h b/gst/gst.h index 1067ffd2d8..c1a3b346de 100644 --- a/gst/gst.h +++ b/gst/gst.h @@ -42,7 +42,6 @@ #include #include #include -#include #include #include #include @@ -51,6 +50,7 @@ #include #include #include +#include #include #include #include @@ -66,7 +66,6 @@ #include #include -#include /* API compatibility stuff */ #include diff --git a/gst/gstchildproxy.c b/gst/gstchildproxy.c index 96058cb834..de2c119b19 100644 --- a/gst/gstchildproxy.c +++ b/gst/gstchildproxy.c @@ -39,6 +39,7 @@ #include "gst_private.h" #include "gstchildproxy.h" +#include "gstmarshal.h" #include /* signals */ diff --git a/gst/gstclock.c b/gst/gstclock.c index 04d950db29..acb35899d1 100644 --- a/gst/gstclock.c +++ b/gst/gstclock.c @@ -40,7 +40,6 @@ #include "gstclock.h" #include "gstinfo.h" -#include "gstmemchunk.h" #include "gstutils.h" #ifndef GST_DISABLE_TRACE @@ -60,8 +59,6 @@ enum ARG_EVENT_DIFF }; -static GstMemChunk *_gst_clock_entries_chunk; - static void gst_clock_class_init (GstClockClass * klass); static void gst_clock_init (GstClock * clock); static void gst_clock_finalize (GObject * object); @@ -83,7 +80,7 @@ gst_clock_entry_new (GstClock * clock, GstClockTime time, { GstClockEntry *entry; - entry = gst_mem_chunk_alloc (_gst_clock_entries_chunk); + entry = g_malloc0 (sizeof (GstClockEntry)); #ifndef GST_DISABLE_TRACE gst_alloc_trace_new (_gst_clock_entry_trace, entry); #endif @@ -130,7 +127,6 @@ _gst_clock_id_free (GstClockID id) #ifndef GST_DISABLE_TRACE gst_alloc_trace_free (_gst_clock_entry_trace, id); #endif - gst_mem_chunk_free (_gst_clock_entries_chunk, id); } /** @@ -462,9 +458,6 @@ gst_clock_class_init (GstClockClass * klass) if (!g_thread_supported ()) g_thread_init (NULL); - _gst_clock_entries_chunk = gst_mem_chunk_new ("GstClockEntries", - sizeof (GstClockEntry), sizeof (GstClockEntry) * 32, G_ALLOC_AND_FREE); - #ifndef GST_DISABLE_TRACE _gst_clock_entry_trace = gst_alloc_trace_register (GST_CLOCK_ENTRY_TRACE_NAME); diff --git a/gst/gstminiobject.c b/gst/gstminiobject.c index b336eb6b43..7f6f8ed922 100644 --- a/gst/gstminiobject.c +++ b/gst/gstminiobject.c @@ -118,6 +118,16 @@ gst_mini_object_init (GTypeInstance * instance, gpointer klass) mini_object->refcount = 1; } +/** + * gst_mini_object_new: + * @type: the GType of the mini-object to create + * + * Creates a new mini-object of the desired type. + * + * MT safe + * + * Returns: the new mini-object. + */ GstMiniObject * gst_mini_object_new (GType type) { @@ -154,6 +164,16 @@ gst_mini_object_new (GType type) return mini_object; } +/** + * gst_mini_object_copy: + * @mini_object: the mini-object to copy + * + * Creates a copy of the mini-object. + * + * MT safe + * + * Returns: the new mini-object. + */ GstMiniObject * gst_mini_object_copy (const GstMiniObject * mini_object) { @@ -164,6 +184,19 @@ gst_mini_object_copy (const GstMiniObject * mini_object) return mo_class->copy (mini_object); } +/** + * gst_mini_object_is_writable: + * @mini_object: the mini-object to check + * + * Checks if a mini-object is writable. A mini-object is writable + * if the reference count is one and the GST_MINI_OBJECT_FLAG_READONLY + * flag is not set. Modification of a mini-object should only be + * done after verifying that it is writable. + * + * MT safe + * + * Returns: TRUE if the object is writable. + */ gboolean gst_mini_object_is_writable (const GstMiniObject * mini_object) { @@ -171,6 +204,17 @@ gst_mini_object_is_writable (const GstMiniObject * mini_object) ((mini_object->flags & GST_MINI_OBJECT_FLAG_READONLY) == 0); } +/** + * gst_mini_object_make_writable: + * @mini_object: the mini-object to make writable + * + * Checks if a mini-object is writable. If not, a copy is made and + * the copy is returned. + * + * MT safe + * + * Returns: a mini-object (possibly a duplicate) that it writable. + */ GstMiniObject * gst_mini_object_make_writable (GstMiniObject * mini_object) { @@ -186,6 +230,14 @@ gst_mini_object_make_writable (GstMiniObject * mini_object) return ret; } +/** + * gst_mini_object_ref: + * @mini_object: the mini-object + * + * Increase the reference count of the mini-object. + * + * Returns: the mini-object. + */ GstMiniObject * gst_mini_object_ref (GstMiniObject * mini_object) { @@ -237,6 +289,13 @@ gst_mini_object_free (GstMiniObject * mini_object) } } +/** + * gst_mini_object_unref: + * @mini_object: the mini-object + * + * Decreases the reference count of the mini-object, possibly freeing + * the mini-object. + */ void gst_mini_object_unref (GstMiniObject * mini_object) { @@ -255,6 +314,15 @@ gst_mini_object_unref (GstMiniObject * mini_object) } } +/** + * gst_mini_object_replace: + * @olddata: pointer to a pointer to a mini-object to be replaced + * @newdata: pointer to new mini-object + * + * Modifies a pointer to point to a new mini-object. The modification + * is done atomically, and the reference counts are updated correctly. + * Either @newdata and the value pointed to by @olddata may be NULL. + */ void gst_mini_object_replace (GstMiniObject ** olddata, GstMiniObject * newdata) { diff --git a/gst/gstobject.c b/gst/gstobject.c index ed53ece015..712763bdb0 100644 --- a/gst/gstobject.c +++ b/gst/gstobject.c @@ -416,7 +416,6 @@ gst_object_dispose (GObject * object) GST_CAT_LOG_OBJECT (GST_CAT_REFCOUNTING, object, "dispose"); GST_LOCK (object); - GST_FLAG_SET (GST_OBJECT (object), GST_OBJECT_DESTROYED); GST_OBJECT_PARENT (object) = NULL; GST_UNLOCK (object); diff --git a/gst/gstobject.h b/gst/gstobject.h index 30eea792ee..3f6cb67275 100644 --- a/gst/gstobject.h +++ b/gst/gstobject.h @@ -50,7 +50,6 @@ GST_EXPORT GType _gst_object_type; typedef enum { GST_OBJECT_DISPOSING = 0, - GST_OBJECT_DESTROYED = 1, GST_OBJECT_FLOATING, GST_OBJECT_FLAG_LAST = 4 @@ -76,7 +75,6 @@ typedef enum #define GST_FLAG_UNSET(obj,flag) G_STMT_START{ (GST_FLAGS (obj) &= ~(1<<(flag))); }G_STMT_END #define GST_OBJECT_IS_DISPOSING(obj) (GST_FLAG_IS_SET (obj, GST_OBJECT_DISPOSING)) -#define GST_OBJECT_IS_DESTROYED(obj) (GST_FLAG_IS_SET (obj, GST_OBJECT_DESTROYED)) #define GST_OBJECT_IS_FLOATING(obj) (GST_FLAG_IS_SET (obj, GST_OBJECT_FLOATING)) typedef struct _GstObject GstObject; diff --git a/gst/gstplugin.c b/gst/gstplugin.c index 2fd410cfe8..3ce1ce4388 100644 --- a/gst/gstplugin.c +++ b/gst/gstplugin.c @@ -41,6 +41,7 @@ #include "gstinfo.h" #include "gstfilter.h" #include "gstregistry.h" +#include "gstmacros.h" #define GST_CAT_DEFAULT GST_CAT_PLUGIN_LOADING diff --git a/gst/gstplugin.h b/gst/gstplugin.h index ec6e1d1e4c..3dc4729063 100644 --- a/gst/gstplugin.h +++ b/gst/gstplugin.h @@ -28,8 +28,6 @@ #include /* time_t */ #include -#include -#include #include G_BEGIN_DECLS @@ -83,6 +81,7 @@ struct _GstPluginDesc { struct _GstPlugin { GstObject object; + /*< private >*/ GstPluginDesc desc; GstPluginDesc *orig_desc; @@ -102,6 +101,7 @@ struct _GstPlugin { struct _GstPluginClass { GstObjectClass object_class; + /*< private >*/ }; diff --git a/gst/gstquery.c b/gst/gstquery.c index ebae1f15d8..c5ea3f66be 100644 --- a/gst/gstquery.c +++ b/gst/gstquery.c @@ -34,7 +34,6 @@ #include "gst_private.h" #include "gstquery.h" -#include "gstmemchunk.h" #include "gstenumtypes.h" GST_DEBUG_CATEGORY_STATIC (gst_query_debug); @@ -52,8 +51,6 @@ static GHashTable *_nick_to_query = NULL; static GHashTable *_query_type_to_nick = NULL; static guint32 _n_values = 1; /* we start from 1 because 0 reserved for NONE */ -static GstMemChunk *chunk; - static GstQueryTypeDefinition standard_definitions[] = { {GST_QUERY_POSITION, "position", "Current Position"}, {GST_QUERY_LATENCY, "latency", "Latency"}, @@ -92,9 +89,6 @@ _gst_query_initialize (void) g_static_mutex_unlock (&mutex); gst_query_get_type (); - - chunk = gst_mem_chunk_new ("GstQueryChunk", sizeof (GstQuery), - sizeof (GstQuery) * 20, 0); } GType diff --git a/gst/gstregistry.c b/gst/gstregistry.c index 4e419c81ec..5827605680 100644 --- a/gst/gstregistry.c +++ b/gst/gstregistry.c @@ -767,7 +767,7 @@ gst_registry_get_feature_list_by_plugin (GstRegistry * registry, } void -gst_registry_deinit () +_gst_registry_cleanup () { if (!_gst_registry_default) return; diff --git a/gst/gstregistry.h b/gst/gstregistry.h index 599dc21f8a..79c7a51455 100644 --- a/gst/gstregistry.h +++ b/gst/gstregistry.h @@ -25,6 +25,7 @@ #define __GST_REGISTRY_H__ #include +#include G_BEGIN_DECLS @@ -101,7 +102,7 @@ gboolean gst_registry_xml_write_cache (GstRegistry * registry, const char *lo void gst_registry_scan_paths (GstRegistry *registry); void _gst_registry_remove_cache_plugins (GstRegistry *registry); -void gst_registry_deinit (void); +void _gst_registry_cleanup (void); #define gst_default_registry_add_plugin(plugin) \ gst_registry_add_plugin (gst_registry_get_default(), plugin)