From bc1bdfababeb6d95ece3c2217af741c8783cdd33 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Mon, 12 Jun 2006 09:11:44 +0000 Subject: [PATCH] gst/gstbuffer.h: Avoid unneeded type checking. Original commit message from CVS: * gst/gstbuffer.h: Avoid unneeded type checking. API: GST_BUFFER_IS_DISCONT * gst/gstminiobject.h: Avoid type check in flag accessor. * gst/gstelementfactory.h: * gst/gstplugin.h: * gst/gstpluginfeature.h: Add _CAST macros. API: GST_ELEMENT_FACTORY_CAST API: GST_PLUGIN_CAST API: GST_PLUGIN_FEATURE_CAST --- ChangeLog | 17 +++++++++++++++++ gst/gstbuffer.h | 27 ++++++++++++++++++--------- gst/gstelementfactory.h | 1 + gst/gstminiobject.h | 2 +- gst/gstplugin.h | 1 + gst/gstpluginfeature.h | 1 + 6 files changed, 39 insertions(+), 10 deletions(-) diff --git a/ChangeLog b/ChangeLog index c0fe54b298..cc86fafb8d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,20 @@ +2006-06-12 Wim Taymans + + * gst/gstbuffer.h: + Avoid unneeded type checking. + API: GST_BUFFER_IS_DISCONT + + * gst/gstminiobject.h: + Avoid type check in flag accessor. + + * gst/gstelementfactory.h: + * gst/gstplugin.h: + * gst/gstpluginfeature.h: + Add _CAST macros. + API: GST_ELEMENT_FACTORY_CAST + API: GST_PLUGIN_CAST + API: GST_PLUGIN_FEATURE_CAST + 2006-06-12 Wim Taymans * gst/gstobject.c: (gst_object_get_type), (gst_object_ref), diff --git a/gst/gstbuffer.h b/gst/gstbuffer.h index 5e7274d05a..4461076a49 100644 --- a/gst/gstbuffer.h +++ b/gst/gstbuffer.h @@ -177,6 +177,15 @@ typedef struct _GstBufferClass GstBufferClass; * Tests if the end offset is known. */ #define GST_BUFFER_OFFSET_END_IS_VALID(buffer) (GST_BUFFER_OFFSET_END (buffer) != GST_BUFFER_OFFSET_NONE) +/** + * GST_BUFFER_IS_DISCONT: + * @buffer: a #GstBuffer + * + * Tests if the buffer marks a discontinuity in the stream. + * + * Since: 0.10.9 + */ +#define GST_BUFFER_IS_DISCONT(buffer) (GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_DISCONT)) /** * GstBufferFlag: @@ -307,7 +316,7 @@ gst_buffer_ref (GstBuffer * buf) { /* not using a macro here because gcc-4.1 will complain * if the return value isn't used (because of the cast) */ - return (GstBuffer *) gst_mini_object_ref (GST_MINI_OBJECT (buf)); + return (GstBuffer *) gst_mini_object_ref (GST_MINI_OBJECT_CAST (buf)); } /** @@ -318,7 +327,7 @@ gst_buffer_ref (GstBuffer * buf) * will be freed. If GST_BUFFER_MALLOCDATA() is non-NULL, this pointer will * also be freed at this time. */ -#define gst_buffer_unref(buf) gst_mini_object_unref (GST_MINI_OBJECT (buf)) +#define gst_buffer_unref(buf) gst_mini_object_unref (GST_MINI_OBJECT_CAST (buf)) /* copy buffer */ /** @@ -328,7 +337,7 @@ gst_buffer_ref (GstBuffer * buf) * Create a copy of the given buffer. This will also make a newly allocated * copy of the data the source buffer contains. */ -#define gst_buffer_copy(buf) GST_BUFFER_CAST (gst_mini_object_copy (GST_MINI_OBJECT (buf))) +#define gst_buffer_copy(buf) GST_BUFFER_CAST (gst_mini_object_copy (GST_MINI_OBJECT_CAST (buf))) /** * gst_buffer_is_writable: * @buf: a #GstBuffer @@ -338,7 +347,7 @@ gst_buffer_ref (GstBuffer * buf) * writable, but it is only safe to change it when there is only one owner * of the buffer - ie, the refcount is 1. */ -#define gst_buffer_is_writable(buf) gst_mini_object_is_writable (GST_MINI_OBJECT (buf)) +#define gst_buffer_is_writable(buf) gst_mini_object_is_writable (GST_MINI_OBJECT_CAST (buf)) /** * gst_buffer_make_writable: * @buf: a #GstBuffer @@ -347,7 +356,7 @@ gst_buffer_ref (GstBuffer * buf) * already writable, this will simply return the same buffer. A copy will * otherwise be made using gst_buffer_copy(). */ -#define gst_buffer_make_writable(buf) GST_BUFFER_CAST (gst_mini_object_make_writable (GST_MINI_OBJECT (buf))) +#define gst_buffer_make_writable(buf) GST_BUFFER_CAST (gst_mini_object_make_writable (GST_MINI_OBJECT_CAST (buf))) /* Ensure that the metadata of the buffer is writable, even if the buffer data * isn't */ @@ -367,7 +376,7 @@ GstBuffer* gst_buffer_make_metadata_writable (GstBuffer *buf); * * Either @nbuf or the #GstBuffer pointed to by @obuf may be NULL. */ -#define gst_buffer_replace(obuf,nbuf) gst_mini_object_replace ((GstMiniObject **)(obuf), GST_MINI_OBJECT (nbuf)) +#define gst_buffer_replace(obuf,nbuf) gst_mini_object_replace ((GstMiniObject **)(obuf), GST_MINI_OBJECT_CAST (nbuf)) GstCaps* gst_buffer_get_caps (GstBuffer *buffer); void gst_buffer_set_caps (GstBuffer *buffer, GstCaps *caps); @@ -387,7 +396,7 @@ GstBuffer* gst_buffer_span (GstBuffer *buf1, guint32 offset, GstBuffer *buf2, * Sets @b as the value of @v, correclty incrementing the refcount of * the buffer. */ -#define gst_value_set_buffer(v,b) gst_value_set_mini_object(v, GST_MINI_OBJECT(b)) +#define gst_value_set_buffer(v,b) gst_value_set_mini_object(v, GST_MINI_OBJECT_CAST(b)) /** * gst_value_take_buffer: * @v: a #GstValue to receive the data @@ -396,7 +405,7 @@ GstBuffer* gst_buffer_span (GstBuffer *buf1, guint32 offset, GstBuffer *buf2, * Sets @b as the value of @v, this function lets the GstValue * take ownership of the buffer. */ -#define gst_value_take_buffer(v,b) gst_value_take_mini_object(v, GST_MINI_OBJECT(b)) +#define gst_value_take_buffer(v,b) gst_value_take_mini_object(v, GST_MINI_OBJECT_CAST(b)) /** * gst_value_get_buffer: * @v: a #GstValue to qeury @@ -405,7 +414,7 @@ GstBuffer* gst_buffer_span (GstBuffer *buf1, guint32 offset, GstBuffer *buf2, * increase the refcount of the returned buffer so the buffer remains * valid as long as you own a refcount to the GstValue. */ -#define gst_value_get_buffer(v) GST_BUFFER (gst_value_get_mini_object(v)) +#define gst_value_get_buffer(v) GST_BUFFER_CAST (gst_value_get_mini_object(v)) /* --- protected --- */ void _gst_buffer_initialize (void); diff --git a/gst/gstelementfactory.h b/gst/gstelementfactory.h index a5b89a5cb5..72f8115897 100644 --- a/gst/gstelementfactory.h +++ b/gst/gstelementfactory.h @@ -94,6 +94,7 @@ struct _GstElementDetails GstElementFactoryClass)) #define GST_IS_ELEMENT_FACTORY(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_ELEMENT_FACTORY)) #define GST_IS_ELEMENT_FACTORY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_ELEMENT_FACTORY)) +#define GST_ELEMENT_FACTORY_CAST(obj) ((GstElementFactory *)(obj)) /** * GstElementFactory: diff --git a/gst/gstminiobject.h b/gst/gstminiobject.h index bbc64802e8..b56cb5081b 100644 --- a/gst/gstminiobject.h +++ b/gst/gstminiobject.h @@ -67,7 +67,7 @@ typedef void (*GstMiniObjectFinalizeFunction) (GstMiniObject *obj); * * This macro returns the entire set of flags for the mini-object. */ -#define GST_MINI_OBJECT_FLAGS(obj) (GST_MINI_OBJECT(obj)->flags) +#define GST_MINI_OBJECT_FLAGS(obj) (GST_MINI_OBJECT_CAST(obj)->flags) /** * GST_MINI_OBJECT_FLAG_IS_SET: * @obj: MiniObject to check for flags. diff --git a/gst/gstplugin.h b/gst/gstplugin.h index ccfd3fb233..a68408e9ef 100644 --- a/gst/gstplugin.h +++ b/gst/gstplugin.h @@ -127,6 +127,7 @@ struct _GstPluginDesc { #define GST_PLUGIN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_PLUGIN, GstPluginClass)) #define GST_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_PLUGIN, GstPlugin)) #define GST_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_PLUGIN, GstPluginClass)) +#define GST_PLUGIN_CAST(obj) ((GstPlugin*)(obj)) /** * GstPlugin: diff --git a/gst/gstpluginfeature.h b/gst/gstpluginfeature.h index fff50bcbe1..3319947882 100644 --- a/gst/gstpluginfeature.h +++ b/gst/gstpluginfeature.h @@ -35,6 +35,7 @@ G_BEGIN_DECLS #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_CAST(obj) ((GstPluginFeature*)(obj)) /** * GST_PLUGIN_FEATURE_NAME: