Merge CAPS branch
[platform/upstream/gstreamer.git] / gst / gstelement.h
index 15a9c66..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
 
@@ -314,7 +305,7 @@ 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);
@@ -326,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, ...);
@@ -335,7 +326,7 @@ 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);
 
@@ -408,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);
@@ -441,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);