$(LIBGST_CFLAGS) \
-D_GNU_SOURCE \
-DG_LOG_DOMAIN=g_log_domain_gstreamer \
- -DGST_CONFIG_DIR=\""$(GST_CONFIG_DIR)"\"
+ -DGST_CONFIG_DIR=\""$(GST_CONFIG_DIR)"\" \
+ \
+ -W -Wpointer-arith -Wbad-function-cast \
+ -Wcast-align -Wsign-compare \
+ -Wmissing-prototypes -Wmissing-declarations \
+ -Wnested-externs \
+ -Winline -Wno-unused
LIBS = $(LIBGST_LIBS)
LDFLAGS = ""
};
-cothread_context* cothread_init();
+cothread_context* cothread_init (void);
cothread_state* cothread_create (cothread_context *ctx);
void cothread_setfunc (cothread_state *thread, cothread_func func,
int argc, char **argv);
sizeof(GstAutoplug),
4,
(GInstanceInitFunc)gst_autoplug_init,
+ NULL
};
autoplug_type = g_type_register_static (GST_TYPE_OBJECT, "GstAutoplug", &autoplug_info, G_TYPE_FLAG_ABSTRACT);
}
sizeof(GstAutoplugFactory),
0,
(GInstanceInitFunc) gst_autoplugfactory_init,
+ NULL
};
autoplugfactory_type = g_type_register_static (GST_TYPE_PLUGIN_FEATURE,
"GstAutoplugFactory", &autoplugfactory_info, 0);
sizeof(GstBin),
8,
(GInstanceInitFunc)gst_bin_init,
+ NULL
};
bin_type = g_type_register_static (GST_TYPE_ELEMENT, "GstBin", &bin_info, 0);
}
// GST_SCHEDULE_ADD_ELEMENT (sched, element);
}
-void
+static void
gst_bin_set_element_sched (GstElement *element,GstSchedule *sched)
{
GList *children;
}
-void
+static void
gst_bin_unset_element_sched (GstElement *element)
{
GList *children;
// if a copy function exists, use it, else copy the bytes
if (buffer->copy != NULL) {
- (buffer->copy)(buffer,newbuf);
+ newbuf = (buffer->copy)(buffer);
} else {
// copy the absolute size
newbuf->size = buffer->size;
typedef struct _GstBuffer GstBuffer;
-typedef void (*GstBufferFreeFunc) (GstBuffer *buf);
-typedef void (*GstBufferCopyFunc) (GstBuffer *srcbuf,GstBuffer *dstbuf);
+typedef void (*GstBufferFreeFunc) (GstBuffer *buf);
+typedef GstBuffer *(*GstBufferCopyFunc) (GstBuffer *srcbuf);
#include <gst/gstbufferpool.h>
* @destroy: the copy function
*
* Sets the function that will be called when a buffer is copied.
- * You can use the default GstBuffer implementation (gst_buffer_copy) if you like.
+ *
+ * You may use the default GstBuffer implementation (gst_buffer_copy).
*/
void
gst_buffer_pool_set_buffer_copy_function (GstBufferPool *pool,
sizeof(GstElement),
0,
(GInstanceInitFunc)gst_element_init,
+ NULL
};
element_type = g_type_register_static(GST_TYPE_OBJECT, "GstElement", &element_info, G_TYPE_FLAG_ABSTRACT);
}
sizeof(GstElementFactory),
0,
(GInstanceInitFunc) gst_elementfactory_init,
+ NULL
};
elementfactory_type = g_type_register_static (GST_TYPE_PLUGIN_FEATURE,
"GstElementFactory", &elementfactory_info, 0);
GstElementFactory *factory;
g_return_val_if_fail(name != NULL, NULL);
+ g_return_val_if_fail (type, NULL);
g_return_val_if_fail (details, NULL);
factory = gst_elementfactory_find (name);
0, //sizeof(GstElement),
0,
NULL,
+ NULL
};
filename_type = g_type_register_static (G_TYPE_STRING, "GstFilename", &filename_info, 0);
}
sizeof (GstObject),
32,
(GInstanceInitFunc) gst_object_init,
+ NULL
};
object_type = g_type_register_static (G_TYPE_OBJECT, "GstObject", &object_info, G_TYPE_FLAG_ABSTRACT);
}
sizeof(GstSignalObject),
16,
(GInstanceInitFunc)gst_signal_object_init,
+ NULL
};
signal_object_type = g_type_register_static(G_TYPE_OBJECT, "GstSignalObject", &signal_object_info, 0);
}
sizeof(GstPad),
32,
(GInstanceInitFunc)gst_pad_init,
+ NULL
};
pad_type = g_type_register_static(GST_TYPE_OBJECT, "GstPad", &pad_info, 0);
}
sizeof(GstRealPad),
32,
(GInstanceInitFunc)gst_real_pad_init,
+ NULL
};
pad_type = g_type_register_static(GST_TYPE_PAD, "GstRealPad", &pad_info, 0);
}
GST_DEBUG_FUNCPTR_NAME (peer->chainhandler), GST_DEBUG_PAD_NAME (((GstPad*)peer)));
(peer->chainhandler) (((GstPad*)peer), buf);
} else
- GST_DEBUG (GST_CAT_DATAFLOW, "no chainhandler\n");
+ {
+ GST_DEBUG (GST_CAT_DATAFLOW, "no chainhandler\n");
+ }
}
#endif
sizeof(GstPadTemplate),
32,
(GInstanceInitFunc)gst_padtemplate_init,
+ NULL
};
padtemplate_type = g_type_register_static(GST_TYPE_OBJECT, "GstPadTemplate", &padtemplate_info, 0);
}
sizeof(GstGhostPad),
8,
(GInstanceInitFunc)gst_ghost_pad_init,
+ NULL
};
pad_type = g_type_register_static(GST_TYPE_PAD, "GstGhostPad", &pad_info, 0);
}
xmlNodePtr gst_padtemplate_save_thyself (GstPadTemplate *templ, xmlNodePtr parent);
GstPadTemplate* gst_padtemplate_load_thyself (xmlNodePtr parent);
+xmlNodePtr gst_pad_ghost_save_thyself (GstPad *pad,
+ GstElement *bin,
+ xmlNodePtr parent);
#ifdef __cplusplus
}
static gchar *
gst_parse_unique_name(gchar *type,gst_parse_priv *priv)
{
+ gpointer tmp;
gint count;
- count = GPOINTER_TO_INT(g_hash_table_lookup(priv->elementcounts,type));
+ tmp = g_hash_table_lookup (priv->elementcounts,type);
+ count = GPOINTER_TO_INT (tmp);
count++;
g_hash_table_insert(priv->elementcounts,type,GINT_TO_POINTER(count));
if (retval) return retval;
- if (closingchar != '\0')
- DEBUG("returning IN THE WRONG PLACE\n");
- else DEBUG("ending pipeline\n");
+ DEBUG (closingchar != '\0'?
+ "returning IN THE WRONG PLACE\n" :
+ "ending pipeline\n");
+
return i+1;
}
sizeof(GstPipeline),
0,
(GInstanceInitFunc)gst_pipeline_init,
+ NULL
};
pipeline_type = g_type_register_static (GST_TYPE_BIN, "GstPipeline", &pipeline_info, 0);
}
return NULL;
}
-GstPluginFeature*
+static GstPluginFeature*
gst_plugin_find_feature (const gchar *name, GType type)
{
GList *plugins;
sizeof (GstObject),
32,
(GInstanceInitFunc) gst_plugin_feature_init,
+ NULL
};
plugin_feature_type = g_type_register_static (GST_TYPE_OBJECT, "GstPluginFeature",
&plugin_feature_info, G_TYPE_FLAG_ABSTRACT);
sizeof(GstQueue),
4,
(GInstanceInitFunc)gst_queue_init,
+ NULL
};
queue_type = g_type_register_static (GST_TYPE_ELEMENT, "GstQueue", &queue_info, 0);
}
sizeof(GstSchedule),
0,
(GInstanceInitFunc)gst_schedule_init,
+ NULL
};
schedule_type = g_type_register_static(GST_TYPE_OBJECT, "GstSchedule", &schedule_info, 0);
}
}
*/
-GstScheduleChain *
+static GstScheduleChain *
gst_schedule_chain_new (GstSchedule *sched)
{
GstScheduleChain *chain = g_new (GstScheduleChain, 1);
return chain;
}
-void
+static void
gst_schedule_chain_destroy (GstScheduleChain *chain)
{
GstSchedule *sched = chain->sched;
GST_INFO (GST_CAT_SCHEDULING, "destroyed chain %p, now are %d chains in sched %p",chain,sched->num_chains,sched);
}
-void
+static void
gst_schedule_chain_add_element (GstScheduleChain *chain, GstElement *element)
{
GST_INFO (GST_CAT_SCHEDULING, "adding element \"%s\" to chain %p", GST_ELEMENT_NAME (element),chain);
chain->num_elements++;
}
-void
+static void
gst_schedule_chain_enable_element (GstScheduleChain *chain, GstElement *element)
{
GST_INFO (GST_CAT_SCHEDULING, "enabling element \"%s\" in chain %p", GST_ELEMENT_NAME (element),chain);
gst_schedule_cothreaded_chain(GST_BIN(chain->sched->parent),chain);
}
-void
+static void
gst_schedule_chain_disable_element (GstScheduleChain *chain, GstElement *element)
{
GST_INFO (GST_CAT_SCHEDULING, "disabling element \"%s\" in chain %p", GST_ELEMENT_NAME (element),chain);
// gst_schedule_cothreaded_chain(GST_BIN(chain->sched->parent),chain);
}
-void
+static void
gst_schedule_chain_remove_element (GstScheduleChain *chain, GstElement *element)
{
GST_INFO (GST_CAT_SCHEDULING, "removing element \"%s\" from chain %p", GST_ELEMENT_NAME (element),chain);
element->sched = NULL;
}
-void
+static void
gst_schedule_chain_elements (GstSchedule *sched, GstElement *element1, GstElement *element2)
{
GList *chains;
}
// find the chain within the schedule that holds the element, if any
-GstScheduleChain *
+static GstScheduleChain *
gst_schedule_find_chain (GstSchedule *sched, GstElement *element)
{
GList *chains;
return NULL;
}
-void
+static void
gst_schedule_chain_recursive_add (GstScheduleChain *chain, GstElement *element)
{
GList *pads;
sizeof(GstThread),
4,
(GInstanceInitFunc)gst_thread_init,
+ NULL
};
thread_type = g_type_register_static(GST_TYPE_BIN, "GstThread", &thread_info, 0);
}
sizeof(GstTypeFactory),
0,
(GInstanceInitFunc) gst_typefactory_init,
+ NULL
};
typefactory_type = g_type_register_static (GST_TYPE_PLUGIN_FEATURE,
"GstTypeFactory", &typefactory_info, 0);
sizeof(GstTypeFind),
0,
(GInstanceInitFunc)gst_typefind_init,
+ NULL
};
typefind_type = g_type_register_static (GST_TYPE_ELEMENT, "GstTypeFind", &typefind_info, 0);
}
#include "gstextratypes.h"
+#define ZERO(mem) memset(&mem, 0, sizeof(mem))
+
/**
* gst_util_get_int_arg:
* @object: the object to query
gint
gst_util_get_int_arg (GObject *object, const gchar *argname)
{
- GValue value = {0, };
+ GValue value;
+ ZERO (value);
g_value_init (&value, G_TYPE_INT);
g_object_get_property(G_OBJECT(object),argname,&value);
gint
gst_util_get_bool_arg (GObject *object, const gchar *argname)
{
- GValue value = {0, };
+ GValue value;
+ ZERO (value);
g_value_init (&value, G_TYPE_BOOLEAN);
g_object_get_property(G_OBJECT(object),argname,&value);
glong
gst_util_get_long_arg (GObject *object, const gchar *argname)
{
- GValue value = {0, };
+ GValue value;
+ ZERO (value);
g_value_init (&value, G_TYPE_LONG);
g_object_get_property(G_OBJECT(object),argname,&value);
gfloat
gst_util_get_float_arg (GObject *object, const gchar *argname)
{
- GValue value = {0, };
+ GValue value;
+ ZERO (value);
g_value_init (&value, G_TYPE_FLOAT);
g_object_get_property(G_OBJECT(object),argname,&value);
gdouble
gst_util_get_double_arg (GObject *object, const gchar *argname)
{
- GValue value = {0, };
+ GValue value;
+ ZERO (value);
g_value_init (&value, G_TYPE_DOUBLE);
g_object_get_property(G_OBJECT(object),argname,&value);
const gchar*
gst_util_get_string_arg (GObject *object, const gchar *argname)
{
- GValue value = {0, };
+ GValue value;
+ ZERO (value);
g_value_init (&value, G_TYPE_STRING);
g_object_get_property(G_OBJECT(object),argname,&value);
- return g_value_get_string(&value);
+ return g_value_get_string(&value); // memleak?
}
/**
gpointer
gst_util_get_pointer_arg (GObject *object, const gchar *argname)
{
- GValue value = {0, };
+ GValue value;
+ ZERO (value);
g_value_init (&value, G_TYPE_POINTER);
g_object_get_property(G_OBJECT(object),argname,&value);
sizeof(GstXML),
0,
(GInstanceInitFunc)gst_xml_init,
+ NULL
};
xml_type = g_type_register_static (GST_TYPE_OBJECT, "GstXml", &xml_info, 0);
}
sizeof(GstQueue),
4,
(GInstanceInitFunc)gst_queue_init,
+ NULL
};
queue_type = g_type_register_static (GST_TYPE_ELEMENT, "GstQueue", &queue_info, 0);
}