- Cleanups
authorWim Taymans <wim.taymans@gmail.com>
Thu, 19 Dec 2002 21:31:03 +0000 (21:31 +0000)
committerWim Taymans <wim.taymans@gmail.com>
Thu, 19 Dec 2002 21:31:03 +0000 (21:31 +0000)
Original commit message from CVS:
- Cleanups
- Added padding to structs
- fixed typechecking/casts
- reduced casts
- implemented remove_element in gstbin
- implemented set index on bin

33 files changed:
gst/gstbin.c
gst/gstbin.h
gst/gstbuffer.c
gst/gstbuffer.h
gst/gstbufferpool-default.c
gst/gstclock.c
gst/gstclock.h
gst/gstelement.c
gst/gstelement.h
gst/gstformat.c
gst/gstformat.h
gst/gstindex.c
gst/gstindex.h
gst/gstobject.c
gst/gstobject.h
gst/gstpad.h
gst/gstparse.h
gst/gstpipeline.h
gst/gstplugin.c
gst/gstpluginfeature.c
gst/gstpluginfeature.h
gst/gstregistry.c
gst/gstregistry.h
gst/gstscheduler.c
gst/gstscheduler.h
gst/gstsystemclock.c
gst/gstsystemclock.h
gst/gstthread.h
gst/gsttype.h
gst/gsttypefind.h
gst/gstxml.h
gst/parse/.gitignore
gst/schedulers/gstbasicscheduler.c

index 9edac83aaac568fa78b6125009ab86af253cc13a..da7793bae3032ac5827c039f7905b1122244ff1b 100644 (file)
@@ -30,6 +30,7 @@
 #include "gstlog.h"
 
 #include "gstscheduler.h"
+#include "gstindex.h"
 
 GstElementDetails gst_bin_details = {
   "Generic bin",
@@ -48,6 +49,8 @@ static void                   gst_bin_dispose                 (GObject * object);
 static GstElementStateReturn   gst_bin_change_state            (GstElement *element);
 static GstElementStateReturn   gst_bin_change_state_norecurse  (GstBin *bin);
 
+static void                    gst_bin_set_index               (GstBin *bin, GstIndex *index);
+
 static gboolean                gst_bin_iterate_func            (GstBin * bin);
 
 #ifndef GST_DISABLE_LOADSAVE
@@ -58,7 +61,8 @@ static void                   gst_bin_restore_thyself         (GstObject * object, xmlNodePtr self);
 /* Bin signals and args */
 enum
 {
-  OBJECT_ADDED,
+  ELEMENT_ADDED,
+  ELEMENT_REMOVED,
   LAST_SIGNAL
 };
 
@@ -109,12 +113,17 @@ gst_bin_class_init (GstBinClass * klass)
 
   parent_class = g_type_class_ref (GST_TYPE_ELEMENT);
 
-  gst_bin_signals[OBJECT_ADDED] =
-    g_signal_new ("object_added", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_FIRST,
-                 G_STRUCT_OFFSET (GstBinClass, object_added), NULL, NULL,
+  gst_bin_signals[ELEMENT_ADDED] =
+    g_signal_new ("element_added", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_FIRST,
+                 G_STRUCT_OFFSET (GstBinClass, element_added), NULL, NULL,
+                 gst_marshal_VOID__POINTER, G_TYPE_NONE, 1, G_TYPE_POINTER);
+  gst_bin_signals[ELEMENT_REMOVED] =
+    g_signal_new ("element_removed", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_FIRST,
+                 G_STRUCT_OFFSET (GstBinClass, element_removed), NULL, NULL,
                  gst_marshal_VOID__POINTER, G_TYPE_NONE, 1, G_TYPE_POINTER);
 
   gobject_class->dispose               = GST_DEBUG_FUNCPTR (gst_bin_dispose);
+  gobject_class->dispose               = GST_DEBUG_FUNCPTR (gst_bin_dispose);
 
 #ifndef GST_DISABLE_LOADSAVE
   gstobject_class->save_thyself        = GST_DEBUG_FUNCPTR (gst_bin_save_thyself);
@@ -122,6 +131,7 @@ gst_bin_class_init (GstBinClass * klass)
 #endif
 
   gstelement_class->change_state       = GST_DEBUG_FUNCPTR (gst_bin_change_state);
+  gstelement_class->set_index          = GST_DEBUG_FUNCPTR (gst_bin_set_index);
 
   klass->iterate                       = GST_DEBUG_FUNCPTR (gst_bin_iterate_func);
 }
@@ -137,8 +147,8 @@ gst_bin_init (GstBin * bin)
   
   bin->pre_iterate_func = NULL;
   bin->post_iterate_func = NULL;
-  bin->pre_iterate_private = NULL;
-  bin->post_iterate_private = NULL;
+  bin->pre_iterate_data = NULL;
+  bin->post_iterate_data = NULL;
 }
 
 /**
@@ -210,16 +220,31 @@ gst_bin_auto_clock (GstBin *bin)
 }
 
 static void
-gst_bin_set_element_sched (GstElement *element, GstScheduler *sched)
+gst_bin_set_index (GstBin *bin, GstIndex *index)
 {
   GList *children;
-  GstElement *child;
+  
+  g_return_if_fail (GST_IS_BIN (bin));
+
+  children = bin->children;
+  while (children) {
+    GstElement *child = GST_ELEMENT (children->data);
+    children = g_list_next (children);
 
+    gst_element_set_index (child, index);
+  }
+}
+
+static void
+gst_bin_set_element_sched (GstElement *element, GstScheduler *sched)
+{
   GST_INFO (GST_CAT_SCHEDULING, "setting element \"%s\" sched to %p", GST_ELEMENT_NAME (element),
            sched);
 
   /* if it's actually a Bin */
   if (GST_IS_BIN (element)) {
+    GList *children;
+
     if (GST_FLAG_IS_SET (element, GST_BIN_FLAG_MANAGER)) {
       GST_INFO_ELEMENT (GST_CAT_PARENTAGE, element, "child is already a manager, not resetting");
       if (GST_ELEMENT_SCHED (element))
@@ -233,7 +258,7 @@ gst_bin_set_element_sched (GstElement *element, GstScheduler *sched)
     /* set the children's schedule */
     children = GST_BIN (element)->children;
     while (children) {
-      child = GST_ELEMENT (children->data);
+      GstElement *child = GST_ELEMENT (children->data);
       children = g_list_next (children);
 
       gst_bin_set_element_sched (child, sched);
@@ -431,7 +456,7 @@ gst_bin_add (GstBin *bin, GstElement *element)
 
   GST_INFO_ELEMENT (GST_CAT_PARENTAGE, bin, "added child \"%s\"", GST_ELEMENT_NAME (element));
 
-  g_signal_emit (G_OBJECT (bin), gst_bin_signals[OBJECT_ADDED], 0, element);
+  g_signal_emit (G_OBJECT (bin), gst_bin_signals[ELEMENT_ADDED], 0, element);
 }
 
 /**
@@ -486,6 +511,8 @@ gst_bin_remove (GstBin *bin, GstElement *element)
 
   GST_INFO_ELEMENT (GST_CAT_PARENTAGE, bin, "removed child %s", GST_ELEMENT_NAME (element));
 
+  /* ref as we're going to emit a signal */
+  gst_object_ref (GST_OBJECT (element));
   gst_object_unparent (GST_OBJECT (element));
 
   /* if we're down to zero children, force state to NULL */
@@ -493,6 +520,10 @@ gst_bin_remove (GstBin *bin, GstElement *element)
     GST_STATE_PENDING (bin) = GST_STATE_NULL;
     gst_bin_change_state_norecurse (bin);
   }
+  g_signal_emit (G_OBJECT (bin), gst_bin_signals[ELEMENT_REMOVED], 0, element);
+
+  /* element is really out of our control now */
+  gst_object_unref (GST_OBJECT (element));
 }
 
 /**
@@ -860,16 +891,16 @@ gst_bin_iterate (GstBin *bin)
   g_return_val_if_fail (bin != NULL, FALSE);
   g_return_val_if_fail (GST_IS_BIN (bin), FALSE);
 
-  oclass = GST_BIN_CLASS (G_OBJECT_GET_CLASS (bin));
+  oclass = GST_BIN_GET_CLASS (bin);
 
   if (bin->pre_iterate_func)
-    (bin->pre_iterate_func) (bin, bin->pre_iterate_private);
+    (bin->pre_iterate_func) (bin, bin->pre_iterate_data);
 
   if (oclass->iterate)
     running = (oclass->iterate) (bin);
 
   if (bin->post_iterate_func)
-    (bin->post_iterate_func) (bin, bin->post_iterate_private);
+    (bin->post_iterate_func) (bin, bin->post_iterate_data);
 
   GST_DEBUG_LEAVE ("(\"%s\") %d", GST_ELEMENT_NAME (bin), running);
 
@@ -891,13 +922,13 @@ gst_bin_iterate (GstBin *bin)
  * gst_bin_set_pre_iterate_function:
  * @bin: #Gstbin to attach to
  * @func: callback function to call
- * @func_data: private data to put in the function call
+ * @user_data: user data to put in the function call
  *
  * Attaches a callback which will be run before every iteration of the bin
  *
  */
 void
-gst_bin_set_pre_iterate_function (GstBin *bin, GstBinPrePostIterateFunction func, gpointer func_data)
+gst_bin_set_pre_iterate_function (GstBin *bin, GstBinPrePostIterateFunction func, gpointer user_data)
 {
   g_return_if_fail (GST_IS_BIN (bin));
 
@@ -905,20 +936,20 @@ gst_bin_set_pre_iterate_function (GstBin *bin, GstBinPrePostIterateFunction func
     g_warning ("setting pre_iterate on a non MANAGER bin has no effect");
   
   bin->pre_iterate_func = func;
-  bin->pre_iterate_private = func_data;
+  bin->pre_iterate_data = user_data;
 }
 
 /**
  * gst_bin_set_post_iterate_function:
  * @bin: #Gstbin to attach to
  * @func: callback function to call
- * @func_data: private data to put in the function call
+ * @user_data: user data to put in the function call
  *
  * Attaches a callback which will be run after every iteration of the bin
  *
  */
 void
-gst_bin_set_post_iterate_function (GstBin *bin, GstBinPrePostIterateFunction func, gpointer func_data)
+gst_bin_set_post_iterate_function (GstBin *bin, GstBinPrePostIterateFunction func, gpointer user_data)
 {
   g_return_if_fail (GST_IS_BIN (bin));
 
@@ -926,6 +957,6 @@ gst_bin_set_post_iterate_function (GstBin *bin, GstBinPrePostIterateFunction fun
     g_warning ("setting post_iterate on a non MANAGER bin has no effect");
 
   bin->post_iterate_func = func;
-  bin->post_iterate_private = func_data;
+  bin->post_iterate_data = user_data;
 }
 
index bb99bea9ef118b7377b3a3521c510e7ce787b985..ed48f84e781b5c83dc5797568e31f12e25868cce 100644 (file)
@@ -31,9 +31,10 @@ G_BEGIN_DECLS
 extern GstElementDetails gst_bin_details;
 extern GType _gst_bin_type;
 
-#define GST_TYPE_BIN                 (_gst_bin_type)
-# define GST_IS_BIN(obj)             (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_BIN))
-# define GST_IS_BIN_CLASS(obj)       (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_BIN))
+#define GST_TYPE_BIN             (_gst_bin_type)
+#define GST_IS_BIN(obj)          (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_BIN))
+#define GST_IS_BIN_CLASS(klass)  (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_BIN))
+#define GST_BIN_GET_CLASS(obj)   (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_BIN, GstBinClass))
 
 #define GST_BIN_CAST(obj)            ((GstBin*)(obj))
 #define GST_BIN_CLASS_CAST(klass)    ((GstBinClass*)(klass))
@@ -46,7 +47,7 @@ extern GType _gst_bin_type;
 # define GST_BIN_CLASS               GST_BIN_CLASS_CAST
 #endif
 
-typedef void           (*GstBinPrePostIterateFunction)         (GstBin *bin, gpointer data);
+typedef void           (*GstBinPrePostIterateFunction)         (GstBin *bin, gpointer user_data);
 
 typedef enum {
   /* this bin is a manager of child elements, i.e. a pipeline or thread */
@@ -76,12 +77,12 @@ struct _GstBin {
 
   GstElementState child_states[GST_NUM_STATES];
 
-  gpointer      sched_private;
-
   GstBinPrePostIterateFunction  pre_iterate_func;
   GstBinPrePostIterateFunction post_iterate_func;
-  gpointer                 pre_iterate_private;
-  gpointer                 post_iterate_private;
+  gpointer                 pre_iterate_data;
+  gpointer                 post_iterate_data;
+
+  gpointer      dummy[8];
 };
 
 struct _GstBinClass {
@@ -90,13 +91,15 @@ struct _GstBinClass {
   /* vtable */
   void         (*add_element)          (GstBin *bin, GstElement);
   void         (*remove_element)       (GstBin *bin, GstElement);
+
   /* run a full iteration of operation */
   gboolean     (*iterate)              (GstBin *bin);
 
   /* signals */
-  void         (*object_added)         (GstObject *object, GstObject *child);
-  void         (*object_removed)       (GstObject *object, GstObject *child);
+  void         (*element_added)        (GstBin *bin, GstElement *child);
+  void         (*element_removed)      (GstBin *bin, GstElement *child);
 
+  gpointer      dummy[8];
 };
 
 GType          gst_bin_get_type                (void);
@@ -121,11 +124,15 @@ void              gst_bin_auto_clock              (GstBin *bin);
 
 /* internal */
 /* one of our childs signaled a state change */
-void           gst_bin_child_state_change      (GstBin *bin, GstElementState oldstate, 
-                                                GstElementState newstate, GstElement *child);
-
-void           gst_bin_set_pre_iterate_function (GstBin *bin, GstBinPrePostIterateFunction func, gpointer func_data);
-void           gst_bin_set_post_iterate_function (GstBin *bin, GstBinPrePostIterateFunction func, gpointer func_data);
+void           gst_bin_child_state_change              (GstBin *bin, GstElementState oldstate, 
+                                                        GstElementState newstate, GstElement *child);
+
+void           gst_bin_set_pre_iterate_function        (GstBin *bin, 
+                                                        GstBinPrePostIterateFunction func, 
+                                                        gpointer user_data);
+void           gst_bin_set_post_iterate_function       (GstBin *bin, 
+                                                        GstBinPrePostIterateFunction func, 
+                                                        gpointer user_data);
 
 G_END_DECLS
 
index 01f96ca221b0dc3446a3c3aeefb8a061b523b6a0..af5e9c074c060ab65e1bfa17fdb268a9a026a4e8 100644 (file)
@@ -219,7 +219,8 @@ gst_buffer_new_and_alloc (guint size)
  * Returns: the new #GstBuffer, or NULL if there was an error.
  */
 GstBuffer*
-gst_buffer_new_from_pool (GstBufferPool *pool, guint64 offset, guint size)
+gst_buffer_new_from_pool (GstBufferPool *pool, 
+                         gint64 offset, guint size)
 {
   GstBuffer *buffer;
   
index c73f68b1a549f7d9059967ee11f15a362948e8ae..35026178b3f7f7d75a68f5ee03dd04b6ed13b547 100644 (file)
@@ -56,6 +56,7 @@ extern GType _gst_buffer_pool_type;
 #define GST_BUFFER_SIZE(buf)                   (GST_BUFFER(buf)->size)
 #define GST_BUFFER_MAXSIZE(buf)                        (GST_BUFFER(buf)->maxsize)
 #define GST_BUFFER_TIMESTAMP(buf)              (GST_BUFFER(buf)->timestamp)
+#define GST_BUFFER_FORMAT(buf)                 (GST_BUFFER(buf)->format)
 #define GST_BUFFER_OFFSET(buf)                 (GST_BUFFER(buf)->offset)
 #define GST_BUFFER_BUFFERPOOL(buf)             (GST_BUFFER(buf)->pool)
 #define GST_BUFFER_POOL_PRIVATE(buf)           (GST_BUFFER(buf)->pool_private)
@@ -79,7 +80,9 @@ struct _GstBuffer {
   guint                 size;                  /* size of buffer data */
   guint64               maxsize;               /* max size of this buffer */
 
+  /* timestamp */
   guint64               timestamp;             
+  /* media specific offset */
   guint64               offset;
 
   /* this is a pointer to the buffer pool (if any) */
@@ -90,9 +93,14 @@ struct _GstBuffer {
 
 /* bufferpools */
 
-typedef GstBuffer*     (*GstBufferPoolBufferNewFunction)       (GstBufferPool *pool, guint64 offset, guint size, gpointer user_data);
-typedef GstBuffer*     (*GstBufferPoolBufferCopyFunction)      (GstBufferPool *pool, const GstBuffer *buffer, gpointer user_data);
-typedef void           (*GstBufferPoolBufferFreeFunction)      (GstBufferPool *pool, GstBuffer *buffer, gpointer user_data);
+typedef GstBuffer*     (*GstBufferPoolBufferNewFunction)       (GstBufferPool *pool, gint64 offset, 
+                                                                guint size, gpointer user_data);
+typedef GstBuffer*     (*GstBufferPoolBufferCopyFunction)      (GstBufferPool *pool, 
+                                                                const GstBuffer *buffer, 
+                                                                gpointer user_data);
+typedef void           (*GstBufferPoolBufferFreeFunction)      (GstBufferPool *pool, 
+                                                                GstBuffer *buffer, 
+                                                                gpointer user_data);
 
 struct _GstBufferPool {
   GstData                              data;
@@ -106,22 +114,13 @@ struct _GstBufferPool {
   gpointer                             user_data;
 };
 
-
-/*< private >*/
-void           _gst_buffer_initialize          (void);
-
-/* functions used by subclasses and bufferpools */
-void           gst_buffer_default_free         (GstBuffer *buffer);
-GstBuffer*     gst_buffer_default_copy         (GstBuffer *buffer);
-
-void           gst_buffer_print_stats          (void);
-
 /* allocation */
 GstBuffer*     gst_buffer_new                  (void);
 GstBuffer*     gst_buffer_new_and_alloc        (guint size);
 
 /* creating a new buffer from a pool */
-GstBuffer*     gst_buffer_new_from_pool        (GstBufferPool *pool, guint64 offset, guint size);
+GstBuffer*     gst_buffer_new_from_pool        (GstBufferPool *pool, 
+                                                gint64 offset, guint size);
 
 #define                gst_buffer_set_data(buf, data, size)    \
 G_STMT_START {                                                 \
@@ -147,6 +146,15 @@ GstBuffer* gst_buffer_merge                (GstBuffer *buf1, GstBuffer *buf2);
 gboolean       gst_buffer_is_span_fast         (GstBuffer *buf1, GstBuffer *buf2);
 GstBuffer*     gst_buffer_span                 (GstBuffer *buf1, guint32 offset, GstBuffer *buf2, guint32 len);
 
+/* --- private --- */
+void           _gst_buffer_initialize          (void);
+
+/* functions used by subclasses and bufferpools */
+void           gst_buffer_default_free         (GstBuffer *buffer);
+GstBuffer*     gst_buffer_default_copy         (GstBuffer *buffer);
+
+void           gst_buffer_print_stats          (void);
+
 
 /* creating a new buffer pools */
 GstBufferPool* gst_buffer_pool_new                     (GstDataFreeFunction free,
@@ -159,6 +167,7 @@ GstBufferPool*      gst_buffer_pool_new                     (GstDataFreeFunction free,
 /* function used by subclasses and bufferpools */
 void           gst_buffer_pool_default_free            (GstBufferPool *pool);
 
+/* check if pool is usable */
 gboolean       gst_buffer_pool_is_active               (GstBufferPool *pool);
 void           gst_buffer_pool_set_active              (GstBufferPool *pool, gboolean active);
 
index e33fe44e6e0bb1a64297b170e88799d5f0895665..7a07c874f0d7e1cbf8dfd0bc1777f6e717b2cdec 100644 (file)
@@ -29,8 +29,7 @@
  * gstbuffer.c */
 
 static GstBuffer*      _gst_buffer_pool_default_buffer_new     (GstBufferPool *pool,
-                                                                 guint64 offset,
-                                                                 guint size,
+                                                                 gint64 offset, guint size,
                                                                  gpointer user_data);
 static void            _gst_buffer_pool_default_buffer_free    (GstBufferPool *pool,
                                                                  GstBuffer *buffer,
@@ -114,11 +113,11 @@ gst_buffer_pool_get_default (guint buffer_size, guint pool_size)
 }
 
 static GstBuffer* 
-_gst_buffer_pool_default_buffer_new (GstBufferPool *pool, guint64 offset /*unused*/,
-                                    guint size /*unused*/, gpointer user_data)
+_gst_buffer_pool_default_buffer_new (GstBufferPool *pool, gint64 offset,
+                                     guint size, gpointer user_data)
 {
   GstBuffer *buffer;
-  GstBufferPoolDefault *def = (GstBufferPoolDefault*)user_data;
+  GstBufferPoolDefault *def = (GstBufferPoolDefault*) user_data;
   GstMemChunk *data_chunk = def->mem_chunk;
   
   buffer = gst_buffer_new ();
index 658a51b6bef912b7031dcc3e4ea3db942dc21d2a..f1ff4c7b0c64e8e131c2a2d6e44a6048cc717659 100644 (file)
@@ -34,8 +34,6 @@ enum {
   ARG_STATS,
 };
 
-#define CLASS(clock)  GST_CLOCK_CLASS (G_OBJECT_GET_CLASS (clock))
-
 static GstMemChunk *_gst_clock_entries_chunk;
 
 static void            gst_clock_class_init            (GstClockClass *klass);
@@ -151,6 +149,7 @@ gst_clock_id_wait (GstClockID id, GstClockTimeDiff *jitter)
   GstClock *clock;
   GstClockReturn res = GST_CLOCK_UNSUPPORTED;
   GstClockTime requested;
+  GstClockClass *cclass;
   
   g_return_val_if_fail (id != NULL, GST_CLOCK_ERROR);
 
@@ -163,12 +162,13 @@ gst_clock_id_wait (GstClockID id, GstClockTimeDiff *jitter)
   }
   
   clock = GST_CLOCK_ENTRY_CLOCK (entry);
+  cclass = GST_CLOCK_GET_CLASS (clock);
   
-  if (CLASS (clock)->wait) {
+  if (cclass->wait) {
     GstClockTime now;
 
     do {
-      res = CLASS (clock)->wait (clock, entry);
+      res = cclass->wait (clock, entry);
     }
     while (res == GST_CLOCK_ENTRY_RESTART);
 
@@ -208,6 +208,7 @@ gst_clock_id_wait_async (GstClockID id,
   GstClockEntry *entry;
   GstClock *clock;
   GstClockReturn res = GST_CLOCK_UNSUPPORTED;
+  GstClockClass *cclass;
   
   g_return_val_if_fail (id != NULL, GST_CLOCK_ERROR);
   g_return_val_if_fail (func != NULL, GST_CLOCK_ERROR);
@@ -220,8 +221,13 @@ gst_clock_id_wait_async (GstClockID id,
     return GST_CLOCK_TIMEOUT;
   }
 
-  if (CLASS (clock)->wait_async) {
-    res = CLASS (clock)->wait_async (clock, entry, func, user_data);
+  cclass = GST_CLOCK_GET_CLASS (clock);
+
+  if (cclass->wait_async) {
+    entry->func = func;
+    entry->user_data = user_data;
+
+    res = cclass->wait_async (clock, entry);
   }
 
   return res;
@@ -238,14 +244,17 @@ gst_clock_id_unschedule (GstClockID id)
 {
   GstClockEntry *entry;
   GstClock *clock;
+  GstClockClass *cclass;
   
   g_return_if_fail (id != NULL);
 
   entry = (GstClockEntry *) id;
   clock = entry->clock;
 
-  if (CLASS (clock)->unschedule)
-    CLASS (clock)->unschedule (clock, entry);
+  cclass = GST_CLOCK_GET_CLASS (clock);
+
+  if (cclass->unschedule)
+    cclass->unschedule (clock, entry);
 }
 
 /**
@@ -273,14 +282,17 @@ gst_clock_id_unlock (GstClockID id)
 {
   GstClockEntry *entry;
   GstClock *clock;
+  GstClockClass *cclass;
   
   g_return_if_fail (id != NULL);
 
   entry = (GstClockEntry *) id;
   clock = entry->clock;
 
-  if (CLASS (clock)->unlock)
-    CLASS (clock)->unlock (clock, entry);
+  cclass = GST_CLOCK_GET_CLASS (clock);
+
+  if (cclass->unlock)
+    cclass->unlock (clock, entry);
 }
 
 
@@ -368,10 +380,14 @@ gst_clock_init (GstClock *clock)
 gdouble
 gst_clock_set_speed (GstClock *clock, gdouble speed)
 {
+  GstClockClass *cclass;
+
   g_return_val_if_fail (GST_IS_CLOCK (clock), 0.0);
 
-  if (CLASS (clock)->change_speed)
-    clock->speed = CLASS (clock)->change_speed (clock, clock->speed, speed);
+  cclass = GST_CLOCK_GET_CLASS (clock);
+
+  if (cclass->change_speed)
+    clock->speed = cclass->change_speed (clock, clock->speed, speed);
 
   return clock->speed;
 }
@@ -404,11 +420,15 @@ gst_clock_get_speed (GstClock *clock)
 guint64
 gst_clock_set_resolution (GstClock *clock, guint64 resolution)
 {
+  GstClockClass *cclass;
+
   g_return_val_if_fail (GST_IS_CLOCK (clock), 0LL);
   g_return_val_if_fail (resolution != 0, 0LL);
 
-  if (CLASS (clock)->change_resolution)
-    clock->resolution = CLASS (clock)->change_resolution (clock, clock->resolution, resolution);
+  cclass = GST_CLOCK_GET_CLASS (clock);
+
+  if (cclass->change_resolution)
+    clock->resolution = cclass->change_resolution (clock, clock->resolution, resolution);
 
   return clock->resolution;
 }
@@ -424,10 +444,14 @@ gst_clock_set_resolution (GstClock *clock, guint64 resolution)
 guint64
 gst_clock_get_resolution (GstClock *clock)
 {
+  GstClockClass *cclass;
+
   g_return_val_if_fail (GST_IS_CLOCK (clock), 0LL);
 
-  if (CLASS (clock)->get_resolution)
-    return CLASS (clock)->get_resolution (clock);
+  cclass = GST_CLOCK_GET_CLASS (clock);
+
+  if (cclass->get_resolution)
+    return cclass->get_resolution (clock);
 
   return 1LL;
 }
@@ -444,13 +468,16 @@ void
 gst_clock_set_active (GstClock *clock, gboolean active)
 {
   GstClockTime time = 0LL;
+  GstClockClass *cclass;
 
   g_return_if_fail (GST_IS_CLOCK (clock));
 
   clock->active = active;
+
+  cclass = GST_CLOCK_GET_CLASS (clock);
                
-  if (CLASS (clock)->get_internal_time) {
-    time = CLASS (clock)->get_internal_time (clock);
+  if (cclass->get_internal_time) {
+    time = cclass->get_internal_time (clock);
   }
 
   GST_LOCK (clock);
@@ -495,11 +522,14 @@ void
 gst_clock_reset (GstClock *clock)
 {
   GstClockTime time = 0LL;
+  GstClockClass *cclass;
 
   g_return_if_fail (GST_IS_CLOCK (clock));
 
-  if (CLASS (clock)->get_internal_time) {
-    time = CLASS (clock)->get_internal_time (clock);
+  cclass = GST_CLOCK_GET_CLASS (clock);
+               
+  if (cclass->get_internal_time) {
+    time = cclass->get_internal_time (clock);
   }
 
   GST_LOCK (clock);
@@ -534,8 +564,12 @@ gst_clock_handle_discont (GstClock *clock, guint64 time)
 
   GST_LOCK (clock);
   if (clock->accept_discont) {
-    if (CLASS (clock)->get_internal_time) {
-      itime = CLASS (clock)->get_internal_time (clock);
+    GstClockClass *cclass;
+
+    cclass = GST_CLOCK_GET_CLASS (clock);
+         
+    if (cclass->get_internal_time) {
+      itime = cclass->get_internal_time (clock);
     }
   }
   else {
@@ -582,8 +616,12 @@ gst_clock_get_time (GstClock *clock)
     ret = clock->last_time;
   }
   else {
-    if (CLASS (clock)->get_internal_time) {
-      ret = CLASS (clock)->get_internal_time (clock) - clock->start_time;
+    GstClockClass *cclass;
+
+    cclass = GST_CLOCK_GET_CLASS (clock);
+
+    if (cclass->get_internal_time) {
+      ret = cclass->get_internal_time (clock) - clock->start_time;
     }
     /* make sure the time is increasing, else return last_time */
     if ((gint64) ret < (gint64) clock->last_time) {
index 7f649c13df54eb93d780b84f0c3c97aadfa1de55..2dbe757f412b21870e3dc4239aa06473bf459111 100644 (file)
 
 G_BEGIN_DECLS
 
-#define GST_TYPE_CLOCK \
-  (gst_clock_get_type())
-#define GST_CLOCK(obj) \
-  (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_CLOCK,GstClock))
-#define GST_CLOCK_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_CLOCK,GstClockClass))
-#define GST_IS_CLOCK(obj) \
-  (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_CLOCK))
-#define GST_IS_CLOCK_CLASS(obj) \
-  (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_CLOCK))
+/* --- standard type macros --- */
+#define GST_TYPE_CLOCK                 (gst_clock_get_type ())
+#define GST_CLOCK(clock)               (G_TYPE_CHECK_INSTANCE_CAST ((clock), GST_TYPE_CLOCK, GstClock))
+#define GST_IS_CLOCK(clock)            (G_TYPE_CHECK_INSTANCE_TYPE ((clock), GST_TYPE_CLOCK))
+#define GST_CLOCK_CLASS(cclass)        (G_TYPE_CHECK_CLASS_CAST ((cclass), GST_TYPE_CLOCK, GstClockClass))
+#define GST_IS_CLOCK_CLASS(cclass)     (G_TYPE_CHECK_CLASS_TYPE ((cclass), GST_TYPE_CLOCK))
+#define GST_CLOCK_GET_CLASS(clock)     (G_TYPE_INSTANCE_GET_CLASS ((clock), GST_TYPE_CLOCK, GstClockClass))
        
 typedef guint64        GstClockTime;
 typedef gint64                 GstClockTimeDiff;
@@ -61,6 +58,7 @@ typedef struct _GstClockEntry         GstClockEntry;
 typedef struct _GstClock       GstClock;
 typedef struct _GstClockClass  GstClockClass;
 
+/* --- prototype for async callbacks --- */
 typedef gboolean       (*GstClockCallback)     (GstClock *clock, GstClockTime time, 
                                                 GstClockID id, gpointer user_data);
 
@@ -121,11 +119,11 @@ struct _GstClock {
 
   GstClockFlags         flags;
 
-  /*< protected >*/
+  /* --- protected --- */
   GstClockTime  start_time;
   GstClockTime  last_time;
 
-  /*< private >*/
+  /* --- private --- */
   gboolean      accept_discont;
   gdouble       speed;
   guint64       resolution;
@@ -134,6 +132,8 @@ struct _GstClock {
   GMutex       *active_mutex;
   GCond                *active_cond;
   gboolean      stats;
+
+  gpointer      dummy[4];
 };
 
 struct _GstClockClass {
@@ -151,14 +151,9 @@ struct _GstClockClass {
 
   /* waiting on an ID */
   GstClockEntryStatus   (*wait)                        (GstClock *clock, GstClockEntry *entry);
-  GstClockEntryStatus   (*wait_async)           (GstClock *clock, GstClockEntry *entry,
-                                                GstClockCallback func, gpointer user_data);
+  GstClockEntryStatus   (*wait_async)           (GstClock *clock, GstClockEntry *entry);
   void                  (*unschedule)          (GstClock *clock, GstClockEntry *entry);
   void                  (*unlock)              (GstClock *clock, GstClockEntry *entry);
-
-  /* signals */
-  void                  (*object_sync)          (GstClock *clock, GstObject *object, 
-                                                GstClockID id);
 };
 
 GType                  gst_clock_get_type              (void);
index 6ac36261213093fe7485b71dde05a597bcdfada2..397a2b5ea6d67af301e78d832b6cd961393d83f1 100644 (file)
@@ -49,8 +49,6 @@ enum {
   /* FILL ME */
 };
 
-#define CLASS(element) GST_ELEMENT_CLASS (G_OBJECT_GET_CLASS (element))
-
 static void                    gst_element_class_init          (GstElementClass *klass);
 static void                    gst_element_init                (GstElement *element);
 static void                    gst_element_base_class_init     (GstElementClass *klass);
@@ -186,7 +184,7 @@ gst_element_init (GstElement *element)
 static void
 gst_element_real_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec)
 {
-  GstElementClass *oclass = CLASS (object);
+  GstElementClass *oclass = GST_ELEMENT_GET_CLASS (object);
 
   if (oclass->set_property)
     (oclass->set_property) (object, prop_id, value, pspec);
@@ -195,7 +193,7 @@ gst_element_real_set_property (GObject *object, guint prop_id, const GValue *val
 static void
 gst_element_real_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec)
 {
-  GstElementClass *oclass = CLASS (object);
+  GstElementClass *oclass = GST_ELEMENT_GET_CLASS (object);
 
   if (oclass->get_property)
     (oclass->get_property) (object, prop_id, value, pspec);
@@ -641,7 +639,8 @@ gst_element_request_pad (GstElement *element, GstPadTemplate *templ, const gchar
   GstPad *newpad = NULL;
   GstElementClass *oclass;
 
-  oclass = CLASS (element);
+  oclass = GST_ELEMENT_GET_CLASS (element);
+
   if (oclass->request_new_pad)
     newpad = (oclass->request_new_pad)(element, templ, name);
 
@@ -664,7 +663,8 @@ gst_element_release_request_pad (GstElement *element, GstPad *pad)
   g_return_if_fail (GST_IS_ELEMENT (element));
   g_return_if_fail (GST_IS_PAD (pad));
 
-  oclass = CLASS (element);
+  oclass = GST_ELEMENT_GET_CLASS (element);
+
   if (oclass->release_pad)
     (oclass->release_pad) (element, pad);
 }
@@ -682,7 +682,7 @@ gst_element_requires_clock (GstElement *element)
 {
   g_return_val_if_fail (GST_IS_ELEMENT (element), FALSE);
 
-  return (CLASS (element)->set_clock != NULL);
+  return (GST_ELEMENT_GET_CLASS (element)->set_clock != NULL);
 }
 
 /**
@@ -698,7 +698,7 @@ gst_element_provides_clock (GstElement *element)
 {
   g_return_val_if_fail (GST_IS_ELEMENT (element), FALSE);
 
-  return (CLASS (element)->get_clock != NULL);
+  return (GST_ELEMENT_GET_CLASS (element)->get_clock != NULL);
 }
 
 /**
@@ -711,10 +711,14 @@ gst_element_provides_clock (GstElement *element)
 void
 gst_element_set_clock (GstElement *element, GstClock *clock)
 {
+  GstElementClass *oclass;
+
   g_return_if_fail (GST_IS_ELEMENT (element));
 
-  if (CLASS (element)->set_clock)
-    CLASS (element)->set_clock (element, clock);
+  oclass = GST_ELEMENT_GET_CLASS (element);
+
+  if (oclass->set_clock)
+    oclass->set_clock (element, clock);
 
   element->clock = clock;
 }
@@ -730,11 +734,14 @@ gst_element_set_clock (GstElement *element, GstClock *clock)
 GstClock*
 gst_element_get_clock (GstElement *element)
 {
-  g_return_val_if_fail (element != NULL, NULL);
+  GstElementClass *oclass;
+
   g_return_val_if_fail (GST_IS_ELEMENT (element), NULL);
+
+  oclass = GST_ELEMENT_GET_CLASS (element);
   
-  if (CLASS (element)->get_clock)
-    return CLASS (element)->get_clock (element);
+  if (oclass->get_clock)
+    return oclass->get_clock (element);
 
   return NULL;
 }
@@ -779,7 +786,7 @@ gst_element_is_indexable (GstElement *element)
 {
   g_return_val_if_fail (GST_IS_ELEMENT (element), FALSE);
 
-  return (CLASS (element)->set_index != NULL);
+  return (GST_ELEMENT_GET_CLASS (element)->set_index != NULL);
 }
 
 /**
@@ -792,11 +799,15 @@ gst_element_is_indexable (GstElement *element)
 void
 gst_element_set_index (GstElement *element, GstIndex *index)
 {
+  GstElementClass *oclass;
+
   g_return_if_fail (GST_IS_ELEMENT (element));
   g_return_if_fail (GST_IS_INDEX (index));
 
-  if (CLASS (element)->set_index)
-    CLASS (element)->set_index (element, index);
+  oclass = GST_ELEMENT_GET_CLASS (element);
+
+  if (oclass->set_index)
+    oclass->set_index (element, index);
 }
 
 /**
@@ -811,10 +822,14 @@ gst_element_set_index (GstElement *element, GstIndex *index)
 GstIndex*
 gst_element_get_index (GstElement *element)
 {
+  GstElementClass *oclass;
+
   g_return_val_if_fail (GST_IS_ELEMENT (element), FALSE);
 
-  if (CLASS (element)->get_index)
-    return CLASS (element)->get_index (element);
+  oclass = GST_ELEMENT_GET_CLASS (element);
+
+  if (oclass->get_index)
+    return oclass->get_index (element);
 
   return NULL;
 }
@@ -831,10 +846,14 @@ gst_element_get_index (GstElement *element)
 gboolean
 gst_element_release_locks (GstElement *element)
 {
+  GstElementClass *oclass;
+
   g_return_val_if_fail (GST_IS_ELEMENT (element), FALSE);
 
-  if (CLASS (element)->release_locks)
-    return CLASS (element)->release_locks (element);
+  oclass = GST_ELEMENT_GET_CLASS (element);
+
+  if (oclass->release_locks)
+    return oclass->release_locks (element);
   
   return TRUE;
 }
@@ -1171,7 +1190,7 @@ gst_element_get_pad_template_list (GstElement *element)
   g_return_val_if_fail (element != NULL, NULL);
   g_return_val_if_fail (GST_IS_ELEMENT (element), NULL);
 
-  return CLASS (element)->padtemplates;
+  return GST_ELEMENT_GET_CLASS (element)->padtemplates;
 }
 
 /**
@@ -1778,11 +1797,15 @@ gst_element_send_event_default (GstElement *element, GstEvent *event)
 gboolean
 gst_element_send_event (GstElement *element, GstEvent *event)
 {
+  GstElementClass *oclass;
+
   g_return_val_if_fail (GST_IS_ELEMENT (element), FALSE);
   g_return_val_if_fail (event != NULL, FALSE);
   
-  if (CLASS (element)->send_event)
-    return CLASS (element)->send_event (element, event);
+  oclass = GST_ELEMENT_GET_CLASS (element);
+
+  if (oclass->send_event)
+    return oclass->send_event (element, event);
 
   return FALSE;
 }
@@ -1827,12 +1850,16 @@ gboolean
 gst_element_query (GstElement *element, GstPadQueryType type,
                   GstFormat *format, gint64 *value)
 {
+  GstElementClass *oclass;
+
   g_return_val_if_fail (GST_IS_ELEMENT (element), FALSE);
   g_return_val_if_fail (format != NULL, FALSE);
   g_return_val_if_fail (value != NULL, FALSE);
+
+  oclass = GST_ELEMENT_GET_CLASS (element);
   
-  if (CLASS (element)->query)
-    return CLASS (element)->query (element, type, format, value);
+  if (oclass->query)
+    return oclass->query (element, type, format, value);
 
   return FALSE;
 }
@@ -1956,7 +1983,7 @@ gst_element_set_state (GstElement *element, GstElementState state)
     }
 
     /* call the state change function so it can set the state */
-    oclass = CLASS (element);
+    oclass = GST_ELEMENT_GET_CLASS (element);
     if (oclass->change_state)
       return_val = (oclass->change_state) (element);
 
@@ -2168,13 +2195,9 @@ failure:
 GstElementFactory*
 gst_element_get_factory (GstElement *element)
 {
-  GstElementClass *oclass;
-
   g_return_val_if_fail (GST_IS_ELEMENT (element), NULL);
 
-  oclass = CLASS (element);
-
-  return oclass->elementfactory;
+  return GST_ELEMENT_GET_CLASS (element)->elementfactory;
 }
 
 static void
@@ -2249,7 +2272,7 @@ gst_element_save_thyself (GstObject *object,
 
   element = GST_ELEMENT (object);
 
-  oclass = CLASS (element);
+  oclass = GST_ELEMENT_GET_CLASS (element);
 
   xmlNewChild(parent, NULL, "name", GST_ELEMENT_NAME(element));
 
@@ -2352,8 +2375,8 @@ gst_element_restore_thyself (GstObject *object, xmlNodePtr self)
     children = children->next;
   }
 
-  if (GST_OBJECT_CLASS(parent_class)->restore_thyself)
-    (GST_OBJECT_CLASS(parent_class)->restore_thyself) (object, self);
+  if (GST_OBJECT_CLASS (parent_class)->restore_thyself)
+    (GST_OBJECT_CLASS (parent_class)->restore_thyself) (object, self);
 }
 #endif /* GST_DISABLE_LOADSAVE */
 
index a029c9f60cd458512bb452b5bd0923a5009a1d13..13296f913577d4cfcbc2222ef608592ebb0496f7 100644 (file)
@@ -58,7 +58,8 @@ extern GType _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(obj)      (G_TYPE_CHECK_CLASS_TYPE ((klass), 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))
@@ -119,11 +120,12 @@ struct _GstElement {
   /* element state  and scheduling */
   guint8               current_state;
   guint8               pending_state;
-  GstElement           *manager;
   GstElementLoopFunction loopfunc;
 
   GstScheduler                 *sched;
   gpointer             sched_private;
+
+  /* allocated clock */
   GstClock             *clock;
   GstClockTime          base_time;
 
@@ -132,7 +134,6 @@ struct _GstElement {
   guint16              numsrcpads;
   guint16              numsinkpads;
   GList                *pads;
-  GstPad               *select_pad;
 
   GMutex               *state_mutex;
   GCond                *state_cond;
@@ -141,6 +142,8 @@ struct _GstElement {
   GstElementPostRunFunction post_run_func;
   GAsyncQueue          *prop_value_queue;
   GMutex               *property_mutex;
+
+  gpointer             dummy[8];
 };
 
 struct _GstElementClass {
@@ -179,6 +182,8 @@ struct _GstElementClass {
   /* index */
   GstIndex*            (*get_index)            (GstElement *element);
   void                 (*set_index)            (GstElement *element, GstIndex *index);
+
+  gpointer             dummy[8];
 };
 
 void                   gst_element_class_add_pad_template      (GstElementClass *klass, GstPadTemplate *templ);
index b8ab67db2a6992c562ed0c1cda5ae28af974bcba..09a718626dcc787227c9276dfb343e488c3083c0 100644 (file)
@@ -130,7 +130,7 @@ gst_format_get_by_nick (const gchar *nick)
  *
  * Returns: The #GstFormatDefinition for @format or NULL on failure.
  */
-const GstFormatDefinition *
+const GstFormatDefinition*
 gst_format_get_details (GstFormat format)
 {
   return g_hash_table_lookup (_format_to_nick, GINT_TO_POINTER (format));
@@ -143,7 +143,7 @@ gst_format_get_details (GstFormat format)
  *
  * Returns: A GList of #GstFormatDefinition.
  */
-const GList *
+const GList*
 gst_format_get_definitions (void)
 {
   return _gst_formats;
index ec249009272354e9c0612421698ce8a672209c02..f4fa251d2e82bd885167837efe399c2f2cba35d8 100644 (file)
@@ -41,6 +41,7 @@ typedef enum {
 } GstFormat;
 
 typedef struct _GstFormatDefinition GstFormatDefinition;
+
 struct _GstFormatDefinition 
 {
   GstFormat  value;
index ead25794c78d7a9801b8ba2489e8aa109e5b6d90..beeb3eac35ad750be80ddc2c5bfa1f13e10cdd58 100644 (file)
@@ -40,8 +40,6 @@ enum {
 static void            gst_index_class_init    (GstIndexClass *klass);
 static void            gst_index_init          (GstIndex *index);
 
-#define CLASS(index)  GST_INDEX_CLASS (G_OBJECT_GET_CLASS (index))
-
 static GstObject *parent_class = NULL;
 static guint gst_index_signals[LAST_SIGNAL] = { 0 };
 
@@ -293,6 +291,7 @@ gst_index_add_format (GstIndex *index, gint id, GstFormat format)
 {
   GstIndexEntry *entry;
   const GstFormatDefinition* def;
+  GstIndexClass *iclass;
 
   g_return_val_if_fail (GST_IS_INDEX (index), NULL);
   g_return_val_if_fail (format != 0, NULL);
@@ -301,11 +300,14 @@ gst_index_add_format (GstIndex *index, gint id, GstFormat format)
   entry->type = GST_INDEX_ENTRY_FORMAT;
   entry->id = id;
   entry->data.format.format = format;
+
   def = gst_format_get_details (format);
   entry->data.format.key = def->nick;
+
+  iclass = GST_INDEX_GET_CLASS (index);
   
-  if (CLASS (index)->add_entry)
-    CLASS (index)->add_entry (index, entry);
+  if (iclass->add_entry)
+    iclass->add_entry (index, entry);
 
   g_signal_emit (G_OBJECT (index), gst_index_signals[ENTRY_ADDED], 0, entry);
 
@@ -326,6 +328,7 @@ GstIndexEntry*
 gst_index_add_id (GstIndex *index, gint id, gchar *description)
 {
   GstIndexEntry *entry;
+  GstIndexClass *iclass;
 
   g_return_val_if_fail (GST_IS_INDEX (index), NULL);
   g_return_val_if_fail (description != NULL, NULL);
@@ -335,8 +338,10 @@ gst_index_add_id (GstIndex *index, gint id, gchar *description)
   entry->id = id;
   entry->data.id.description = description;
 
-  if (CLASS (index)->add_entry)
-    CLASS (index)->add_entry (index, entry);
+  iclass = GST_INDEX_GET_CLASS (index);
+
+  if (iclass->add_entry)
+    iclass->add_entry (index, entry);
   
   g_signal_emit (G_OBJECT (index), gst_index_signals[ENTRY_ADDED], 0, entry);
 
@@ -364,6 +369,7 @@ gst_index_get_writer_id (GstIndex *index, GstObject *writer, gint *id)
   gchar *writer_string = NULL;
   gboolean success = FALSE;
   GstIndexEntry *entry;
+  GstIndexClass *iclass;
 
   g_return_val_if_fail (GST_IS_INDEX (index), FALSE);
   g_return_val_if_fail (GST_IS_OBJECT (writer), FALSE);
@@ -382,8 +388,10 @@ gst_index_get_writer_id (GstIndex *index, GstObject *writer, gint *id)
     g_hash_table_insert (index->writers, writer, entry);
   }
 
-  if (CLASS (index)->resolve_writer) {
-    success = CLASS (index)->resolve_writer (index, writer, id, &writer_string);
+  iclass = GST_INDEX_GET_CLASS (index);
+
+  if (iclass->resolve_writer) {
+    success = iclass->resolve_writer (index, writer, id, &writer_string);
   }
 
   if (index->resolver) {
@@ -419,6 +427,7 @@ gst_index_add_association (GstIndex *index, gint id, GstAssocFlags flags,
   gint nassocs = 0;
   GstFormat cur_format;
   volatile gint64 dummy;
+  GstIndexClass *iclass;
 
   g_return_val_if_fail (GST_IS_INDEX (index), NULL);
   g_return_val_if_fail (format != 0, NULL);
@@ -460,8 +469,10 @@ gst_index_add_association (GstIndex *index, gint id, GstAssocFlags flags,
   }
   va_end (args);
 
-  if (CLASS (index)->add_entry)
-    CLASS (index)->add_entry (index, entry);
+  iclass = GST_INDEX_GET_CLASS (index);
+
+  if (iclass->add_entry)
+    iclass->add_entry (index, entry);
 
   g_signal_emit (G_OBJECT (index), gst_index_signals[ENTRY_ADDED], 0, entry);
 
@@ -542,10 +553,14 @@ gst_index_get_assoc_entry_full (GstIndex *index, gint id,
                                GCompareDataFunc func,
                                gpointer user_data)
 {
+  GstIndexClass *iclass;
+
   g_return_val_if_fail (GST_IS_INDEX (index), NULL);
 
-  if (CLASS(index)->get_assoc_entry)
-    return CLASS (index)->get_assoc_entry (index, id, method, format, value, func, user_data);
+  iclass = GST_INDEX_GET_CLASS (index);
+
+  if (iclass->get_assoc_entry)
+    return iclass->get_assoc_entry (index, id, method, format, value, func, user_data);
   
   return NULL;
 }
index 3fa754749a9cdbbac754e28f86c3449f98fb19a4..091d529a47d3cefe180980affbdab722f9852637 100644 (file)
 
 G_BEGIN_DECLS
 
-#define GST_TYPE_INDEX         (gst_index_get_type ())
-#define GST_INDEX(obj)         (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_INDEX, GstIndex))
-#define GST_INDEX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_INDEX, GstIndexClass))
-#define GST_IS_INDEX(obj)      (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_INDEX))
-#define GST_IS_INDEX_CLASS(obj)        (GST_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_INDEX))
+#define GST_TYPE_INDEX                 (gst_index_get_type ())
+#define GST_INDEX(obj)                 (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_INDEX, GstIndex))
+#define GST_IS_INDEX(obj)              (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_INDEX))
+#define GST_INDEX_CLASS(klass)         (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_INDEX, GstIndexClass))
+#define GST_IS_INDEX_CLASS(klass)      (GST_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_INDEX))
+#define GST_INDEX_GET_CLASS(obj)       (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_INDEX, GstIndexClass))
 
 typedef struct _GstIndexEntry GstIndexEntry;
 typedef struct _GstIndexGroup GstIndexGroup;
@@ -61,9 +62,9 @@ typedef enum {
 } GstIndexLookupMethod;
 
 #define GST_INDEX_NASSOCS(entry)               ((entry)->data.assoc.nassocs)
-#define GST_INDEX_ASSOC_FLAGS(entry)   ((entry)->data.assoc.flags)
-#define GST_INDEX_ASSOC_FORMAT(entry,i)        ((entry)->data.assoc.assocs[(i)].format)
-#define GST_INDEX_ASSOC_VALUE(entry,i) ((entry)->data.assoc.assocs[(i)].value)
+#define GST_INDEX_ASSOC_FLAGS(entry)           ((entry)->data.assoc.flags)
+#define GST_INDEX_ASSOC_FORMAT(entry,i)                ((entry)->data.assoc.assocs[(i)].format)
+#define GST_INDEX_ASSOC_VALUE(entry,i)         ((entry)->data.assoc.assocs[(i)].value)
 
 typedef struct _GstIndexAssociation GstIndexAssociation;
 
@@ -77,10 +78,10 @@ typedef enum {
   GST_ACCOCIATION_FLAG_KEY_UNIT = (1 << 0),
 } GstAssocFlags;
 
-#define GST_INDEX_FORMAT_FORMAT(entry) ((entry)->data.format.format)
-#define GST_INDEX_FORMAT_KEY(entry)    ((entry)->data.format.key)
+#define GST_INDEX_FORMAT_FORMAT(entry)         ((entry)->data.format.format)
+#define GST_INDEX_FORMAT_KEY(entry)            ((entry)->data.format.key)
 
-#define GST_INDEX_ID_DESCRIPTION(entry)        ((entry)->data.id.description)
+#define GST_INDEX_ID_DESCRIPTION(entry)                ((entry)->data.id.description)
 
 struct _GstIndexEntry {
   GstIndexEntryType     type;
@@ -145,6 +146,8 @@ struct _GstIndex {
 
   GHashTable           *writers;
   gint                  last_id;
+
+  gpointer              dummy[8];
 };
 
 struct _GstIndexClass {
@@ -163,6 +166,8 @@ struct _GstIndexClass {
                                         gpointer user_data); 
   /* signals */
   void         (*entry_added)          (GstIndex *index, GstIndexEntry *entry);
+
+  gpointer              dummy[8];
 };
 
 GType                  gst_index_get_type              (void);
@@ -208,16 +213,12 @@ gboolean          gst_index_entry_assoc_map       (GstIndexEntry *entry,
  * creating indexs
  *
  */
-#define GST_TYPE_INDEX_FACTORY \
-  (gst_index_factory_get_type())
-#define GST_INDEX_FACTORY(obj) \
-  (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_INDEX_FACTORY,GstIndexFactory))
-#define GST_INDEX_FACTORY_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_INDEX_FACTORY,GstIndexFactoryClass))
-#define GST_IS_INDEX_FACTORY(obj) \
-  (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_INDEX_FACTORY))
-#define GST_IS_INDEX_FACTORY_CLASS(obj) \
-  (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_INDEX_FACTORY))
+#define GST_TYPE_INDEX_FACTORY                 (gst_index_factory_get_type())
+#define GST_INDEX_FACTORY(obj)                         (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_INDEX_FACTORY, GstIndexFactory))
+#define GST_IS_INDEX_FACTORY(obj)              (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_INDEX_FACTORY))
+#define GST_INDEX_FACTORY_CLASS(klass)                 (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_INDEX_FACTORY, GstIndexFactoryClass))
+#define GST_IS_INDEX_FACTORY_CLASS(klass)      (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_INDEX_FACTORY))
+#define GST_INDEX_FACTORY_GET_CLASS(obj)       (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_INDEX_FACTORY, GstIndexFactoryClass))
 
 typedef struct _GstIndexFactory GstIndexFactory;
 typedef struct _GstIndexFactoryClass GstIndexFactoryClass;
index f24d6480df64766e79d766f829c7e66fa2d9850a..77a01698ee82a52d7eb1a34fc1525fff0abd190a 100644 (file)
@@ -147,8 +147,8 @@ gst_object_class_init (GstObjectClass *klass)
   klass->path_string_separator = "/";
 
   klass->signal_object = g_object_new (gst_signal_object_get_type (), NULL);
-    /* see the comments at gst_element_dispatch_properties_changed */
 
+  /* see the comments at gst_element_dispatch_properties_changed */
   gobject_class->dispatch_properties_changed
                = GST_DEBUG_FUNCPTR (gst_object_dispatch_properties_changed);
 
@@ -555,7 +555,8 @@ gst_object_save_thyself (GstObject *object, xmlNodePtr parent)
   g_return_val_if_fail (GST_IS_OBJECT (object), parent);
   g_return_val_if_fail (parent != NULL, parent);
 
-  oclass = (GstObjectClass *)G_OBJECT_GET_CLASS(object);
+  oclass = GST_OBJECT_GET_CLASS (object);
+
   if (oclass->save_thyself)
     oclass->save_thyself (object, parent);
 
@@ -580,7 +581,8 @@ gst_object_restore_thyself (GstObject *object, xmlNodePtr self)
   g_return_if_fail (GST_IS_OBJECT (object));
   g_return_if_fail (self != NULL);
 
-  oclass = (GstObjectClass *) G_OBJECT_GET_CLASS(object);
+  oclass = GST_OBJECT_GET_CLASS (object);
+
   if (oclass->restore_thyself)
     oclass->restore_thyself (object, self);
 }
@@ -683,7 +685,7 @@ gst_object_get_path_string (GstObject *object)
   parents = parentage;
   while (parents) {
     if (GST_IS_OBJECT (parents->data)) {
-      GstObjectClass *oclass = (GstObjectClass *)G_OBJECT_GET_CLASS(parents->data);
+      GstObjectClass *oclass = GST_OBJECT_GET_CLASS (parents->data);
 
       component = gst_object_get_name (parents->data);
       separator = oclass->path_string_separator;
@@ -757,10 +759,10 @@ gst_signal_object_class_init (GstSignalObjectClass *klass)
 
 #ifndef GST_DISABLE_LOADSAVE_REGISTRY
   gst_signal_object_signals[SO_OBJECT_LOADED] =
-    g_signal_new("object_loaded", G_TYPE_FROM_CLASS(klass), G_SIGNAL_RUN_LAST,
+    g_signal_new ("object_loaded", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST,
                   G_STRUCT_OFFSET (GstObjectClass, parent_set), NULL, NULL,
-                  gst_marshal_VOID__OBJECT_POINTER,G_TYPE_NONE,2,
-                  G_TYPE_OBJECT,G_TYPE_POINTER);
+                  gst_marshal_VOID__OBJECT_POINTER, G_TYPE_NONE, 2,
+                  G_TYPE_OBJECT, G_TYPE_POINTER);
 #endif
 }
 
@@ -805,7 +807,7 @@ gst_class_signal_emit_by_name (GstObject *object,
 {
   GstObjectClass *oclass;
 
-  oclass = (GstObjectClass *)G_OBJECT_GET_CLASS(object);
+  oclass = GST_OBJECT_GET_CLASS (object);
 
   g_signal_emit_by_name (oclass->signal_object, name, object, self);
 }
index 711bdb92d750eb242a51917ad7fbd13895ac4aac..e9a2e511bde166225c486cdb0f03b32bb76629d8 100644 (file)
@@ -41,8 +41,9 @@ G_BEGIN_DECLS
 extern GType _gst_object_type;
 
 #define GST_TYPE_OBJECT                 (_gst_object_type)
-# define GST_IS_OBJECT(obj)             (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_OBJECT))
-# define GST_IS_OBJECT_CLASS(obj)       (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_OBJECT))
+#define GST_IS_OBJECT(obj)                     (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_OBJECT))
+#define GST_IS_OBJECT_CLASS(klass)             (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_OBJECT))
+#define GST_OBJECT_GET_CLASS(obj)      (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_OBJECT, GstObjectClass))
 
 #define GST_OBJECT_CAST(obj)            ((GstObject*)(obj))
 #define GST_OBJECT_CLASS_CAST(klass)    ((GstObjectClass*)(klass))
@@ -55,9 +56,6 @@ extern GType _gst_object_type;
 # define GST_OBJECT_CLASS               GST_OBJECT_CLASS_CAST
 #endif
 
-/*typedef struct _GstObject GstObject; */ 
-/*typedef struct _GstObjectClass GstObjectClass; */
-
 typedef enum
 {
   GST_DESTROYED   = 0,
@@ -101,6 +99,8 @@ struct _GstObjectClass {
   xmlNodePtr   (*save_thyself)         (GstObject *object, xmlNodePtr parent);
   void         (*restore_thyself)      (GstObject *object, xmlNodePtr self);
 #endif
+
+  gpointer     dummy[4];
 };
 
 #define GST_FLAGS(obj)                 (GST_OBJECT_CAST (obj)->flags)
@@ -115,10 +115,10 @@ struct _GstObjectClass {
 #define GST_OBJECT_FLOATING(obj)       (GST_FLAG_IS_SET (obj, GST_FLOATING))
 
 /* CR1: object locking - GObject 2.0 doesn't have threadsafe locking */
-#define GST_LOCK(obj)          (g_mutex_lock(GST_OBJECT_CAST(obj)->lock))
-#define GST_TRYLOCK(obj)       (g_mutex_trylock(GST_OBJECT_CAST(obj)->lock))
-#define GST_UNLOCK(obj)                (g_mutex_unlock(GST_OBJECT_CAST(obj)->lock))
-#define GST_GET_LOCK(obj)      (GST_OBJECT_CAST(obj)->lock)
+#define GST_LOCK(obj)                  (g_mutex_lock(GST_OBJECT_CAST(obj)->lock))
+#define GST_TRYLOCK(obj)               (g_mutex_trylock(GST_OBJECT_CAST(obj)->lock))
+#define GST_UNLOCK(obj)                        (g_mutex_unlock(GST_OBJECT_CAST(obj)->lock))
+#define GST_GET_LOCK(obj)              (GST_OBJECT_CAST(obj)->lock)
 
 
 /* normal GObject stuff */
index 470f5bd39287ed927a0f8e12fa26054f2042ad1f..fd314028569244275cc582b151966c477cf9ebed 100644 (file)
@@ -51,7 +51,7 @@ extern GType _gst_ghost_pad_type;
 #define GST_IS_PAD(obj)                        (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_PAD))
 #define GST_IS_PAD_FAST(obj)           (G_OBJECT_TYPE(obj) == GST_TYPE_REAL_PAD || \
                                         G_OBJECT_TYPE(obj) == GST_TYPE_GHOST_PAD)
-#define GST_IS_PAD_CLASS(obj)          (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_PAD))
+#define GST_IS_PAD_CLASS(klass)                (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_PAD))
 
 #ifdef GST_TYPE_PARANOID
 # define GST_PAD(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_PAD, GstPad))
@@ -70,7 +70,7 @@ extern GType _gst_ghost_pad_type;
 #define GST_REAL_PAD_CLASS_CAST(klass) ((GstRealPadClass*)(klass))
 #define GST_IS_REAL_PAD(obj)           (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_REAL_PAD))
 #define GST_IS_REAL_PAD_FAST(obj)      (G_OBJECT_TYPE(obj) == GST_TYPE_REAL_PAD)
-#define GST_IS_REAL_PAD_CLASS(obj)     (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_REAL_PAD))
+#define GST_IS_REAL_PAD_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_REAL_PAD))
 
 #ifdef GST_TYPE_PARANOID
 # define GST_REAL_PAD(obj)             (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_REAL_PAD, GstRealPad))
@@ -89,7 +89,7 @@ extern GType _gst_ghost_pad_type;
 #define GST_GHOST_PAD_CLASS_CAST(klass)        ((GstGhostPadClass*)(klass))
 #define GST_IS_GHOST_PAD(obj)          (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_GHOST_PAD))
 #define GST_IS_GHOST_PAD_FAST(obj)     (G_OBJECT_TYPE(obj) == GST_TYPE_GHOST_PAD)
-#define GST_IS_GHOST_PAD_CLASS(obj)    (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_GHOST_PAD))
+#define GST_IS_GHOST_PAD_CLASS(klass)  (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_GHOST_PAD))
 
 #ifdef GST_TYPE_PARANOID
 # define GST_GHOST_PAD(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_GHOST_PAD, GstGhostPad))
@@ -312,7 +312,7 @@ struct _GstGhostPadClass {
 #define GST_PAD_TEMPLATE(obj)          (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_PAD_TEMPLATE,GstPadTemplate))
 #define GST_PAD_TEMPLATE_CLASS(klass)  (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_PAD_TEMPLATE,GstPadTemplateClass))
 #define GST_IS_PAD_TEMPLATE(obj)       (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_PAD_TEMPLATE))
-#define GST_IS_PAD_TEMPLATE_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_PAD_TEMPLATE))
+#define GST_IS_PAD_TEMPLATE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_PAD_TEMPLATE))
 
 typedef enum {
   GST_PAD_ALWAYS,
index a8569b51e0232670037ea91687f661d522826ff0..61a4e74ae995ab2f82ddce3a75cfd8edcc7d0594 100644 (file)
@@ -47,6 +47,7 @@ GstBin*               gst_parse_launchv       (const gchar **argv, GError **error);
 #else /* GST_DISABLE_PARSE */
 
 #pragma GCC poison gst_parse_launch
+#pragma GCC poison gst_parse_launchv
 
 #endif /* GST_DISABLE_PARSE */
 
index 3e15e01bdb5d702f4f16a6797aa47a7d26a521ff..31c6f9cf74faeb5da6d2cf882f1900295a3110f2 100644 (file)
@@ -30,26 +30,26 @@ G_BEGIN_DECLS
 
 extern GstElementDetails gst_pipeline_details;
 
-#define GST_TYPE_PIPELINE \
-  (gst_pipeline_get_type())
-#define GST_PIPELINE(obj) \
-  (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_PIPELINE,GstPipeline))
-#define GST_PIPELINE_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_PIPELINE,GstPipelineClass))
-#define GST_IS_PIPELINE(obj) \
-  (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_PIPELINE))
-#define GST_IS_PIPELINE_CLASS(obj) \
-  (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_PIPELINE))
+#define GST_TYPE_PIPELINE              (gst_pipeline_get_type ())
+#define GST_PIPELINE(obj)              (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_PIPELINE, GstPipeline))
+#define GST_IS_PIPELINE(obj)           (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_PIPELINE))
+#define GST_PIPELINE_CLASS(klass)      (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_PIPELINE, GstPipelineClass))
+#define GST_IS_PIPELINE_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_PIPELINE))
+#define GST_PIPELINE_GET_CLASS(obj)    (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_PIPELINE, GstPipelineClass))
 
 typedef struct _GstPipeline GstPipeline;
 typedef struct _GstPipelineClass GstPipelineClass;
 
 struct _GstPipeline {
-  GstBin bin;
+  GstBin        bin;
+
+  gpointer      dummy[32];
 };
 
 struct _GstPipelineClass {
   GstBinClass parent_class;
+
+  gpointer      dummy[32];
 };
 
 GType          gst_pipeline_get_type           (void);
index 3e65620e9c214f373857de6f72572c459bd00308..051aedc43bb54a07b94e95983880304892fba177 100644 (file)
@@ -436,11 +436,9 @@ gst_plugin_load (const gchar *name)
   GError *error = NULL;
 
   plugin = gst_registry_pool_find_plugin (name);
-  if (plugin)
-  {
+  if (plugin) {
     gboolean result = gst_plugin_load_plugin (plugin, &error);
-    if (error)
-    {
+    if (error) {
       GST_DEBUG (GST_CAT_PLUGIN_LOADING, "load_plugin error: %s\n",
                 error->message);
       g_error_free (error);
index 90c1442ab2fcbc689bc0537b946f1265fef119ec..3616e60f2724e5a2628263ea882837fedafd7b33 100644 (file)
@@ -116,7 +116,7 @@ gst_plugin_feature_unload_thyself (GstPluginFeature *feature)
   g_return_if_fail (feature != NULL);
   g_return_if_fail (GST_IS_PLUGIN_FEATURE (feature));
   
-  oclass = (GstPluginFeatureClass *)G_OBJECT_GET_CLASS (feature);
+  oclass = GST_PLUGIN_FEATURE_GET_CLASS (feature);
 
   if (oclass->unload_thyself)
     oclass->unload_thyself (feature);
index f1c17801b5f29e52e0613d28f40f4deb7bd9de7d..4fd2b35c1cac5cf62e5079568b728b5c23905f0a 100644 (file)
 
 G_BEGIN_DECLS
 
-#define GST_TYPE_PLUGIN_FEATURE \
-  (gst_plugin_feature_get_type())
-#define GST_PLUGIN_FEATURE(obj) \
-  (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_PLUGIN_FEATURE,GstPluginFeature))
-#define GST_PLUGIN_FEATURE_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_PLUGIN_FEATURE,GstPluginFeatureClass))
-#define GST_IS_PLUGIN_FEATURE(obj) \
-  (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_PLUGIN_FEATURE))
-#define GST_IS_PLUGIN_FEATURE_CLASS(obj) \
-  (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_PLUGIN_FEATURE))
+#define GST_TYPE_PLUGIN_FEATURE                (gst_plugin_feature_get_type())
+#define GST_PLUGIN_FEATURE(obj)                (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_PLUGIN_FEATURE, GstPluginFeature))
+#define GST_IS_PLUGIN_FEATURE(obj)             (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_PLUGIN_FEATURE))
+#define GST_PLUGIN_FEATURE_CLASS(klass)        (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_PLUGIN_FEATURE, GstPluginFeatureClass))
+#define GST_IS_PLUGIN_FEATURE_CLASS(klass)     (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_PLUGIN_FEATURE))
+#define GST_PLUGIN_FEATURE_GET_CLASS(obj)      (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_PLUGIN_FEATURE, GstPluginFeatureClass))
 
 #define GST_PLUGIN_FEATURE_NAME(feature)  (GST_PLUGIN_FEATURE (feature)->name)
 
index 9be75bc4b5d6d00013a41e43b049b6ed0e891639..fbbb22af14ceb3195a10d858e6e3db2fcaa5c800 100644 (file)
@@ -33,8 +33,6 @@
 #include "gstlog.h"
 #include "gstmarshal.h"
 
-#define CLASS(registry)  GST_REGISTRY_CLASS (G_OBJECT_GET_CLASS (registry))
-
 /* Element signals and args */
 enum {
   PLUGIN_ADDED,
@@ -112,10 +110,14 @@ gst_registry_init (GstRegistry *registry)
 gboolean
 gst_registry_load (GstRegistry *registry)
 {
+  GstRegistryClass *rclass;
+
   g_return_val_if_fail (GST_IS_REGISTRY (registry), FALSE);
 
-  if (CLASS (registry)->load)
-    return CLASS (registry)->load (registry);
+  rclass = GST_REGISTRY_GET_CLASS (registry);
+
+  if (rclass->load)
+    return rclass->load (registry);
 
   return FALSE;
 }
@@ -147,10 +149,14 @@ gst_registry_is_loaded (GstRegistry *registry)
 gboolean
 gst_registry_save (GstRegistry *registry)
 {
+  GstRegistryClass *rclass;
+
   g_return_val_if_fail (GST_IS_REGISTRY (registry), FALSE);
 
-  if (CLASS (registry)->save)
-    return CLASS (registry)->save (registry);
+  rclass = GST_REGISTRY_GET_CLASS (registry);
+
+  if (rclass->save)
+    return rclass->save (registry);
 
   return FALSE;
 }
@@ -166,10 +172,14 @@ gst_registry_save (GstRegistry *registry)
 gboolean
 gst_registry_rebuild (GstRegistry *registry)
 {
+  GstRegistryClass *rclass;
+
   g_return_val_if_fail (GST_IS_REGISTRY (registry), FALSE);
 
-  if (CLASS (registry)->rebuild)
-    return CLASS (registry)->rebuild (registry);
+  rclass = GST_REGISTRY_GET_CLASS (registry);
+
+  if (rclass->rebuild)
+    return rclass->rebuild (registry);
 
   return FALSE;
 }
@@ -185,10 +195,14 @@ gst_registry_rebuild (GstRegistry *registry)
 gboolean
 gst_registry_unload (GstRegistry *registry)
 {
+  GstRegistryClass *rclass;
+
   g_return_val_if_fail (GST_IS_REGISTRY (registry), FALSE);
 
-  if (CLASS (registry)->unload)
-    return CLASS (registry)->unload (registry);
+  rclass = GST_REGISTRY_GET_CLASS (registry);
+
+  if (rclass->unload)
+    return rclass->unload (registry);
 
   return FALSE;
 }
@@ -381,10 +395,14 @@ gst_registry_find_feature (GstRegistry *registry, const gchar *name, GType type)
 GstRegistryReturn
 gst_registry_load_plugin (GstRegistry *registry, GstPlugin *plugin)
 {
+  GstRegistryClass *rclass;
+
   g_return_val_if_fail (GST_IS_REGISTRY (registry), GST_REGISTRY_PLUGIN_LOAD_ERROR);
 
-  if (CLASS (registry)->load_plugin)
-    return CLASS (registry)->load_plugin (registry, plugin);
+  rclass = GST_REGISTRY_GET_CLASS (registry);
+
+  if (rclass->load_plugin)
+    return rclass->load_plugin (registry, plugin);
 
   return GST_REGISTRY_PLUGIN_LOAD_ERROR;
 }
@@ -401,10 +419,14 @@ gst_registry_load_plugin (GstRegistry *registry, GstPlugin *plugin)
 GstRegistryReturn
 gst_registry_unload_plugin (GstRegistry *registry, GstPlugin *plugin)
 {
+  GstRegistryClass *rclass;
+
   g_return_val_if_fail (GST_IS_REGISTRY (registry), GST_REGISTRY_PLUGIN_LOAD_ERROR);
 
-  if (CLASS (registry)->unload_plugin)
-    return CLASS (registry)->unload_plugin (registry, plugin);
+  rclass = GST_REGISTRY_GET_CLASS (registry);
+
+  if (rclass->unload_plugin)
+    return rclass->unload_plugin (registry, plugin);
 
   return GST_REGISTRY_PLUGIN_LOAD_ERROR;
 }
@@ -421,10 +443,14 @@ gst_registry_unload_plugin (GstRegistry *registry, GstPlugin *plugin)
 GstRegistryReturn
 gst_registry_update_plugin (GstRegistry *registry, GstPlugin *plugin)
 {
+  GstRegistryClass *rclass;
+
   g_return_val_if_fail (GST_IS_REGISTRY (registry), GST_REGISTRY_PLUGIN_LOAD_ERROR);
 
-  if (CLASS (registry)->update_plugin)
-    return CLASS (registry)->update_plugin (registry, plugin);
+  rclass = GST_REGISTRY_GET_CLASS (registry);
+
+  if (rclass->update_plugin)
+    return rclass->update_plugin (registry, plugin);
 
   return GST_REGISTRY_PLUGIN_LOAD_ERROR;
 }
index 4f42841f2a98df22d8827711680b52a9fc0bace4..2e2b94ade2d6bac5fddb8956851f53011f4862a4 100644 (file)
@@ -62,16 +62,12 @@ typedef enum {
 } GstRegistryFlags;
 
   
-#define GST_TYPE_REGISTRY \
-  (gst_registry_get_type())
-#define GST_REGISTRY(obj) \
-  (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_REGISTRY,GstRegistry))
-#define GST_REGISTRY_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_REGISTRY,GstRegistryClass))
-#define GST_IS_REGISTRY(obj) \
-  (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_REGISTRY))
-#define GST_IS_REGISTRY_CLASS(obj) \
-  (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_REGISTRY))
+#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;
@@ -89,6 +85,8 @@ struct _GstRegistry {
   GList                *plugins;
 
   GList        *paths;
+
+  gpointer      dummy[8];
 };
 
 struct _GstRegistryClass {
@@ -106,6 +104,8 @@ struct _GstRegistryClass {
 
   /* signals */
   void                         (*plugin_added)         (GstRegistry *registry, GstPlugin *plugin);
+
+  gpointer      dummy[8];
 };
 
 
index cb074a9659608df6a5a0b6163d432e07d3547d54..9e19b24ebba20020c20440424ddaa6acee4eb79c 100644 (file)
@@ -20,8 +20,6 @@
  * Boston, MA 02111-1307, USA.
  */
 
-#define CLASS(obj)     GST_SCHEDULER_CLASS (G_OBJECT_GET_CLASS (obj))
-
 #include "gst_private.h"
 
 #include "gstsystemclock.h"
@@ -88,10 +86,14 @@ gst_scheduler_init (GstScheduler *sched)
 void
 gst_scheduler_setup (GstScheduler *sched)
 {
+  GstSchedulerClass *sclass;
+
   g_return_if_fail (GST_IS_SCHEDULER (sched));
 
-  if (CLASS (sched)->setup)
-    CLASS (sched)->setup (sched);
+  sclass = GST_SCHEDULER_GET_CLASS (sched);
+
+  if (sclass->setup)
+    sclass->setup (sched);
 }
 
 /**
@@ -103,10 +105,14 @@ gst_scheduler_setup (GstScheduler *sched)
 void
 gst_scheduler_reset (GstScheduler *sched)
 {
+  GstSchedulerClass *sclass;
+
   g_return_if_fail (GST_IS_SCHEDULER (sched));
 
-  if (CLASS (sched)->reset)
-    CLASS (sched)->reset (sched);
+  sclass = GST_SCHEDULER_GET_CLASS (sched);
+
+  if (sclass->reset)
+    sclass->reset (sched);
 }
 
 /**
@@ -120,12 +126,16 @@ gst_scheduler_reset (GstScheduler *sched)
 void
 gst_scheduler_pad_connect (GstScheduler *sched, GstPad *srcpad, GstPad *sinkpad)
 {
+  GstSchedulerClass *sclass;
+
   g_return_if_fail (GST_IS_SCHEDULER (sched));
   g_return_if_fail (GST_IS_PAD (srcpad));
   g_return_if_fail (GST_IS_PAD (sinkpad));
 
-  if (CLASS (sched)->pad_connect)
-    CLASS (sched)->pad_connect (sched, srcpad, sinkpad);
+  sclass = GST_SCHEDULER_GET_CLASS (sched);
+
+  if (sclass->pad_connect)
+    sclass->pad_connect (sched, srcpad, sinkpad);
 }
 
 /**
@@ -139,12 +149,16 @@ gst_scheduler_pad_connect (GstScheduler *sched, GstPad *srcpad, GstPad *sinkpad)
 void
 gst_scheduler_pad_disconnect (GstScheduler *sched, GstPad *srcpad, GstPad *sinkpad)
 {
+  GstSchedulerClass *sclass;
+
   g_return_if_fail (GST_IS_SCHEDULER (sched));
   g_return_if_fail (GST_IS_PAD (srcpad));
   g_return_if_fail (GST_IS_PAD (sinkpad));
 
-  if (CLASS (sched)->pad_disconnect)
-    CLASS (sched)->pad_disconnect (sched, srcpad, sinkpad);
+  sclass = GST_SCHEDULER_GET_CLASS (sched);
+
+  if (sclass->pad_disconnect)
+    sclass->pad_disconnect (sched, srcpad, sinkpad);
 }
 
 /**
@@ -159,11 +173,15 @@ gst_scheduler_pad_disconnect (GstScheduler *sched, GstPad *srcpad, GstPad *sinkp
 GstPad *
 gst_scheduler_pad_select (GstScheduler *sched, GList *padlist)
 {
+  GstSchedulerClass *sclass;
+
   g_return_val_if_fail (GST_IS_SCHEDULER (sched), NULL);
   g_return_val_if_fail (padlist != NULL, NULL);
 
-  if (CLASS (sched)->pad_select)
-    CLASS (sched)->pad_select (sched, padlist);
+  sclass = GST_SCHEDULER_GET_CLASS (sched);
+
+  if (sclass->pad_select)
+    sclass->pad_select (sched, padlist);
 
   return NULL;
 }
@@ -178,6 +196,8 @@ gst_scheduler_pad_select (GstScheduler *sched, GList *padlist)
 void
 gst_scheduler_add_element (GstScheduler *sched, GstElement *element)
 {
+  GstSchedulerClass *sclass;
+
   g_return_if_fail (GST_IS_SCHEDULER (sched));
   g_return_if_fail (GST_IS_ELEMENT (element));
 
@@ -202,8 +222,10 @@ gst_scheduler_add_element (GstScheduler *sched, GstElement *element)
 
   gst_element_set_scheduler (element, sched);
 
-  if (CLASS (sched)->add_element)
-    CLASS (sched)->add_element (sched, element);
+  sclass = GST_SCHEDULER_GET_CLASS (sched);
+
+  if (sclass->add_element)
+    sclass->add_element (sched, element);
 }
 
 /**
@@ -216,14 +238,18 @@ gst_scheduler_add_element (GstScheduler *sched, GstElement *element)
 void
 gst_scheduler_remove_element (GstScheduler *sched, GstElement *element)
 {
+  GstSchedulerClass *sclass;
+
   g_return_if_fail (GST_IS_SCHEDULER (sched));
   g_return_if_fail (GST_IS_ELEMENT (element));
 
   sched->clock_providers = g_list_remove (sched->clock_providers, element);
   sched->clock_receivers = g_list_remove (sched->clock_receivers, element);
 
-  if (CLASS (sched)->remove_element)
-    CLASS (sched)->remove_element (sched, element);
+  sclass = GST_SCHEDULER_GET_CLASS (sched);
+
+  if (sclass->remove_element)
+    sclass->remove_element (sched, element);
 
   gst_element_set_scheduler (element, NULL); 
 }
@@ -242,6 +268,8 @@ gst_scheduler_remove_element (GstScheduler *sched, GstElement *element)
 GstElementStateReturn
 gst_scheduler_state_transition (GstScheduler *sched, GstElement *element, gint transition)
 {
+  GstSchedulerClass *sclass;
+
   g_return_val_if_fail (GST_IS_SCHEDULER (sched), GST_STATE_FAILURE);
   g_return_val_if_fail (GST_IS_ELEMENT (element), GST_STATE_FAILURE);
 
@@ -288,8 +316,10 @@ gst_scheduler_state_transition (GstScheduler *sched, GstElement *element, gint t
     }
   }
 
-  if (CLASS (sched)->state_transition)
-    return CLASS (sched)->state_transition (sched, element, transition);
+  sclass = GST_SCHEDULER_GET_CLASS (sched);
+
+  if (sclass->state_transition)
+    return sclass->state_transition (sched, element, transition);
 
   return GST_STATE_SUCCESS;
 }
@@ -306,11 +336,15 @@ gst_scheduler_state_transition (GstScheduler *sched, GstElement *element, gint t
 void
 gst_scheduler_scheduling_change (GstScheduler *sched, GstElement *element)
 {
+  GstSchedulerClass *sclass;
+
   g_return_if_fail (GST_IS_SCHEDULER (sched));
   g_return_if_fail (GST_IS_ELEMENT (element));
 
-  if (CLASS (sched)->scheduling_change)
-    CLASS (sched)->scheduling_change (sched, element);
+  sclass = GST_SCHEDULER_GET_CLASS (sched);
+
+  if (sclass->scheduling_change)
+    sclass->scheduling_change (sched, element);
 }
 
 /**
@@ -323,14 +357,18 @@ gst_scheduler_scheduling_change (GstScheduler *sched, GstElement *element)
 void
 gst_scheduler_add_scheduler (GstScheduler *sched, GstScheduler *sched2)
 {
+  GstSchedulerClass *sclass;
+
   g_return_if_fail (GST_IS_SCHEDULER (sched));
   g_return_if_fail (GST_IS_SCHEDULER (sched2));
 
   sched->schedulers = g_list_prepend (sched->schedulers, sched2);
   sched2->parent_sched = sched;
 
-  if (CLASS (sched)->add_scheduler)
-    CLASS (sched)->add_scheduler (sched, sched2);
+  sclass = GST_SCHEDULER_GET_CLASS (sched);
+
+  if (sclass->add_scheduler)
+    sclass->add_scheduler (sched, sched2);
 }
 
 /**
@@ -343,14 +381,18 @@ gst_scheduler_add_scheduler (GstScheduler *sched, GstScheduler *sched2)
 void
 gst_scheduler_remove_scheduler (GstScheduler *sched, GstScheduler *sched2)
 {
+  GstSchedulerClass *sclass;
+
   g_return_if_fail (GST_IS_SCHEDULER (sched));
   g_return_if_fail (GST_IS_SCHEDULER (sched2));
 
   sched->schedulers = g_list_remove (sched->schedulers, sched2);
   sched2->parent_sched = NULL;
 
-  if (CLASS (sched)->remove_scheduler)
-    CLASS (sched)->remove_scheduler (sched, sched2);
+  sclass = GST_SCHEDULER_GET_CLASS (sched);
+
+  if (sclass->remove_scheduler)
+    sclass->remove_scheduler (sched, sched2);
 }
 
 /**
@@ -363,11 +405,15 @@ gst_scheduler_remove_scheduler (GstScheduler *sched, GstScheduler *sched2)
 void
 gst_scheduler_lock_element (GstScheduler *sched, GstElement *element)
 {
+  GstSchedulerClass *sclass;
+
   g_return_if_fail (GST_IS_SCHEDULER (sched));
   g_return_if_fail (GST_IS_ELEMENT (element));
 
-  if (CLASS (sched)->lock_element)
-    CLASS (sched)->lock_element (sched, element);
+  sclass = GST_SCHEDULER_GET_CLASS (sched);
+
+  if (sclass->lock_element)
+    sclass->lock_element (sched, element);
 }
 
 /**
@@ -380,11 +426,15 @@ gst_scheduler_lock_element (GstScheduler *sched, GstElement *element)
 void
 gst_scheduler_unlock_element (GstScheduler *sched, GstElement *element)
 {
+  GstSchedulerClass *sclass;
+
   g_return_if_fail (GST_IS_SCHEDULER (sched));
   g_return_if_fail (GST_IS_ELEMENT (element));
 
-  if (CLASS (sched)->unlock_element)
-    CLASS (sched)->unlock_element (sched, element);
+  sclass = GST_SCHEDULER_GET_CLASS (sched);
+
+  if (sclass->unlock_element)
+    sclass->unlock_element (sched, element);
 }
 
 /**
@@ -397,11 +447,15 @@ gst_scheduler_unlock_element (GstScheduler *sched, GstElement *element)
 void
 gst_scheduler_error (GstScheduler *sched, GstElement *element)
 {
+  GstSchedulerClass *sclass;
+
   g_return_if_fail (GST_IS_SCHEDULER (sched));
   g_return_if_fail (GST_IS_ELEMENT (element));
 
-  if (CLASS (sched)->error)
-    CLASS (sched)->error (sched, element);
+  sclass = GST_SCHEDULER_GET_CLASS (sched);
+
+  if (sclass->error)
+    sclass->error (sched, element);
 }
 
 /**
@@ -414,11 +468,15 @@ gst_scheduler_error (GstScheduler *sched, GstElement *element)
 void
 gst_scheduler_yield (GstScheduler *sched, GstElement *element)
 {
+  GstSchedulerClass *sclass;
+
   g_return_if_fail (GST_IS_SCHEDULER (sched));
   g_return_if_fail (GST_IS_ELEMENT (element));
 
-  if (CLASS (sched)->yield)
-    CLASS (sched)->yield (sched, element);
+  sclass = GST_SCHEDULER_GET_CLASS (sched);
+
+  if (sclass->yield)
+    sclass->yield (sched, element);
 }
 
 /**
@@ -434,11 +492,15 @@ gst_scheduler_yield (GstScheduler *sched, GstElement *element)
 gboolean
 gst_scheduler_interrupt (GstScheduler *sched, GstElement *element)
 {
+  GstSchedulerClass *sclass;
+
   g_return_val_if_fail (GST_IS_SCHEDULER (sched), FALSE);
   g_return_val_if_fail (GST_IS_ELEMENT (element), FALSE);
 
-  if (CLASS (sched)->interrupt)
-    return CLASS (sched)->interrupt (sched, element);
+  sclass = GST_SCHEDULER_GET_CLASS (sched);
+
+  if (sclass->interrupt)
+    return sclass->interrupt (sched, element);
 
   return FALSE;
 }
@@ -591,10 +653,14 @@ GstClockReturn
 gst_scheduler_clock_wait (GstScheduler *sched, GstElement *element, GstClock *clock, GstClockTime time,
                GstClockTimeDiff *jitter)
 {
+  GstSchedulerClass *sclass;
+
   g_return_val_if_fail (GST_IS_SCHEDULER (sched), GST_CLOCK_ERROR);
 
-  if (CLASS (sched)->clock_wait)
-    return CLASS (sched)->clock_wait (sched, element, clock, time, jitter);
+  sclass = GST_SCHEDULER_GET_CLASS (sched);
+
+  if (sclass->clock_wait)
+    return sclass->clock_wait (sched, element, clock, time, jitter);
   else
   {
     GstClockID id = gst_clock_new_single_shot_id (clock, time);
@@ -616,10 +682,14 @@ gst_scheduler_clock_wait (GstScheduler *sched, GstElement *element, GstClock *cl
 gboolean
 gst_scheduler_iterate (GstScheduler *sched)
 {
+  GstSchedulerClass *sclass;
+
   g_return_val_if_fail (GST_IS_SCHEDULER (sched), FALSE);
 
-  if (CLASS (sched)->iterate)
-    return CLASS (sched)->iterate (sched);
+  sclass = GST_SCHEDULER_GET_CLASS (sched);
+
+  if (sclass->iterate)
+    return sclass->iterate (sched);
 
   return FALSE;
 }
@@ -634,10 +704,14 @@ gst_scheduler_iterate (GstScheduler *sched)
 void
 gst_scheduler_show (GstScheduler *sched)
 {
+  GstSchedulerClass *sclass;
+
   g_return_if_fail (GST_IS_SCHEDULER (sched));
 
-  if (CLASS (sched)->show)
-    CLASS (sched)->show (sched);
+  sclass = GST_SCHEDULER_GET_CLASS (sched);
+
+  if (sclass->show)
+    sclass->show (sched);
 }
 
 /*
index 24df48fb6e5b08f4c51cb03cbd8f6dec04b7c1f5..bcb83ee32a6a4b65e18e6163f2b22ae2442a3d6a 100644 (file)
 
 G_BEGIN_DECLS
 
-#define GST_TYPE_SCHEDULER \
-  (gst_scheduler_get_type())
-#define GST_SCHEDULER(obj) \
-  (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_SCHEDULER,GstScheduler))
-#define GST_SCHEDULER_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_SCHEDULER,GstSchedulerClass))
-#define GST_IS_SCHEDULER(obj) \
-  (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_SCHEDULER))
-#define GST_IS_SCHEDULER_CLASS(obj) \
-  (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_SCHEDULER))
+#define GST_TYPE_SCHEDULER             (gst_scheduler_get_type ())
+#define GST_SCHEDULER(obj)             (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_SCHEDULER, GstScheduler))
+#define GST_IS_SCHEDULER(obj)          (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_SCHEDULER))
+#define GST_SCHEDULER_CLASS(klass)     (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_SCHEDULER,GstSchedulerClass))
+#define GST_IS_SCHEDULER_CLASS(klass)  (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_SCHEDULER))
+#define GST_SCHEDULER_GET_CLASS(obj)   (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_SCHEDULER, GstSchedulerClass))
 
 typedef enum {
   /* this scheduler works with a fixed clock */
@@ -75,6 +71,8 @@ struct _GstScheduler {
   GList                        *clock_receivers;
 
   GList                        *schedulers;
+
+  gpointer             dummy[8];
 };
 
 struct _GstSchedulerClass {
@@ -106,6 +104,8 @@ struct _GstSchedulerClass {
   /* signals */
   void                  (*object_sync)          (GstScheduler *sched, GstClock *clock, GstObject *object,
                                                 GstClockID id);
+
+  gpointer             dummy[8];
 };
 
 GType                  gst_scheduler_get_type          (void);
@@ -144,16 +144,12 @@ void                      gst_scheduler_show              (GstScheduler *sched);
  * creating schedulers
  *
  */
-#define GST_TYPE_SCHEDULER_FACTORY \
-  (gst_scheduler_factory_get_type ())
-#define GST_SCHEDULER_FACTORY(obj) \
-  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_SCHEDULER_FACTORY, GstSchedulerFactory))
-#define GST_SCHEDULER_FACTORY_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_SCHEDULER_FACTORY, GstSchedulerFactoryClass))
-#define GST_IS_SCHEDULER_FACTORY(obj) \
-  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_SCHEDULER_FACTORY))
-#define GST_IS_SCHEDULER_FACTORY_CLASS(obj) \
-  (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_SCHEDULER_FACTORY))
+#define GST_TYPE_SCHEDULER_FACTORY             (gst_scheduler_factory_get_type ())
+#define GST_SCHEDULER_FACTORY(obj)             (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_SCHEDULER_FACTORY, GstSchedulerFactory))
+#define GST_IS_SCHEDULER_FACTORY(obj)          (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_SCHEDULER_FACTORY))
+#define GST_SCHEDULER_FACTORY_CLASS(klass)     (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_SCHEDULER_FACTORY, GstSchedulerFactoryClass))
+#define GST_IS_SCHEDULER_FACTORY_CLASS(klass)  (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_SCHEDULER_FACTORY))
+#define GST_SCHEDULER_FACTORY_GET_CLASS(obj)   (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_SCHEDULER_FACTORY, GstSchedulerFactoryClass))
 
 typedef struct _GstSchedulerFactory GstSchedulerFactory;
 typedef struct _GstSchedulerFactoryClass GstSchedulerFactoryClass;
index 8b6df540f22894e2fcd151149a8d2b4bf3839be0..174a77707868664bc1ff49882d35ff2663c2491f 100644 (file)
@@ -27,8 +27,6 @@
 
 #include "gstsystemclock.h"
 
-#define CLASS(clock)  GST_SYSTEM_CLOCK_CLASS (G_OBJECT_GET_CLASS (clock))
-
 static GstClock *_the_system_clock = NULL;
 
 static void                    gst_system_clock_class_init     (GstSystemClockClass *klass);
index 2bedb7213c1c58e3fdf1ce765497528abd0c0744..674901d08b4b0ea7713af6e46b798a64e2df5698 100644 (file)
 
 G_BEGIN_DECLS
 
-#define GST_TYPE_SYSTEM_CLOCK \
-  (gst_system_clock_get_type())
-#define GST_SYSTEM_CLOCK(obj) \
-  (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_SYSTEM_CLOCK,GstSystemClock))
-#define GST_SYSTEM_CLOCK_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_SYSTEM_CLOCK,GstSystemClockClass))
-#define GST_IS_SYSTEM_CLOCK(obj) \
-  (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_SYSTEM_CLOCK))
-#define GST_IS_SYSTEM_CLOCK_CLASS(obj) \
-  (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_SYSTEM_CLOCK))
+#define GST_TYPE_SYSTEM_CLOCK                  (gst_system_clock_get_type ())
+#define GST_SYSTEM_CLOCK(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_SYSTEM_CLOCK, GstSystemClock))
+#define GST_IS_SYSTEM_CLOCK(obj)               (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_SYSTEM_CLOCK))
+#define GST_SYSTEM_CLOCK_CLASS(klass)          (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_SYSTEM_CLOCK, GstSystemClockClass))
+#define GST_IS_SYSTEM_CLOCK_CLASS(klass)       (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_SYSTEM_CLOCK))
+#define GST_SYSTEM_CLOCK_GET_CLASS(obj)        (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_SYSTEM_CLOCK, GstSystemClockClass))
 
 
 typedef struct _GstSystemClock GstSystemClock;
index bf8b0ff6a8fb8e77bf91918a365272b27ceb5bbf..aeba995816025a27ffef4437a927472f79917750 100644 (file)
@@ -43,16 +43,12 @@ typedef enum {
   GST_THREAD_FLAG_LAST                 = GST_BIN_FLAG_LAST + 4
 } GstThreadState;
 
-#define GST_TYPE_THREAD \
-  (gst_thread_get_type())
-#define GST_THREAD(obj) \
-  (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_THREAD,GstThread))
-#define GST_THREAD_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_THREAD,GstThreadClass))
-#define GST_IS_THREAD(obj) \
-  (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_THREAD))
-#define GST_IS_THREAD_CLASS(obj) \
-  (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_THREAD))
+#define GST_TYPE_THREAD                (gst_thread_get_type())
+#define GST_THREAD(obj)                (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_THREAD,GstThread))
+#define GST_IS_THREAD(obj)             (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_THREAD))
+#define GST_THREAD_CLASS(klass)        (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_THREAD,GstThreadClass))
+#define GST_IS_THREAD_CLASS(klass)     (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_THREAD))
+#define GST_THREAD_GET_CLASS(obj)      (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_THREAD, GstThreadClass))
 
 typedef struct _GstThread      GstThread;
 typedef struct _GstThreadClass         GstThreadClass;
@@ -70,6 +66,8 @@ struct _GstThread {
   GCond        *cond;                  /* .... used to control the thread */
 
   gint          transition;            /* the current state transition */
+
+  gpointer      dummy[8];
 };
 
 struct _GstThreadClass {
@@ -77,6 +75,8 @@ struct _GstThreadClass {
 
   /* signals */
   void (*shutdown)     (GstThread *thread);
+
+  gpointer      dummy[8];
 };
 
 GType  gst_thread_get_type     (void);
index f89dccd29cfb98d29a68f72e6a7fb7349867051c..9cd150de537a53bafe1d278a86fa9ab3a7182c1a 100644 (file)
@@ -31,7 +31,7 @@
 G_BEGIN_DECLS
 
 /* type of function used to check a stream for equality with type */
-typedef GstCaps *(*GstTypeFindFunc) (GstBuffer *buf, gpointer priv);
+typedef GstCaps*       (*GstTypeFindFunc)      (GstBuffer *buf, gpointer priv);
 
 typedef struct _GstType GstType;
 typedef struct _GstTypeDefinition GstTypeDefinition;
@@ -54,27 +54,27 @@ struct _GstTypeDefinition {
   GstTypeFindFunc typefindfunc;
 };
 
-#define GST_TYPE_TYPE_FACTORY \
-  (gst_type_factory_get_type())
-#define GST_TYPE_FACTORY(obj) \
-  (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_TYPE_FACTORY,GstTypeFactory))
-#define GST_TYPE_FACTORY_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_TYPE_FACTORY,GstTypeFactoryClass))
-#define GST_IS_TYPE_FACTORY(obj) \
-  (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_TYPE_FACTORY))
-#define GST_IS_TYPE_FACTORY_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_TYPE_FACTORY))
+#define GST_TYPE_TYPE_FACTORY                  (gst_type_factory_get_type ())
+#define GST_TYPE_FACTORY(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_TYPE_FACTORY, GstTypeFactory))
+#define GST_IS_TYPE_FACTORY(obj)               (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_TYPE_FACTORY))
+#define GST_TYPE_FACTORY_CLASS(klass)          (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_TYPE_FACTORY, GstTypeFactoryClass))
+#define GST_IS_TYPE_FACTORY_CLASS(klass)       (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_TYPE_FACTORY))
+#define GST_TYPE_FACTORY_GET_CLASS(obj)        (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_TYPE_FACTORY, GstTypeFactoryClass))
 
 struct _GstTypeFactory {
-  GstPluginFeature feature;
+  GstPluginFeature      feature;
 
-  gchar *mime;
-  gchar *exts;
-  GstTypeFindFunc typefindfunc;
+  gchar                *mime;
+  gchar                *exts;
+  GstTypeFindFunc       typefindfunc;
+
+  gpointer              dummy[8];
 };
 
 struct _GstTypeFactoryClass {
   GstPluginFeatureClass parent;
+
+  gpointer              dummy[8];
 };
 
 
index 8c1d6d36d7f2a70af6e660e116c94e75096d0b8f..dd65b276e75dd3e2070e176649a39e64b34a8cc0 100644 (file)
@@ -32,16 +32,12 @@ G_BEGIN_DECLS
 
 extern GstElementDetails gst_type_find_details;
 
-#define GST_TYPE_TYPE_FIND \
-  (gst_type_find_get_type())
-#define GST_TYPE_FIND(obj) \
-  (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_TYPE_FIND,GstTypeFind))
-#define GST_TYPE_FIND_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_TYPE_FIND,GstTypeFindClass))
-#define GST_IS_TYPE_FIND(obj) \
-  (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_TYPE_FIND))
-#define GST_IS_TYPE_FIND_CLASS(obj) \
-  (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_TYPE_FIND))
+#define GST_TYPE_TYPE_FIND             (gst_type_find_get_type ())
+#define GST_TYPE_FIND(obj)             (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_TYPE_FIND, GstTypeFind))
+#define GST_IS_TYPE_FIND(obj)          (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_TYPE_FIND))
+#define GST_TYPE_FIND_CLASS(klass)     (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_TYPE_FIND, GstTypeFindClass))
+#define GST_IS_TYPE_FIND_CLASS(klass)  (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_TYPE_FIND))
+#define GST_TYPE_FIND_GET_CLASS(obj)   (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_TYPE_FIND, GstTypeFindClass))
 
 typedef struct _GstTypeFind            GstTypeFind;
 typedef struct _GstTypeFindClass       GstTypeFindClass;
index 0ef2ded37cac15d8da394b61a627ed83e6593a58..651cb79257cbce5d4a7c4ce0dbc78b8adafa714e 100644 (file)
 
 G_BEGIN_DECLS
 
-#define GST_TYPE_XML \
-  (gst_xml_get_type())
-#define GST_XML(obj) \
-  (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_XML,GstXML))
-#define GST_XML_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_XML,GstXMLClass))
-#define GST_IS_XML(obj) \
-  (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_XML))
-#define GST_IS_XML_CLASS(obj) \
-  (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_XML))
+#define GST_TYPE_XML           (gst_xml_get_type ())
+#define GST_XML(obj)           (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_XML, GstXML))
+#define GST_IS_XML(obj)        (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_XML))
+#define GST_XML_CLASS(klass)   (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_XML, GstXMLClass))
+#define GST_IS_XML_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_XML))
+
+#define GST_XML_GET_CLASS(obj)         (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_XML, GstXMLClass))
 
 typedef struct _GstXML GstXML;
 typedef struct _GstXMLClass GstXMLClass;
index 679f5b6763f8807159a486e442ba39a41c8863f0..f5b279ea78353d2fac1efb97825568313a6989d2 100644 (file)
@@ -4,3 +4,4 @@ grammar.tab.c
 grammar.tab.h
 lex.yy.c
 parse.c
+lex._gst_parse_yy.c
index f80b972efa532ce4eaca31c5d4cb5dadd38a87ea..e3118220d80497b0b9ad19ee54ae26daf87267bb 100644 (file)
@@ -469,7 +469,8 @@ gst_basic_scheduler_select_proxy (GstPad * pad, GstBuffer * buf)
   GST_RPAD_BUFPEN (GST_RPAD_PEER (pad)) = buf;
   GST_DEBUG (GST_CAT_DATAFLOW, "switching to %p",
             GST_ELEMENT_THREADSTATE (parent));
-  parent->select_pad = pad;
+  /* FIXME temporarily diabled */
+  /* parent->select_pad = pad; */
 
   do_element_switch (parent);
   
@@ -1250,7 +1251,8 @@ gst_basic_scheduler_pad_select (GstScheduler * sched, GList * padlist)
 
     do_element_switch (GST_PAD_PARENT (peer));
 
-    pad = GST_ELEMENT (GST_PAD_PARENT (pad))->select_pad;
+    /* FIXME disabled for now */
+    /* pad = GST_ELEMENT (GST_PAD_PARENT (pad))->select_pad;*/
 
     g_assert (pad != NULL);
   }