X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=gst%2Fgst_private.h;h=c15c8fa3d641bac9ead15d82ded2e3baa745de22;hb=066b515985897495cae32fca5b7eeeec260c40c9;hp=e0c27fe7b0e4856ce3a43b3ca6bf446285dd5a74;hpb=cfff518ceedb42a9a99a9e5c50a1122fa269faa0;p=platform%2Fupstream%2Fgstreamer.git diff --git a/gst/gst_private.h b/gst/gst_private.h index e0c27fe..c15c8fa 100644 --- a/gst/gst_private.h +++ b/gst/gst_private.h @@ -54,6 +54,9 @@ extern const char g_log_domain_gstreamer[]; /* for GstElement */ #include "gstelement.h" +/* for GstToc */ +#include "gsttoc.h" + G_BEGIN_DECLS /* used by gstparse.c and grammar.y */ @@ -94,6 +97,7 @@ gboolean _priv_gst_in_valgrind (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); @@ -105,10 +109,20 @@ 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* __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); @@ -125,7 +139,7 @@ gboolean priv_gst_structure_append_to_gstring (const GstStructure * structure, GString * s); /* registry cache backends */ gboolean priv_gst_registry_binary_read_cache (GstRegistry * registry, const char *location); -gboolean priv_gst_registry_binary_write_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); @@ -143,7 +157,7 @@ gint priv_gst_date_time_compare (gconstpointer dt1, gconstpointer dt2); #ifndef GST_DISABLE_REGISTRY /* Secret variable to initialise gst without registry cache */ -extern gboolean _gst_disable_registry_cache; +GST_EXPORT gboolean _gst_disable_registry_cache; #endif /* provide inline gst_g_value_get_foo_unchecked(), used in gststructure.c */ @@ -169,8 +183,7 @@ DEFINE_INLINE_G_VALUE_GET_UNCHECKED(const gchar *,string,v_pointer) #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; @@ -197,7 +210,7 @@ GST_EXPORT GstDebugCategory *GST_CAT_SIGNAL; 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: */ @@ -238,9 +251,119 @@ extern GstDebugCategory *_priv_GST_CAT_POLL; #define GST_CAT_QOS NULL #define GST_CAT_TYPES NULL #define GST_CAT_POLL NULL +#define GST_CAT_META NULL #endif +/**** objects made opaque until the private bits have been made private ****/ + +#include +#include /* time_t */ +#include /* off_t */ +#include /* 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; + /* */ + + 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; + /* */ + + 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__ */