X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=gst%2Fgstregistry.h;h=a5ae6035f355e7cfb11d4e03efc86e815443a3b1;hb=cc6342d853f4252c5d5cf09fff9d3379ad467fbc;hp=f2d07c1d9accc4d16395d7ce9f5bda4473d36a43;hpb=3a4f580bb2891c883b36c91ad4e35ed45a58d419;p=platform%2Fupstream%2Fgstreamer.git diff --git a/gst/gstregistry.h b/gst/gstregistry.h index f2d07c1..a5ae603 100644 --- a/gst/gstregistry.h +++ b/gst/gstregistry.h @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ @@ -30,12 +30,12 @@ G_BEGIN_DECLS -#define GST_TYPE_REGISTRY (gst_registry_get_type ()) -#define GST_REGISTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_REGISTRY, GstRegistry)) -#define GST_IS_REGISTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_REGISTRY)) -#define GST_REGISTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_REGISTRY, GstRegistryClass)) -#define GST_IS_REGISTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_REGISTRY)) -#define GST_REGISTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_REGISTRY, GstRegistryClass)) +#define GST_TYPE_REGISTRY (gst_registry_get_type ()) +#define GST_REGISTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_REGISTRY, GstRegistry)) +#define GST_IS_REGISTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_REGISTRY)) +#define GST_REGISTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_REGISTRY, GstRegistryClass)) +#define GST_IS_REGISTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_REGISTRY)) +#define GST_REGISTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_REGISTRY, GstRegistryClass)) typedef struct _GstRegistry GstRegistry; typedef struct _GstRegistryClass GstRegistryClass; @@ -47,181 +47,86 @@ typedef struct _GstRegistryPrivate GstRegistryPrivate; * Opaque #GstRegistry structure. */ struct _GstRegistry { - GstObject object; + GstObject object; /*< private >*/ - GList *plugins; - GList *features; - - GList *paths; - - /* FIXME move these elsewhere */ - int cache_file; - - /* hash to speedup _lookup_feature_locked() */ - GHashTable *feature_hash; - /* hash to speedup _lookup */ - GHashTable *basename_hash; - GstRegistryPrivate *priv; - - /*< private >*/ - gpointer _gst_reserved[GST_PADDING]; }; struct _GstRegistryClass { - GstObjectClass parent_class; - - /* signals */ - void (*plugin_added) (GstRegistry *registry, GstPlugin *plugin); - void (*feature_added) (GstRegistry *registry, GstPluginFeature *feature); - - /*< private >*/ - gpointer _gst_reserved[GST_PADDING]; + GstObjectClass parent_class; }; +GST_API +GType gst_registry_get_type (void); -/* normal GObject stuff */ -GType gst_registry_get_type (void); +GST_API +GstRegistry * gst_registry_get (void); -GstRegistry * gst_registry_get_default (void); +GST_API +gboolean gst_registry_scan_path (GstRegistry *registry, const gchar *path); -gboolean gst_registry_scan_path (GstRegistry *registry, const gchar *path); +#if 0 void gst_registry_add_path (GstRegistry * registry, const gchar * path); -GList* gst_registry_get_path_list (GstRegistry *registry); +GList* gst_registry_get_path_list (GstRegistry *registry); +#endif + +GST_API +gboolean gst_registry_add_plugin (GstRegistry *registry, GstPlugin *plugin); -gboolean gst_registry_add_plugin (GstRegistry *registry, GstPlugin *plugin); -void gst_registry_remove_plugin (GstRegistry *registry, GstPlugin *plugin); +GST_API +void gst_registry_remove_plugin (GstRegistry *registry, GstPlugin *plugin); + +GST_API gboolean gst_registry_add_feature (GstRegistry * registry, GstPluginFeature * feature); + +GST_API void gst_registry_remove_feature (GstRegistry * registry, GstPluginFeature * feature); +GST_API GList* gst_registry_get_plugin_list (GstRegistry *registry); -GList* gst_registry_plugin_filter (GstRegistry *registry, - GstPluginFilter filter, - gboolean first, - gpointer user_data); -GList* gst_registry_feature_filter (GstRegistry *registry, - GstPluginFeatureFilter filter, - gboolean first, - gpointer user_data); + +GST_API +GList* gst_registry_plugin_filter (GstRegistry *registry, + GstPluginFilter filter, + gboolean first, + gpointer user_data); +GST_API +GList* gst_registry_feature_filter (GstRegistry *registry, + GstPluginFeatureFilter filter, + gboolean first, + gpointer user_data); +GST_API GList * gst_registry_get_feature_list (GstRegistry *registry, GType type); +GST_API GList * gst_registry_get_feature_list_by_plugin (GstRegistry *registry, const gchar *name); + +GST_API guint32 gst_registry_get_feature_list_cookie (GstRegistry *registry); -GstPlugin* gst_registry_find_plugin (GstRegistry *registry, const gchar *name); -GstPluginFeature* gst_registry_find_feature (GstRegistry *registry, const gchar *name, GType type); +GST_API +GstPlugin* gst_registry_find_plugin (GstRegistry *registry, const gchar *name); -GstPlugin * gst_registry_lookup (GstRegistry *registry, const char *filename); -GstPluginFeature * gst_registry_lookup_feature (GstRegistry *registry, const char *name); +GST_API +GstPluginFeature* gst_registry_find_feature (GstRegistry *registry, const gchar *name, GType type); -/* convinience defines for the default registry */ +GST_API +GstPlugin * gst_registry_lookup (GstRegistry *registry, const char *filename); -/** - * gst_default_registry_add_plugin: - * @plugin: (transfer full): the plugin to add - * - * Add the plugin to the default registry. - * The plugin-added signal will be emitted. - * - * Returns: TRUE on success. - */ -#define gst_default_registry_add_plugin(plugin) \ - gst_registry_add_plugin (gst_registry_get_default(), plugin) +GST_API +GstPluginFeature * gst_registry_lookup_feature (GstRegistry *registry, const char *name); -/** - * gst_default_registry_add_path: - * @path: the path to add to the registry - * - * Add the given path to the default registry. The syntax of the - * path is specific to the registry. If the path has already been - * added, do nothing. - */ -#define gst_default_registry_add_path(path) \ - gst_registry_add_path (gst_registry_get_default(), path) - -/** - * gst_default_registry_get_path_list: - * - * Get the list of paths for the default registry. - * - * Returns: (transfer container) (element-type char*): a #GList of paths as - * strings. g_list_free() after use. - */ -#define gst_default_registry_get_path_list() \ - gst_registry_get_path_list (gst_registry_get_default()) - -/** - * gst_default_registry_get_plugin_list: - * - * Get a copy of all plugins registered in the default registry. - * - * Returns: (transfer full) (element-type Gst.Plugin): a copy of the list. - * Free after use. - */ -#define gst_default_registry_get_plugin_list() \ - gst_registry_get_plugin_list (gst_registry_get_default()) - -/** - * gst_default_registry_find_feature: - * @name: the pluginfeature name to find - * @type: the pluginfeature type to find - * - * Find the pluginfeature with the given name and type in the default registry. - * - * Returns: (transfer full): the pluginfeature with the given name and type or - * NULL if the plugin was not found. - */ -#define gst_default_registry_find_feature(name,type) \ - gst_registry_find_feature (gst_registry_get_default(),name,type) - -/** - * gst_default_registry_find_plugin: - * @name: the plugin name to find - * - * Find the plugin with the given name in the default registry. - * The plugin will be reffed; caller is responsible for unreffing. - * - * Returns: (transfer full): The plugin with the given name or NULL if the - * plugin was not found. - */ -#define gst_default_registry_find_plugin(name) \ - gst_registry_find_plugin (gst_registry_get_default(),name) - -/** - * gst_default_registry_feature_filter: - * @filter: the filter to use - * @first: only return first match - * @user_data: user data passed to the filter function - * - * Runs a filter against all features of the plugins in the default registry - * and returns a GList with the results. - * If the first flag is set, only the first match is - * returned (as a list with a single object). - * - * Returns: (transfer full) (element-type Gst.PluginFeature): a #GList of - * plugin features, gst_plugin_feature_list_free after use. - */ -#define gst_default_registry_feature_filter(filter,first,user_data) \ - gst_registry_feature_filter (gst_registry_get_default(),filter,first,user_data) - -/** - * gst_default_registry_get_feature_list_cookie: - * - * Returns the default registrys feature list cookie. This changes - * every time a feature is added or removed from the registry. - * - * Returns: the feature list cookie. - * - * Since: 0.10.26 - */ -#define gst_default_registry_get_feature_list_cookie() \ - gst_registry_get_feature_list_cookie (gst_registry_get_default()) +GST_API +gboolean gst_registry_check_feature_version (GstRegistry *registry, + const gchar *feature_name, + guint min_major, + guint min_minor, + guint min_micro); -gboolean gst_default_registry_check_feature_version (const gchar *feature_name, - guint min_major, - guint min_minor, - guint min_micro); +#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstRegistry, gst_object_unref) +#endif G_END_DECLS