X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=gst%2Fgst_private.h;h=b4567d68302816a69a3f4a54bc2cc939832cf56f;hb=53bf06c08814ff9ac3968d47daf11a395cf26a01;hp=1060934ab923c3a20167897c391832115b5e6edd;hpb=1ea831bd6cedbba89e5e78af58976238c89e5b75;p=platform%2Fupstream%2Fgstreamer.git diff --git a/gst/gst_private.h b/gst/gst_private.h index 1060934..b4567d6 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" @@ -89,12 +92,20 @@ struct _GstPluginPrivate { GstStructure *cache_data; }; +/* Needed by GstMeta (to access meta seq) and GstBuffer (create/free/iterate) */ +typedef struct _GstMetaItem GstMetaItem; +struct _GstMetaItem { + GstMetaItem *next; + guint64 seq_num; + GstMeta meta; +}; + /* FIXME: could rename all priv_gst_* functions to __gst_* now */ 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); @@ -129,6 +140,12 @@ 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); +G_GNUC_INTERNAL void _priv_gst_debug_cleanup (void); + +/* called from gst_task_cleanup_all(). */ +G_GNUC_INTERNAL void _priv_gst_element_cleanup (void); /* Private registry functions */ G_GNUC_INTERNAL @@ -136,12 +153,22 @@ 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); @@ -201,21 +228,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); -/* Non-static, for access from the testsuite, but not for external use */ -gboolean -_priv_gst_do_linear_regression (GstClockTime *times, guint n, - GstClockTime * m_num, GstClockTime * m_denom, GstClockTime * b, - GstClockTime * xbase, gdouble * r_squared); - /* 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 \ @@ -238,37 +264,37 @@ 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: */ @@ -342,8 +368,6 @@ struct _GstPlugin { /*< private >*/ GstPluginDesc desc; - GstPluginDesc *orig_desc; - gchar * filename; gchar * basename; /* base name (non-dir part) of plugin path */ @@ -476,6 +500,16 @@ struct _GstDeviceProviderFactoryClass { 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)