GstStructure *cache_data;
};
+/* FIXME: could rename all priv_gst_* functions to __gst_* now */
gboolean priv_gst_plugin_loading_have_whitelist (void);
guint32 priv_gst_plugin_loading_get_whitelist_hash (void);
gboolean _priv_gst_in_valgrind (void);
-/* Initialize GStreamer private quark storage */
-void _priv_gst_quarks_initialize (void);
-
-/* Other init functions called from gst_init().
- * FIXME 0.11: rename to _priv_gst_foo_init() so they don't get exported
- * (can't do this now because these functions used to be in our public
- * headers, so at least the symbols need to continue to be available unless
- * we want enterprise edition packagers dancing on our heads) */
-void _gst_buffer_initialize (void);
-void _gst_buffer_list_initialize (void);
-void _gst_event_initialize (void);
-void _gst_format_initialize (void);
-void _gst_message_initialize (void);
-void _gst_plugin_initialize (void);
-void _gst_query_initialize (void);
-void _gst_tag_initialize (void);
-void _gst_value_initialize (void);
-
-void priv_gst_toc_initialize (void);
+/* init functions called from gst_init(). */
+void _priv_gst_quarks_initialize (void);
+void _priv_gst_mini_object_initialize (void);
+void _priv_gst_buffer_initialize (void);
+void _priv_gst_buffer_list_initialize (void);
+void _priv_gst_structure_initialize (void);
+void _priv_gst_caps_initialize (void);
+void _priv_gst_event_initialize (void);
+void _priv_gst_format_initialize (void);
+void _priv_gst_message_initialize (void);
+void _priv_gst_memory_initialize (void);
+void _priv_gst_meta_initialize (void);
+void _priv_gst_plugin_initialize (void);
+void _priv_gst_query_initialize (void);
+void _priv_gst_sample_initialize (void);
+void _priv_gst_tag_initialize (void);
+void _priv_gst_value_initialize (void);
+void _priv_gst_debug_init (void);
/* TOC functions */
/* These functions are used to parse TOC messages, events and queries */
-GstToc* priv_gst_toc_from_structure (const GstStructure *toc);
-GstStructure* priv_gst_toc_to_structure (const GstToc *toc);
-gboolean priv_gst_toc_structure_get_updated (const GstStructure * toc);
-void priv_gst_toc_structure_set_updated (GstStructure * toc, gboolean updated);
-gchar* priv_gst_toc_structure_get_extend_uid (const GstStructure * toc);
-void priv_gst_toc_structure_set_extend_uid (GstStructure * toc, const gchar * extend_uid);
+GstToc* __gst_toc_from_structure (const GstStructure *toc);
+GstStructure* __gst_toc_to_structure (const GstToc *toc);
+gboolean __gst_toc_structure_get_updated (const GstStructure * toc);
+void __gst_toc_structure_set_updated (GstStructure * toc, gboolean updated);
+gchar* __gst_toc_structure_get_extend_uid (const GstStructure * toc);
+void __gst_toc_structure_set_extend_uid (GstStructure * toc, const gchar * extend_uid);
/* Private registry functions */
gboolean _priv_gst_registry_remove_cache_plugins (GstRegistry *registry);
void _priv_gst_registry_cleanup (void);
gboolean _gst_plugin_loader_client_run (void);
-void _priv_gst_pad_invalidate_cache (GstPad *pad);
-
/* Used in GstBin for manual state handling */
void _priv_gst_element_state_changed (GstElement *element, GstState oldstate,
GstState newstate, GstState pending);
/* used in both gststructure.c and gstcaps.c; numbers are completely made up */
-#define STRUCTURE_ESTIMATED_STRING_LEN(s) (16 + (s)->fields->len * 22)
+#define STRUCTURE_ESTIMATED_STRING_LEN(s) (16 + gst_structure_n_fields(s) * 22)
gboolean priv_gst_structure_append_to_gstring (const GstStructure * structure,
GString * s);
/* registry cache backends */
-/* FIXME 0.11: use priv_ prefix */
-gboolean gst_registry_binary_read_cache (GstRegistry * registry, const char *location);
-gboolean gst_registry_binary_write_cache (GstRegistry * registry, const char *location);
+gboolean priv_gst_registry_binary_read_cache (GstRegistry * registry, const char *location);
+gboolean priv_gst_registry_binary_write_cache (GstRegistry * registry, GList * plugins, const char *location);
+
+void __gst_element_factory_add_static_pad_template (GstElementFactory * elementfactory,
+ GstStaticPadTemplate * templ);
+void __gst_element_factory_add_interface (GstElementFactory * elementfactory,
+ const gchar * interfacename);
/* used in gstvalue.c and gststructure.c */
#define GST_ASCII_IS_STRING(c) (g_ascii_isalnum((c)) || ((c) == '_') || \
#ifndef GST_REMOVE_GST_DEBUG
GST_EXPORT GstDebugCategory *GST_CAT_GST_INIT;
-GST_EXPORT GstDebugCategory *GST_CAT_AUTOPLUG; /* FIXME 0.11: remove? */
-GST_EXPORT GstDebugCategory *GST_CAT_AUTOPLUG_ATTEMPT; /* FIXME 0.11: remove? */
+GST_EXPORT GstDebugCategory *GST_CAT_MEMORY;
GST_EXPORT GstDebugCategory *GST_CAT_PARENTAGE;
GST_EXPORT GstDebugCategory *GST_CAT_STATES;
GST_EXPORT GstDebugCategory *GST_CAT_SCHEDULING;
GST_EXPORT GstDebugCategory *GST_CAT_PLUGIN_LOADING;
GST_EXPORT GstDebugCategory *GST_CAT_PLUGIN_INFO;
GST_EXPORT GstDebugCategory *GST_CAT_PROPERTIES;
-GST_EXPORT GstDebugCategory *GST_CAT_XML;
GST_EXPORT GstDebugCategory *GST_CAT_NEGOTIATION;
GST_EXPORT GstDebugCategory *GST_CAT_REFCOUNTING;
GST_EXPORT GstDebugCategory *GST_CAT_ERROR_SYSTEM;
GST_EXPORT GstDebugCategory *GST_CAT_PROBE;
GST_EXPORT GstDebugCategory *GST_CAT_REGISTRY;
GST_EXPORT GstDebugCategory *GST_CAT_QOS;
-GST_EXPORT GstDebugCategory *GST_CAT_TYPES; /* FIXME 0.11: remove? */
+GST_EXPORT GstDebugCategory *GST_CAT_META;
/* Categories that should be completely private to
* libgstreamer should be done like this: */
#define GST_CAT_PLUGIN_LOADING NULL
#define GST_CAT_PLUGIN_INFO NULL
#define GST_CAT_PROPERTIES NULL
-#define GST_CAT_XML NULL
#define GST_CAT_NEGOTIATION NULL
#define GST_CAT_REFCOUNTING NULL
#define GST_CAT_ERROR_SYSTEM NULL
#define GST_CAT_QOS NULL
#define GST_CAT_TYPES NULL
#define GST_CAT_POLL NULL
+#define GST_CAT_META NULL
#endif
-#ifdef GST_DISABLE_DEPRECATED
-typedef GList* (*GstPadIntLinkFunction) (GstPad *pad);
-#endif
+/**** objects made opaque until the private bits have been made private ****/
+
+#include <gmodule.h>
+#include <time.h> /* time_t */
+#include <sys/types.h> /* off_t */
+#include <sys/stat.h> /* off_t */
+
+typedef struct _GstPluginPrivate GstPluginPrivate;
+
+struct _GstPlugin {
+ GstObject object;
+
+ /*< private >*/
+ GstPluginDesc desc;
+
+ GstPluginDesc *orig_desc;
+
+ gchar * filename;
+ gchar * basename; /* base name (non-dir part) of plugin path */
+
+ GModule * module; /* contains the module if plugin is loaded */
+
+ off_t file_size;
+ time_t file_mtime;
+ gboolean registered; /* TRUE when the registry has seen a filename
+ * that matches the plugin's basename */
+
+ GstPluginPrivate *priv;
+
+ gpointer _gst_reserved[GST_PADDING];
+};
+
+struct _GstPluginClass {
+ GstObjectClass object_class;
+
+ /*< private >*/
+ gpointer _gst_reserved[GST_PADDING];
+};
+
+struct _GstPluginFeature {
+ GstObject object;
+
+ /*< private >*/
+ gboolean loaded;
+ guint rank;
+
+ const gchar *plugin_name;
+ GstPlugin *plugin; /* weak ref */
+
+ /*< private >*/
+ gpointer _gst_reserved[GST_PADDING];
+};
+
+struct _GstPluginFeatureClass {
+ GstObjectClass parent_class;
+
+ /*< private >*/
+ gpointer _gst_reserved[GST_PADDING];
+};
+
+#include "gsttypefind.h"
+
+struct _GstTypeFindFactory {
+ GstPluginFeature feature;
+ /* <private> */
+
+ GstTypeFindFunction function;
+ gchar ** extensions;
+ GstCaps * caps; /* FIXME: not yet saved in registry */
+
+ gpointer user_data;
+ GDestroyNotify user_data_notify;
+
+ gpointer _gst_reserved[GST_PADDING];
+};
+
+struct _GstTypeFindFactoryClass {
+ GstPluginFeatureClass parent;
+ /* <private> */
+
+ gpointer _gst_reserved[GST_PADDING];
+};
+
+struct _GstElementFactory {
+ GstPluginFeature parent;
+
+ GType type; /* unique GType of element or 0 if not loaded */
+
+ gpointer metadata;
+
+ GList * staticpadtemplates; /* GstStaticPadTemplate list */
+ guint numpadtemplates;
+
+ /* URI interface stuff */
+ GstURIType uri_type;
+ gchar ** uri_protocols;
+
+ GList * interfaces; /* interface type names this element implements */
+
+ /*< private >*/
+ gpointer _gst_reserved[GST_PADDING];
+};
+
+struct _GstElementFactoryClass {
+ GstPluginFeatureClass parent_class;
+
+ gpointer _gst_reserved[GST_PADDING];
+};
G_END_DECLS
#endif /* __GST_PRIVATE_H__ */