latency: Dot not override already stored events
[platform/upstream/gstreamer.git] / gst / gstpluginfeature.h
index 1a675cd..d8db095 100644 (file)
@@ -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.
  */
 
 
@@ -39,13 +39,10 @@ G_BEGIN_DECLS
 #define GST_PLUGIN_FEATURE_CAST(obj)            ((GstPluginFeature*)(obj))
 
 /**
- * GST_PLUGIN_FEATURE_NAME:
- * @feature: The feature to query
+ * GstPluginFeature:
  *
- * Get the name of the feature
+ * Opaque #GstPluginFeature structure.
  */
-#define GST_PLUGIN_FEATURE_NAME(feature)  (GST_PLUGIN_FEATURE (feature)->name)
-
 typedef struct _GstPluginFeature GstPluginFeature;
 typedef struct _GstPluginFeatureClass GstPluginFeatureClass;
 
@@ -72,45 +69,25 @@ typedef enum {
 } GstRank;
 
 /**
- * GstPluginFeature:
+ * gst_plugin_feature_get_name:
+ * @feature: a #GstPluginFeature to get the name of @feature.
+ *
+ * Returns the name of @feature.
+ * For a nameless plugin feature, this returns %NULL.
+ *
+ * Returns: (transfer none) (nullable): the name of @feature. MT safe.
  *
- * Opaque #GstPluginFeature structure.
  */
-struct _GstPluginFeature {
-  GstObject      object;
-
-  /*< private >*/
-  gboolean       loaded;
-  gchar         *name; /* FIXME-0.11: remove variable, we use GstObject:name */
-  guint          rank;
-
-  const gchar   *plugin_name;
-  GstPlugin     *plugin;      /* weak ref */
-
-  /*< private >*/
-  gpointer _gst_reserved[GST_PADDING - 1];
-};
-
-struct _GstPluginFeatureClass {
-  GstObjectClass        parent_class;
-
-  /*< private >*/
-  gpointer _gst_reserved[GST_PADDING];
-};
+#define                 gst_plugin_feature_get_name(feature)      GST_OBJECT_NAME(feature)
 
 /**
- * GstTypeNameData:
- * @name: a name
- * @type: a GType
+ * gst_plugin_feature_set_name:
+ * @feature: a #GstPluginFeature to set the name of.
+ * @name: the new name
  *
- * Structure used for filtering based on @name and @type.
+ * Sets the name of the plugin feature, getting rid of the old name if there was one.
  */
-#ifndef GST_DISABLE_DEPRECATED
-typedef struct {
-  const gchar   *name;
-  GType          type;
-} GstTypeNameData;
-#endif
+#define                 gst_plugin_feature_set_name(feature,name) gst_object_set_name(GST_OBJECT_CAST(feature),name)
 
 /**
  * GstPluginFeatureFilter:
@@ -127,23 +104,33 @@ typedef gboolean        (*GstPluginFeatureFilter)       (GstPluginFeature *featu
                                                          gpointer user_data);
 
 /* normal GObject stuff */
+
+GST_API
 GType           gst_plugin_feature_get_type             (void);
 
+GST_API
 GstPluginFeature *
                 gst_plugin_feature_load                 (GstPluginFeature *feature);
 
-#ifndef GST_DISABLE_DEPRECATED
-gboolean        gst_plugin_feature_type_name_filter     (GstPluginFeature *feature,
-                                                         GstTypeNameData *data);
-#endif
-
+GST_API
 void            gst_plugin_feature_set_rank             (GstPluginFeature *feature, guint rank);
-void            gst_plugin_feature_set_name             (GstPluginFeature *feature, const gchar *name);
+
+GST_API
 guint           gst_plugin_feature_get_rank             (GstPluginFeature *feature);
-const gchar    *gst_plugin_feature_get_name             (GstPluginFeature *feature);
 
+GST_API
+GstPlugin     * gst_plugin_feature_get_plugin           (GstPluginFeature *feature);
+
+GST_API
+const gchar   * gst_plugin_feature_get_plugin_name      (GstPluginFeature *feature);
+
+GST_API
 void            gst_plugin_feature_list_free            (GList *list);
+
+GST_API
 GList          *gst_plugin_feature_list_copy            (GList *list) G_GNUC_MALLOC;
+
+GST_API
 void            gst_plugin_feature_list_debug           (GList *list);
 
 /**
@@ -152,8 +139,6 @@ void            gst_plugin_feature_list_debug           (GList *list);
  *     plugin features
  *
  * Debug the plugin feature names in @list.
- *
- * Since: 0.10.31
  */
 #ifndef GST_DISABLE_GST_DEBUG
 #define GST_PLUGIN_FEATURE_LIST_DEBUG(list) gst_plugin_feature_list_debug(list)
@@ -161,13 +146,19 @@ void            gst_plugin_feature_list_debug           (GList *list);
 #define GST_PLUGIN_FEATURE_LIST_DEBUG(list)
 #endif
 
+GST_API
 gboolean        gst_plugin_feature_check_version        (GstPluginFeature *feature,
                                                          guint             min_major,
                                                          guint             min_minor,
                                                          guint             min_micro);
+GST_API
 gint            gst_plugin_feature_rank_compare_func    (gconstpointer p1,
                                                         gconstpointer p2);
 
+#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstPluginFeature, gst_object_unref)
+#endif
+
 G_END_DECLS