X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=gst%2Fgst_private.h;h=2a2e8fa7a6d9e66fe3a18c09b9c68c78450d4ee0;hb=f34472822c257359d69ebf671b81d85646a40618;hp=7d0fe15abece3c9c020d4302b185cdddbf4d6b67;hpb=db1e4422b617009406ce327dad78789779e5c219;p=platform%2Fupstream%2Fgstreamer.git diff --git a/gst/gst_private.h b/gst/gst_private.h index 7d0fe15..2a2e8fa 100644 --- a/gst/gst_private.h +++ b/gst/gst_private.h @@ -38,6 +38,9 @@ extern const char g_log_domain_gstreamer[]; #include #include +/* Needed for GST_API */ +#include "gst/gstconfig.h" + /* Needed for GstRegistry * */ #include "gstregistry.h" #include "gststructure.h" @@ -54,14 +57,16 @@ extern const char g_log_domain_gstreamer[]; /* for GstElement */ #include "gstelement.h" -/* for GstDeviceMonitor */ -#include "gstdevicemonitor.h" +/* for GstDeviceProvider */ +#include "gstdeviceprovider.h" /* for GstToc */ #include "gsttoc.h" #include "gstdatetime.h" +#include "gsttracerutils.h" + G_BEGIN_DECLS /* used by gstparse.c and grammar.y */ @@ -92,7 +97,7 @@ G_GNUC_INTERNAL gboolean priv_gst_plugin_loading_have_whitelist (void); G_GNUC_INTERNAL guint32 priv_gst_plugin_loading_get_whitelist_hash (void); -G_GNUC_INTERNAL gboolean priv_gst_plugin_desc_is_whitelisted (GstPluginDesc * desc, +G_GNUC_INTERNAL gboolean priv_gst_plugin_desc_is_whitelisted (const GstPluginDesc * desc, const gchar * filename); G_GNUC_INTERNAL gboolean _priv_plugin_deps_env_vars_changed (GstPlugin * plugin); @@ -114,7 +119,6 @@ G_GNUC_INTERNAL void _priv_gst_caps_features_initialize (void); G_GNUC_INTERNAL void _priv_gst_event_initialize (void); G_GNUC_INTERNAL void _priv_gst_format_initialize (void); G_GNUC_INTERNAL void _priv_gst_message_initialize (void); -G_GNUC_INTERNAL void _priv_gst_memory_initialize (void); G_GNUC_INTERNAL void _priv_gst_meta_initialize (void); G_GNUC_INTERNAL void _priv_gst_plugin_initialize (void); G_GNUC_INTERNAL void _priv_gst_query_initialize (void); @@ -126,14 +130,36 @@ G_GNUC_INTERNAL void _priv_gst_context_initialize (void); G_GNUC_INTERNAL void _priv_gst_toc_initialize (void); G_GNUC_INTERNAL void _priv_gst_date_time_initialize (void); +/* cleanup functions called from gst_deinit(). */ +G_GNUC_INTERNAL void _priv_gst_allocator_cleanup (void); +G_GNUC_INTERNAL void _priv_gst_caps_features_cleanup (void); +G_GNUC_INTERNAL void _priv_gst_caps_cleanup (void); + +/* called from gst_task_cleanup_all(). */ +G_GNUC_INTERNAL void _priv_gst_element_cleanup (void); + /* Private registry functions */ G_GNUC_INTERNAL gboolean _priv_gst_registry_remove_cache_plugins (GstRegistry *registry); G_GNUC_INTERNAL void _priv_gst_registry_cleanup (void); +GST_API gboolean _gst_plugin_loader_client_run (void); +G_GNUC_INTERNAL GstPlugin * _priv_gst_plugin_load_file_for_registry (const gchar *filename, + GstRegistry * registry, + GError** error); + +/* GValue serialization/deserialization */ + +G_GNUC_INTERNAL const char * _priv_gst_value_gtype_to_abbr (GType type); + +G_GNUC_INTERNAL gboolean _priv_gst_value_parse_string (gchar * s, gchar ** end, gchar ** next, gboolean unescape); +G_GNUC_INTERNAL gboolean _priv_gst_value_parse_simple_string (gchar * str, gchar ** end); +G_GNUC_INTERNAL gboolean _priv_gst_value_parse_value (gchar * str, gchar ** after, GValue * value, GType default_type); +G_GNUC_INTERNAL gchar * _priv_gst_value_serialize_any_list (const GValue * value, const gchar * begin, const gchar * end, gboolean print_type); + /* Used in GstBin for manual state handling */ G_GNUC_INTERNAL void _priv_gst_element_state_changed (GstElement *element, GstState oldstate, GstState newstate, GstState pending); @@ -146,6 +172,11 @@ G_GNUC_INTERNAL gboolean priv_gst_structure_append_to_gstring (const GstStructure * structure, GString * s); G_GNUC_INTERNAL +gboolean priv__gst_structure_append_template_to_gstring (GQuark field_id, + const GValue *value, + gpointer user_data); + +G_GNUC_INTERNAL void priv_gst_caps_features_append_to_gstring (const GstCapsFeatures * features, GString *s); G_GNUC_INTERNAL @@ -153,6 +184,13 @@ gboolean priv_gst_structure_parse_name (gchar * str, gchar **start, gchar ** end G_GNUC_INTERNAL gboolean priv_gst_structure_parse_fields (gchar *str, gchar ** end, GstStructure *structure); +/* used in gstvalue.c and gststructure.c */ + +#define GST_WRAPPED_PTR_FORMAT "p\aa" + +G_GNUC_INTERNAL +gchar *priv_gst_string_take_and_wrap (gchar * s); + /* registry cache backends */ G_GNUC_INTERNAL gboolean priv_gst_registry_binary_read_cache (GstRegistry * registry, const char *location); @@ -181,11 +219,20 @@ gint __gst_date_time_compare (const GstDateTime * dt1, const GstDateTime * dt2); G_GNUC_INTERNAL gchar * __gst_date_time_serialize (GstDateTime * datetime, gboolean with_usecs); +/* For use in gstdebugutils */ +G_GNUC_INTERNAL +GstCapsFeatures * __gst_caps_get_features_unchecked (const GstCaps * caps, guint idx); + #ifndef GST_DISABLE_REGISTRY /* Secret variable to initialise gst without registry cache */ -GST_EXPORT gboolean _gst_disable_registry_cache; + +GST_API gboolean _gst_disable_registry_cache; #endif +/* Secret variable to let the plugin scanner use the same base path + * as the main application in order to determine dependencies */ +GST_API gchar *_gst_executable_path; + /* provide inline gst_g_value_get_foo_unchecked(), used in gststructure.c */ #define DEFINE_INLINE_G_VALUE_GET_UNCHECKED(ret_type,name_type,v_field) \ static inline ret_type \ @@ -208,43 +255,48 @@ 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_MEMORY; -GST_EXPORT GstDebugCategory *GST_CAT_PARENTAGE; -GST_EXPORT GstDebugCategory *GST_CAT_STATES; -GST_EXPORT GstDebugCategory *GST_CAT_SCHEDULING; -GST_EXPORT GstDebugCategory *GST_CAT_BUFFER; -GST_EXPORT GstDebugCategory *GST_CAT_BUFFER_LIST; -GST_EXPORT GstDebugCategory *GST_CAT_BUS; -GST_EXPORT GstDebugCategory *GST_CAT_CAPS; -GST_EXPORT GstDebugCategory *GST_CAT_CLOCK; -GST_EXPORT GstDebugCategory *GST_CAT_ELEMENT_PADS; -GST_EXPORT GstDebugCategory *GST_CAT_PADS; -GST_EXPORT GstDebugCategory *GST_CAT_PERFORMANCE; -GST_EXPORT GstDebugCategory *GST_CAT_PIPELINE; -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_NEGOTIATION; -GST_EXPORT GstDebugCategory *GST_CAT_REFCOUNTING; -GST_EXPORT GstDebugCategory *GST_CAT_ERROR_SYSTEM; -GST_EXPORT GstDebugCategory *GST_CAT_EVENT; -GST_EXPORT GstDebugCategory *GST_CAT_MESSAGE; -GST_EXPORT GstDebugCategory *GST_CAT_PARAMS; -GST_EXPORT GstDebugCategory *GST_CAT_CALL_TRACE; -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_META; -GST_EXPORT GstDebugCategory *GST_CAT_LOCKING; -GST_EXPORT GstDebugCategory *GST_CAT_CONTEXT; +GST_API GstDebugCategory *GST_CAT_GST_INIT; +GST_API GstDebugCategory *GST_CAT_MEMORY; +GST_API GstDebugCategory *GST_CAT_PARENTAGE; +GST_API GstDebugCategory *GST_CAT_STATES; +GST_API GstDebugCategory *GST_CAT_SCHEDULING; +GST_API GstDebugCategory *GST_CAT_BUFFER; +GST_API GstDebugCategory *GST_CAT_BUFFER_LIST; +GST_API GstDebugCategory *GST_CAT_BUS; +GST_API GstDebugCategory *GST_CAT_CAPS; +GST_API GstDebugCategory *GST_CAT_CLOCK; +GST_API GstDebugCategory *GST_CAT_ELEMENT_PADS; +GST_API GstDebugCategory *GST_CAT_PADS; +GST_API GstDebugCategory *GST_CAT_PERFORMANCE; +GST_API GstDebugCategory *GST_CAT_PIPELINE; +GST_API GstDebugCategory *GST_CAT_PLUGIN_LOADING; +GST_API GstDebugCategory *GST_CAT_PLUGIN_INFO; +GST_API GstDebugCategory *GST_CAT_PROPERTIES; +GST_API GstDebugCategory *GST_CAT_NEGOTIATION; +GST_API GstDebugCategory *GST_CAT_REFCOUNTING; +GST_API GstDebugCategory *GST_CAT_ERROR_SYSTEM; +GST_API GstDebugCategory *GST_CAT_EVENT; +GST_API GstDebugCategory *GST_CAT_MESSAGE; +GST_API GstDebugCategory *GST_CAT_PARAMS; +GST_API GstDebugCategory *GST_CAT_CALL_TRACE; +GST_API GstDebugCategory *GST_CAT_SIGNAL; +GST_API GstDebugCategory *GST_CAT_PROBE; +GST_API GstDebugCategory *GST_CAT_REGISTRY; +GST_API GstDebugCategory *GST_CAT_QOS; +GST_API GstDebugCategory *GST_CAT_META; +GST_API GstDebugCategory *GST_CAT_LOCKING; +GST_API GstDebugCategory *GST_CAT_CONTEXT; /* Categories that should be completely private to * libgstreamer should be done like this: */ #define GST_CAT_POLL _priv_GST_CAT_POLL extern GstDebugCategory *_priv_GST_CAT_POLL; +#define GST_CAT_PROTECTION _priv_GST_CAT_PROTECTION +extern GstDebugCategory *_priv_GST_CAT_PROTECTION; + +extern GstClockTime _priv_gst_start_time; + #else #define GST_CAT_GST_INIT NULL @@ -282,6 +334,7 @@ extern GstDebugCategory *_priv_GST_CAT_POLL; #define GST_CAT_META NULL #define GST_CAT_LOCKING NULL #define GST_CAT_CONTEXT NULL +#define GST_CAT_PROTECTION NULL #endif @@ -306,8 +359,6 @@ struct _GstPlugin { /*< private >*/ GstPluginDesc desc; - GstPluginDesc *orig_desc; - gchar * filename; gchar * basename; /* base name (non-dir part) of plugin path */ @@ -374,6 +425,27 @@ struct _GstTypeFindFactoryClass { gpointer _gst_reserved[GST_PADDING]; }; +struct _GstTracerFactory { + GstPluginFeature feature; + /* */ + + GType type; + + /* + gpointer user_data; + GDestroyNotify user_data_notify; + */ + + gpointer _gst_reserved[GST_PADDING]; +}; + +struct _GstTracerFactoryClass { + GstPluginFeatureClass parent; + /* */ + + gpointer _gst_reserved[GST_PADDING]; +}; + struct _GstElementFactory { GstPluginFeature parent; @@ -400,24 +472,37 @@ struct _GstElementFactoryClass { gpointer _gst_reserved[GST_PADDING]; }; -struct _GstDeviceMonitorFactory { +struct _GstDeviceProviderFactory { GstPluginFeature feature; /* */ GType type; /* unique GType the device factory or 0 if not loaded */ - volatile GstDeviceMonitor *monitor; + volatile GstDeviceProvider *provider; gpointer metadata; gpointer _gst_reserved[GST_PADDING]; }; -struct _GstDeviceMonitorFactoryClass { +struct _GstDeviceProviderFactoryClass { GstPluginFeatureClass parent; /* */ gpointer _gst_reserved[GST_PADDING]; }; +struct _GstDynamicTypeFactory { + GstPluginFeature feature; + + GType type; /* GType of the type, when loaded. 0 if not */ +}; + +struct _GstDynamicTypeFactoryClass { + GstPluginFeatureClass parent; +}; + +/* privat flag used by GstBus / GstMessage */ +#define GST_MESSAGE_FLAG_ASYNC_DELIVERY (GST_MINI_OBJECT_FLAG_LAST << 0) + G_END_DECLS #endif /* __GST_PRIVATE_H__ */