struct _GstAutoplug {
GstObject object;
+
+ GST_OBJECT_PADDING
};
struct _GstAutoplugClass {
/* perform the autoplugging */
GstElement* (*autoplug_to_caps) (GstAutoplug *autoplug, GstCaps *srccaps, GstCaps *sinkcaps, va_list args);
GstElement* (*autoplug_to_renderers) (GstAutoplug *autoplug, GstCaps *srccaps, GstElement *target, va_list args);
+
+ GST_CLASS_PADDING
};
gpointer pre_iterate_data;
gpointer post_iterate_data;
- gpointer dummy[8];
+ GST_OBJECT_PADDING
};
struct _GstBinClass {
void (*element_added) (GstBin *bin, GstElement *child);
void (*element_removed) (GstBin *bin, GstElement *child);
- gpointer dummy[8];
+ GST_CLASS_PADDING
};
GType gst_bin_get_type (void);
GstBufferPool *pool;
/* pointer to pool private data of parent buffer in case of a subbuffer */
gpointer pool_private;
+
+ GST_STRUCT_PADDING
};
/* bufferpools */
GstBufferPoolBufferFreeFunction buffer_free;
gpointer user_data;
+
+ GST_STRUCT_PADDING
};
/* allocation */
/* if we are in the seek state (waiting for DISCONT) */
gboolean in_seek;
+
+ GST_OBJECT_PADDING
};
GstByteStream* gst_bytestream_new (GstPad *pad);
GCond *active_cond;
gboolean stats;
- gpointer dummy[4];
+ GST_OBJECT_PADDING
};
struct _GstClockClass {
GstClockEntryStatus (*wait_async) (GstClock *clock, GstClockEntry *entry);
void (*unschedule) (GstClock *clock, GstClockEntry *entry);
void (*unlock) (GstClock *clock, GstClockEntry *entry);
+
+ GST_CLASS_PADDING
};
GType gst_clock_get_type (void);
#include <glib-object.h>
#include <gst/gstatomic.h>
+#include <gst/gsttypes.h>
G_BEGIN_DECLS
/* utility function pointers, can override default */
GstDataFreeFunction free; /* free the data */
GstDataCopyFunction copy; /* copy the data */
+
+ GST_STRUCT_PADDING
};
/* function used by subclasses only */
GAsyncQueue *prop_value_queue;
GMutex *property_mutex;
- gpointer dummy[8];
+ GST_OBJECT_PADDING
};
struct _GstElementClass {
GstIndex* (*get_index) (GstElement *element);
void (*set_index) (GstElement *element, GstIndex *index);
- /* padding */
- gpointer dummy[8];
+ GST_CLASS_PADDING
};
void gst_element_class_add_pad_template (GstElementClass *klass, GstPadTemplate *templ);
gchar *version; /* version of the element */
gchar *author; /* who wrote this thing? */
gchar *copyright; /* copyright details (year, etc.) */
+
+ GST_STRUCT_PADDING
};
#define GST_TYPE_ELEMENT_FACTORY (gst_element_factory_get_type())
GList *padtemplates;
guint16 numpadtemplates;
+
+ GST_OBJECT_PADDING
};
struct _GstElementFactoryClass {
GstPluginFeatureClass parent_class;
+
+ GST_CLASS_PADDING
};
GType gst_element_factory_get_type (void);
GstCaps *caps;
} caps;
} event_data;
+
+ GST_STRUCT_PADDING
};
void _gst_event_initialize (void);
GHashTable *writers;
gint last_id;
- gpointer dummy[8];
+ GST_OBJECT_PADDING
};
struct _GstIndexClass {
/* signals */
void (*entry_added) (GstIndex *index, GstIndexEntry *entry);
- gpointer dummy[8];
+ GST_CLASS_PADDING;
};
GType gst_index_get_type (void);
gchar *longdesc; /* long description of the index (well, don't overdo it..) */
GType type; /* unique GType of the index */
+
+ GST_OBJECT_PADDING
};
struct _GstIndexFactoryClass {
GstPluginFeatureClass parent;
+
+ GST_CLASS_PADDING
};
GType gst_index_factory_get_type (void);
/* virtual functions */
gboolean (* supported) (GstInterface *iface,
GType iface_type);
+
+ GST_CLASS_PADDING
} GstInterfaceClass;
#define GST_INTERFACE_CHECK_INSTANCE_CAST(obj, type, cast_t) \
GstObject *parent;
guint32 flags;
+
+ GST_OBJECT_PADDING
};
/* signal_object is used to signal to the whole class */
xmlNodePtr (*save_thyself) (GstObject *object, xmlNodePtr parent);
void (*restore_thyself) (GstObject *object, xmlNodePtr self);
- gpointer dummy[4];
+ GST_CLASS_PADDING
};
#define GST_FLAGS(obj) (GST_OBJECT_CAST (obj)->flags)
gpointer element_private;
GstPadTemplate *padtemplate; /* the template for this pad */
+
+ GST_OBJECT_PADDING
};
struct _GstPadClass {
GstObjectClass parent_class;
+
+ GST_CLASS_PADDING
};
struct _GstRealPad {
GstPadBufferPoolFunction bufferpoolfunc;
GstProbeDispatcher probedisp;
+
+ GST_OBJECT_PADDING
};
struct _GstRealPadClass {
void (*linked) (GstPad *pad, GstPad *peer);
void (*unlinked) (GstPad *pad, GstPad *peer);
+
+ GST_CLASS_PADDING
};
struct _GstGhostPad {
GstPad pad;
GstRealPad *realpad;
+
+ GST_OBJECT_PADDING
};
struct _GstGhostPadClass {
GstPadClass parent_class;
+
+ GST_CLASS_PADDING
};
GstPadDirection direction;
GstPadPresence presence;
GstCaps *caps;
+
+ GST_OBJECT_PADDING
};
struct _GstPadTemplateClass {
/* signal callbacks */
void (*pad_created) (GstPadTemplate *templ, GstPad *pad);
+
+ GST_CLASS_PADDING
};
#ifdef G_HAVE_ISO_VARARGS
struct _GstPipeline {
GstBin bin;
- gpointer dummy[32];
+ GST_OBJECT_PADDING
};
struct _GstPipelineClass {
GstBinClass parent_class;
- gpointer dummy[32];
+ GST_CLASS_PADDING
};
GType gst_pipeline_get_type (void);
gpointer manager; /* managing registry */
GModule *module; /* contains the module if the plugin is loaded */
gboolean init_called; /* if the init function has been called */
+
+ GST_STRUCT_PADDING
};
/* Initialiser function: returns TRUE if plugin initialised successfully */
#define __GST_PLUGIN_FEATURE_H__
#include <glib-object.h>
+#include <gst/gsttypes.h>
G_BEGIN_DECLS
/* --- private --- */
gpointer manager;
+
+ GST_OBJECT_PADDING
};
struct _GstPluginFeatureClass {
GObjectClass parent_class;
void (*unload_thyself) (GstPluginFeature *feature);
+
+ GST_CLASS_PADDING
};
typedef struct {
GTimeVal *timeval; /* the timeout for the queue locking */
GAsyncQueue *events; /* upstream events get decoupled here */
+
+ GST_OBJECT_PADDING
};
struct _GstQueueClass {
/* signal callbacks */
void (*full) (GstQueue *queue);
+
+ GST_CLASS_PADDING
};
GType gst_queue_get_type (void);
GList *paths;
- gpointer dummy[8];
+ GST_OBJECT_PADDING
};
struct _GstRegistryClass {
/* signals */
void (*plugin_added) (GstRegistry *registry, GstPlugin *plugin);
- gpointer dummy[8];
+ GST_CLASS_PADDING
};
GList *schedulers;
- gpointer dummy[8];
+ GST_OBJECT_PADDING
};
struct _GstSchedulerClass {
void (*object_sync) (GstScheduler *sched, GstClock *clock, GstObject *object,
GstClockID id);
- gpointer dummy[8];
+ GST_CLASS_PADDING
};
GType gst_scheduler_get_type (void);
gchar *longdesc; /* long description of the scheduler (well, don't overdo it..) */
GType type; /* unique GType of the scheduler */
+
+ GST_OBJECT_PADDING
};
struct _GstSchedulerFactoryClass {
GstPluginFeatureClass parent;
+
+ GST_CLASS_PADDING
};
GType gst_scheduler_factory_get_type (void);
GMutex * mutex;
GCond * cond;
+
+ GST_OBJECT_PADDING
};
struct _GstSystemClockClass {
GstClockClass parent_class;
+
+ GST_CLASS_PADDING
};
GType gst_system_clock_get_type (void);
GMutex *lock; /* thread lock/condititon pairs */
GCond *cond; /* used to control the thread */
- gpointer dummy[8];
+ GST_OBJECT_PADDING
};
struct _GstThreadClass {
/* signals */
void (*shutdown) (GstThread *thread);
- gpointer dummy[8];
+ GST_CLASS_PADDING
};
GType gst_thread_get_type (void);
gchar *exts; /* space-delimited list of extensions */
GSList *factories; /* factories providing this type */
+
+ GST_STRUCT_PADDING
};
struct _GstTypeDefinition {
gchar *exts;
GstTypeFindFunc typefindfunc;
- gpointer dummy[8];
+ GST_OBJECT_PADDING
};
struct _GstTypeFactoryClass {
GstPluginFeatureClass parent;
- gpointer dummy[8];
+ GST_CLASS_PADDING
};
GstByteStream *bs;
GstCaps *caps;
+
+ GST_OBJECT_PADDING
};
struct _GstTypeFindClass {
/* signals */
void (*have_type) (GstElement *element,
GstCaps *caps);
+
+ GST_CLASS_PADDING
};
GType gst_type_find_get_type (void);
GST_RESULT_NOT_IMPL
} GstResult;
+#define GST_STRUCT_PADDING gpointer _gst_reserved[4];
+#define GST_CLASS_PADDING gpointer _gst_reserved[4];
+#define GST_OBJECT_PADDING gpointer _gst_reserved[4];
+
G_END_DECLS
#endif /* __GST_TYPES_H__ */
gchar *longdesc; /* description of the uri */
gchar *element; /* The element that can handle this uri */
gchar *property; /* The property on the element to set the uri */
+
+ GST_OBJECT_PADDING
};
struct _GstURIHandlerClass {
GstPluginFeatureClass parent;
+
+ GST_CLASS_PADDING
};
GType gst_uri_handler_get_type (void);
GList *topelements;
xmlNsPtr ns;
+
+ GST_OBJECT_PADDING
};
typedef struct _GstXMLNs GstXMLNs;
/* signal callbacks */
void (*object_loaded) (GstXML *xml, GstObject *object, xmlNodePtr self);
void (*object_saved) (GstXML *xml, GstObject *object, xmlNodePtr self);
+
+ GST_CLASS_PADDING
};
GType gst_xml_get_type (void);
GTimeVal *timeval; /* the timeout for the queue locking */
GAsyncQueue *events; /* upstream events get decoupled here */
+
+ GST_OBJECT_PADDING
};
struct _GstQueueClass {
/* signal callbacks */
void (*full) (GstQueue *queue);
+
+ GST_CLASS_PADDING
};
GType gst_queue_get_type (void);