Merge CAPS branch
[platform/upstream/gstreamer.git] / gst / gstelement.h
index 18622ee..3ae5fbd 100644 (file)
@@ -45,10 +45,10 @@ struct _GstElementDetails {
   gchar *description;           /* insights of one form or another */
   gchar *author;                /* who wrote this thing? */
 
-  GST_STRUCT_PADDING
+  gpointer _gst_reserved[GST_PADDING];
 };
 #define GST_ELEMENT_DETAILS(longname,klass,description,author)         \
-  { longname, klass, description, author, GST_STRUCT_PADDING_INIT }
+  { longname, klass, description, author, GST_PADDING_INIT }
 #define GST_IS_ELEMENT_DETAILS(details) (                                      \
   (details) && ((details)->longname != NULL) && ((details)->klass != NULL)     \
   && ((details)->description != NULL) && ((details)->author != NULL))
@@ -73,20 +73,11 @@ struct _GstElementDetails {
 extern GType _gst_element_type;
 
 #define GST_TYPE_ELEMENT               (_gst_element_type)
-
-#define GST_ELEMENT_CAST(obj)          ((GstElement*)(obj))
-#define GST_ELEMENT_CLASS_CAST(klass)  ((GstElementClass*)(klass))
 #define GST_IS_ELEMENT(obj)            (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_ELEMENT))
 #define GST_IS_ELEMENT_CLASS(klass)    (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_ELEMENT))
 #define GST_ELEMENT_GET_CLASS(obj)     (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_ELEMENT, GstElementClass))
-
-#ifdef GST_TYPE_PARANOID
-# define GST_ELEMENT(obj)              (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_ELEMENT, GstElement))
-# define GST_ELEMENT_CLASS(klass)       (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_ELEMENT, GstElementClass))
-#else
-# define GST_ELEMENT                    GST_ELEMENT_CAST
-# define GST_ELEMENT_CLASS              GST_ELEMENT_CLASS_CAST
-#endif
+#define GST_ELEMENT(obj)               (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_ELEMENT, GstElement))
+#define GST_ELEMENT_CLASS(klass)       (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_ELEMENT, GstElementClass))
 
 /* convenience functions */
 #ifdef G_HAVE_ISO_VARARGS
@@ -184,7 +175,7 @@ struct _GstElement {
   GAsyncQueue          *prop_value_queue;
   GMutex               *property_mutex;
 
-  GST_OBJECT_PADDING
+  gpointer _gst_reserved[GST_PADDING];
 };
 
 struct _GstElementClass {
@@ -241,14 +232,14 @@ struct _GstElementClass {
   GstIndex*            (*get_index)            (GstElement *element);
   void                 (*set_index)            (GstElement *element, GstIndex *index);
 
-  GST_CLASS_PADDING
+  gpointer _gst_reserved[GST_PADDING];
 };
 
 void                   gst_element_class_add_pad_template      (GstElementClass *klass, GstPadTemplate *templ);
 void                    gst_element_class_install_std_props    (GstElementClass *klass,
                                                                 const gchar      *first_name, ...);
 void                   gst_element_class_set_details           (GstElementClass *klass,
-                                                                GstElementDetails *details);
+                                                                const GstElementDetails *details);
 
 #define                gst_element_default_deep_notify         gst_object_default_deep_notify
 
@@ -310,10 +301,11 @@ GstPad*                   gst_element_get_static_pad      (GstElement *element, const gchar *name);
 GstPad*                        gst_element_get_request_pad     (GstElement *element, const gchar *name);
 void                   gst_element_release_request_pad (GstElement *element, GstPad *pad);
 
-const GList*           gst_element_get_pad_list        (GstElement *element);
+G_CONST_RETURN GList*
+                       gst_element_get_pad_list        (GstElement *element);
 GstPad*                        gst_element_get_compatible_pad  (GstElement *element, GstPad *pad);
 GstPad*                        gst_element_get_compatible_pad_filtered (GstElement *element, GstPad *pad, 
-                                                        GstCaps *filtercaps);
+                                                        const GstCaps *filtercaps);
 
 GstPadTemplate*                gst_element_class_get_pad_template      (GstElementClass *element_class, const gchar *name);
 GList*                  gst_element_class_get_pad_template_list (GstElementClass *element_class);
@@ -325,7 +317,7 @@ gboolean            gst_element_link                (GstElement *src, GstElement *dest);
 gboolean               gst_element_link_many           (GstElement *element_1, 
                                                         GstElement *element_2, ...);
 gboolean               gst_element_link_filtered       (GstElement *src, GstElement *dest,
-                                                        GstCaps *filtercaps);
+                                                        const GstCaps *filtercaps);
 void                   gst_element_unlink              (GstElement *src, GstElement *dest);
 void                   gst_element_unlink_many         (GstElement *element_1, 
                                                         GstElement *element_2, ...);
@@ -334,18 +326,21 @@ gboolean          gst_element_link_pads           (GstElement *src, const gchar *srcpadname,
                                                         GstElement *dest, const gchar *destpadname);
 gboolean               gst_element_link_pads_filtered  (GstElement *src, const gchar *srcpadname,
                                                         GstElement *dest, const gchar *destpadname,
-                                                        GstCaps *filtercaps);
+                                                        const GstCaps *filtercaps);
 void                   gst_element_unlink_pads         (GstElement *src, const gchar *srcpadname,
                                                         GstElement *dest, const gchar *destpadname);
 
-const GstEventMask*    gst_element_get_event_masks     (GstElement *element);
+G_CONST_RETURN GstEventMask*
+                       gst_element_get_event_masks     (GstElement *element);
 gboolean               gst_element_send_event          (GstElement *element, GstEvent *event);
 gboolean               gst_element_seek                (GstElement *element, GstSeekType seek_type,
                                                         guint64 offset);
-const GstQueryType*    gst_element_get_query_types     (GstElement *element);
+G_CONST_RETURN GstQueryType*
+                       gst_element_get_query_types     (GstElement *element);
 gboolean               gst_element_query               (GstElement *element, GstQueryType type,
                                                         GstFormat *format, gint64 *value);
-const GstFormat*       gst_element_get_formats         (GstElement *element);
+G_CONST_RETURN GstFormat*
+                       gst_element_get_formats         (GstElement *element);
 gboolean               gst_element_convert             (GstElement *element, 
                                                         GstFormat  src_format,  gint64  src_value,
                                                         GstFormat *dest_format, gint64 *dest_value);
@@ -367,7 +362,7 @@ GstElementStateReturn       gst_element_set_state           (GstElement *element, GstElementSta
 
 void                   gst_element_wait_state_change   (GstElement *element);
        
-const gchar*           gst_element_state_get_name      (GstElementState state);
+G_CONST_RETURN gchar*  gst_element_state_get_name      (GstElementState state);
 
 GstElementFactory*     gst_element_get_factory         (GstElement *element);
 
@@ -404,13 +399,13 @@ struct _GstElementFactory {
   
   GList *              interfaces;             /* interfaces this element implements */
 
-  GST_OBJECT_PADDING
+  gpointer _gst_reserved[GST_PADDING];
 };
 
 struct _GstElementFactoryClass {
   GstPluginFeatureClass parent_class;
 
-  GST_CLASS_PADDING
+  gpointer _gst_reserved[GST_PADDING];
 };
 
 GType                  gst_element_factory_get_type            (void);
@@ -427,8 +422,8 @@ G_CONST_RETURN gchar *      gst_element_factory_get_klass           (GstElementFactory *factor
 G_CONST_RETURN gchar * gst_element_factory_get_description     (GstElementFactory *factory);
 G_CONST_RETURN gchar * gst_element_factory_get_version         (GstElementFactory *factory);
 G_CONST_RETURN gchar * gst_element_factory_get_author          (GstElementFactory *factory);
-guint                  gst_element_factory_get_num_padtemplates (GstElementFactory *factory);
-G_CONST_RETURN GList * gst_element_factory_get_padtemplates    (GstElementFactory *factory);
+guint                  gst_element_factory_get_num_pad_templates (GstElementFactory *factory);
+G_CONST_RETURN GList * gst_element_factory_get_pad_templates   (GstElementFactory *factory);
 guint                  gst_element_factory_get_uri_type        (GstElementFactory *factory);           
 gchar **               gst_element_factory_get_uri_protocols   (GstElementFactory *factory);           
 
@@ -437,9 +432,9 @@ GstElement*         gst_element_factory_create              (GstElementFactory *factory,
 GstElement*            gst_element_factory_make                (const gchar *factoryname, const gchar *name);
 
 gboolean               gst_element_factory_can_src_caps        (GstElementFactory *factory,
-                                                                GstCaps *caps);
+                                                                const GstCaps *caps);
 gboolean               gst_element_factory_can_sink_caps       (GstElementFactory *factory,
-                                                                GstCaps *caps);
+                                                                const GstCaps *caps);
 
 void                   __gst_element_factory_add_pad_template  (GstElementFactory *elementfactory,
                                                                 GstPadTemplate *templ);