summaryrefslogtreecommitdiffstats
path: root/gst/median
diff options
context:
space:
mode:
authorThomas Vander Stichele <thomas@apestaart.org>2004-03-14 22:34:33 +0000
committerThomas Vander Stichele <thomas@apestaart.org>2004-03-14 22:34:33 +0000
commit5d25c00e4b613b9cdf2c04fa3a68dffa03834a68 (patch)
tree74a5b1eaf3a324b520e64e87404fd0b3018a7829 /gst/median
parent1e83b097f7b732ae49e294a5a398bdc3e88854a8 (diff)
gst-indent
Original commit message from CVS: gst-indent
Diffstat (limited to 'gst/median')
-rw-r--r--gst/median/gstmedian.c280
-rw-r--r--gst/median/gstmedian.h41
2 files changed, 172 insertions, 149 deletions
diff --git a/gst/median/gstmedian.c b/gst/median/gstmedian.c
index c30b8ce3..9ce8430a 100644
--- a/gst/median/gstmedian.c
+++ b/gst/median/gstmedian.c
@@ -32,49 +32,53 @@ static GstElementDetails median_details = {
"Wim Taymans <wim.taymans@chello.be>"
};
-static GstStaticPadTemplate median_src_factory =
-GST_STATIC_PAD_TEMPLATE (
- "src",
- GST_PAD_SRC,
- GST_PAD_ALWAYS,
- GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("I420"))
-);
+static GstStaticPadTemplate median_src_factory = GST_STATIC_PAD_TEMPLATE ("src",
+ GST_PAD_SRC,
+ GST_PAD_ALWAYS,
+ GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("I420"))
+ );
static GstStaticPadTemplate median_sink_factory =
-GST_STATIC_PAD_TEMPLATE (
- "sink",
- GST_PAD_SINK,
- GST_PAD_ALWAYS,
- GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("I420"))
-);
+GST_STATIC_PAD_TEMPLATE ("sink",
+ GST_PAD_SINK,
+ GST_PAD_ALWAYS,
+ GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("I420"))
+ );
/* Median signals and args */
-enum {
+enum
+{
/* FILL ME */
LAST_SIGNAL
};
-enum {
+enum
+{
ARG_0,
ARG_ACTIVE,
ARG_FILTERSIZE,
ARG_LUM_ONLY
};
-static GType gst_median_get_type (void);
-static void gst_median_class_init (GstMedianClass *klass);
-static void gst_median_base_init (GstMedianClass *klass);
-static void gst_median_init (GstMedian *median);
+static GType gst_median_get_type (void);
+static void gst_median_class_init (GstMedianClass * klass);
+static void gst_median_base_init (GstMedianClass * klass);
+static void gst_median_init (GstMedian * median);
-static void median_5 (unsigned char *src, unsigned char *dest, int height, int width);
-static void median_9 (unsigned char *src, unsigned char *dest, int height, int width);
-static void gst_median_chain (GstPad *pad, GstData *_data);
+static void median_5 (unsigned char *src, unsigned char *dest, int height,
+ int width);
+static void median_9 (unsigned char *src, unsigned char *dest, int height,
+ int width);
+static void gst_median_chain (GstPad * pad, GstData * _data);
-static void gst_median_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec);
-static void gst_median_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec);
+static void gst_median_set_property (GObject * object, guint prop_id,
+ const GValue * value, GParamSpec * pspec);
+static void gst_median_get_property (GObject * object, guint prop_id,
+ GValue * value, GParamSpec * pspec);
static GstElementClass *parent_class = NULL;
+
/*static guint gst_median_signals[LAST_SIGNAL] = { 0 }; */
GType
@@ -84,60 +88,55 @@ gst_median_get_type (void)
if (!median_type) {
static const GTypeInfo median_info = {
- sizeof(GstMedianClass),
- (GBaseInitFunc)gst_median_base_init,
+ sizeof (GstMedianClass),
+ (GBaseInitFunc) gst_median_base_init,
NULL,
- (GClassInitFunc)gst_median_class_init,
+ (GClassInitFunc) gst_median_class_init,
NULL,
NULL,
- sizeof(GstMedian),
+ sizeof (GstMedian),
0,
- (GInstanceInitFunc)gst_median_init,
+ (GInstanceInitFunc) gst_median_init,
};
- median_type = g_type_register_static(GST_TYPE_ELEMENT, "GstMedian", &median_info, 0);
+ median_type =
+ g_type_register_static (GST_TYPE_ELEMENT, "GstMedian", &median_info, 0);
}
return median_type;
}
static void
-gst_median_base_init (GstMedianClass *klass)
+gst_median_base_init (GstMedianClass * klass)
{
GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
gst_element_class_add_pad_template (element_class,
- gst_static_pad_template_get (&median_sink_factory));
+ gst_static_pad_template_get (&median_sink_factory));
gst_element_class_add_pad_template (element_class,
- gst_static_pad_template_get (&median_src_factory));
+ gst_static_pad_template_get (&median_src_factory));
gst_element_class_set_details (element_class, &median_details);
}
static void
-gst_median_class_init (GstMedianClass *klass)
+gst_median_class_init (GstMedianClass * klass)
{
GObjectClass *gobject_class;
GstElementClass *gstelement_class;
- gobject_class = (GObjectClass*)klass;
- gstelement_class = (GstElementClass*)klass;
+ gobject_class = (GObjectClass *) klass;
+ gstelement_class = (GstElementClass *) klass;
- parent_class = g_type_class_ref(GST_TYPE_ELEMENT);
+ parent_class = g_type_class_ref (GST_TYPE_ELEMENT);
- g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_ACTIVE,
- g_param_spec_boolean("active","active","active",
- TRUE,G_PARAM_READWRITE)); /* CHECKME */
- g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_FILTERSIZE,
- g_param_spec_int("filtersize","filtersize","filtersize",
- G_MININT,G_MAXINT,0,G_PARAM_READWRITE)); /* CHECKME */
- g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_LUM_ONLY,
- g_param_spec_boolean("lum_only","lum_only","lum_only",
- TRUE,G_PARAM_READWRITE)); /* CHECKME */
+ g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_ACTIVE, g_param_spec_boolean ("active", "active", "active", TRUE, G_PARAM_READWRITE)); /* CHECKME */
+ g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_FILTERSIZE, g_param_spec_int ("filtersize", "filtersize", "filtersize", G_MININT, G_MAXINT, 0, G_PARAM_READWRITE)); /* CHECKME */
+ g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_LUM_ONLY, g_param_spec_boolean ("lum_only", "lum_only", "lum_only", TRUE, G_PARAM_READWRITE)); /* CHECKME */
gobject_class->set_property = gst_median_set_property;
gobject_class->get_property = gst_median_get_property;
}
static gboolean
-gst_median_link (GstPad *pad, const GstCaps *caps)
+gst_median_link (GstPad * pad, const GstCaps * caps)
{
GstMedian *filter = GST_MEDIAN (gst_pad_get_parent (pad));
GstPad *otherpad = (pad == filter->srcpad) ? filter->sinkpad : filter->srcpad;
@@ -157,17 +156,20 @@ gst_median_link (GstPad *pad, const GstCaps *caps)
return ret;
}
-void gst_median_init (GstMedian *median)
+void
+gst_median_init (GstMedian * median)
{
- median->sinkpad = gst_pad_new_from_template (
- gst_static_pad_template_get (&median_sink_factory), "sink");
+ median->sinkpad =
+ gst_pad_new_from_template (gst_static_pad_template_get
+ (&median_sink_factory), "sink");
gst_pad_set_getcaps_function (median->sinkpad, gst_pad_proxy_getcaps);
gst_pad_set_link_function (median->sinkpad, gst_median_link);
gst_pad_set_chain_function (median->sinkpad, gst_median_chain);
gst_element_add_pad (GST_ELEMENT (median), median->sinkpad);
- median->srcpad = gst_pad_new_from_template (
- gst_static_pad_template_get (&median_src_factory), "src");
+ median->srcpad =
+ gst_pad_new_from_template (gst_static_pad_template_get
+ (&median_src_factory), "src");
gst_pad_set_getcaps_function (median->srcpad, gst_pad_proxy_getcaps);
gst_pad_set_link_function (median->sinkpad, gst_median_link);
gst_element_add_pad (GST_ELEMENT (median), median->srcpad);
@@ -192,7 +194,7 @@ median_5 (unsigned char *src, unsigned char *dest, int width, int height)
nLastRow = height - 1;
/*copy the top and bottom rows into the result array */
- for (i=0; i<width; i++) {
+ for (i = 0; i < width; i++) {
dest[i] = src[i];
dest[nLastRow * width + i] = src[nLastRow * width + i];
}
@@ -203,16 +205,20 @@ median_5 (unsigned char *src, unsigned char *dest, int width, int height)
/* process the interior pixels */
i = width + 1;
- for (k=0; k < nLastRow; k++) {
- for (j=0; j < nLastCol; j++, i++) {
- p[0] = src[i-width];
- p[1] = src[i-1];
+ for (k = 0; k < nLastRow; k++) {
+ for (j = 0; j < nLastCol; j++, i++) {
+ p[0] = src[i - width];
+ p[1] = src[i - 1];
p[2] = src[i];
- p[3] = src[i+1];
- p[4] = src[i+width];
- PIX_SORT(p[0],p[1]) ; PIX_SORT(p[3],p[4]) ; PIX_SORT(p[0],p[3]) ;
- PIX_SORT(p[1],p[4]) ; PIX_SORT(p[1],p[2]) ; PIX_SORT(p[2],p[3]) ;
- PIX_SORT(p[1],p[2]) ;
+ p[3] = src[i + 1];
+ p[4] = src[i + width];
+ PIX_SORT (p[0], p[1]);
+ PIX_SORT (p[3], p[4]);
+ PIX_SORT (p[0], p[3]);
+ PIX_SORT (p[1], p[4]);
+ PIX_SORT (p[1], p[2]);
+ PIX_SORT (p[2], p[3]);
+ PIX_SORT (p[1], p[2]);
dest[i] = p[2];
}
dest[i] = src[i];
@@ -236,7 +242,7 @@ median_9 (unsigned char *src, unsigned char *dest, int width, int height)
nLastRow = height - 1;
/*copy the top and bottom rows into the result array */
- for (i=0; i<width; i++) {
+ for (i = 0; i < width; i++) {
dest[i] = src[i];
dest[nLastRow * width + i] = src[nLastRow * width + i];
}
@@ -247,24 +253,36 @@ median_9 (unsigned char *src, unsigned char *dest, int width, int height)
/* process the interior pixels */
i = width + 1;
- for (k=0; k < nLastRow; k++) {
- for (j=0; j < nLastCol; j++, i++) {
- p[0] = src[i-width-1];
- p[1] = src[i-width];
- p[2] = src[i-width+1];
- p[3] = src[i-1];
+ for (k = 0; k < nLastRow; k++) {
+ for (j = 0; j < nLastCol; j++, i++) {
+ p[0] = src[i - width - 1];
+ p[1] = src[i - width];
+ p[2] = src[i - width + 1];
+ p[3] = src[i - 1];
p[4] = src[i];
- p[5] = src[i+1];
- p[6] = src[i+width-1];
- p[7] = src[i+width];
- p[8] = src[i+width+1];
- PIX_SORT(p[1], p[2]) ; PIX_SORT(p[4], p[5]) ; PIX_SORT(p[7], p[8]) ;
- PIX_SORT(p[0], p[1]) ; PIX_SORT(p[3], p[4]) ; PIX_SORT(p[6], p[7]) ;
- PIX_SORT(p[1], p[2]) ; PIX_SORT(p[4], p[5]) ; PIX_SORT(p[7], p[8]) ;
- PIX_SORT(p[0], p[3]) ; PIX_SORT(p[5], p[8]) ; PIX_SORT(p[4], p[7]) ;
- PIX_SORT(p[3], p[6]) ; PIX_SORT(p[1], p[4]) ; PIX_SORT(p[2], p[5]) ;
- PIX_SORT(p[4], p[7]) ; PIX_SORT(p[4], p[2]) ; PIX_SORT(p[6], p[4]) ;
- PIX_SORT(p[4], p[2]) ;
+ p[5] = src[i + 1];
+ p[6] = src[i + width - 1];
+ p[7] = src[i + width];
+ p[8] = src[i + width + 1];
+ PIX_SORT (p[1], p[2]);
+ PIX_SORT (p[4], p[5]);
+ PIX_SORT (p[7], p[8]);
+ PIX_SORT (p[0], p[1]);
+ PIX_SORT (p[3], p[4]);
+ PIX_SORT (p[6], p[7]);
+ PIX_SORT (p[1], p[2]);
+ PIX_SORT (p[4], p[5]);
+ PIX_SORT (p[7], p[8]);
+ PIX_SORT (p[0], p[3]);
+ PIX_SORT (p[5], p[8]);
+ PIX_SORT (p[4], p[7]);
+ PIX_SORT (p[3], p[6]);
+ PIX_SORT (p[1], p[4]);
+ PIX_SORT (p[2], p[5]);
+ PIX_SORT (p[4], p[7]);
+ PIX_SORT (p[4], p[2]);
+ PIX_SORT (p[6], p[4]);
+ PIX_SORT (p[4], p[2]);
dest[i] = p[4];
}
dest[i] = src[i];
@@ -277,83 +295,90 @@ median_9 (unsigned char *src, unsigned char *dest, int width, int height)
}
static void
-gst_median_chain (GstPad *pad, GstData *_data)
+gst_median_chain (GstPad * pad, GstData * _data)
{
GstBuffer *buf = GST_BUFFER (_data);
GstMedian *median;
guchar *data;
gulong size;
GstBuffer *outbuf;
+
/* GstMeta *meta; */
int lumsize, chromsize;
- g_return_if_fail(pad != NULL);
- g_return_if_fail(GST_IS_PAD(pad));
- g_return_if_fail(buf != NULL);
+ g_return_if_fail (pad != NULL);
+ g_return_if_fail (GST_IS_PAD (pad));
+ g_return_if_fail (buf != NULL);
median = GST_MEDIAN (GST_OBJECT_PARENT (pad));
if (!median->active) {
- gst_pad_push(median->srcpad,GST_DATA (buf));
+ gst_pad_push (median->srcpad, GST_DATA (buf));
return;
}
- data = GST_BUFFER_DATA(buf);
- size = GST_BUFFER_SIZE(buf);
+ data = GST_BUFFER_DATA (buf);
+ size = GST_BUFFER_SIZE (buf);
- GST_DEBUG ("median: have buffer of %d", GST_BUFFER_SIZE(buf));
+ GST_DEBUG ("median: have buffer of %d", GST_BUFFER_SIZE (buf));
- outbuf = gst_buffer_new();
- GST_BUFFER_DATA(outbuf) = g_malloc(GST_BUFFER_SIZE(buf));
- GST_BUFFER_SIZE(outbuf) = GST_BUFFER_SIZE(buf);
+ outbuf = gst_buffer_new ();
+ GST_BUFFER_DATA (outbuf) = g_malloc (GST_BUFFER_SIZE (buf));
+ GST_BUFFER_SIZE (outbuf) = GST_BUFFER_SIZE (buf);
lumsize = median->width * median->height;
- chromsize = lumsize/4;
+ chromsize = lumsize / 4;
if (median->filtersize == 5) {
- median_5(data, GST_BUFFER_DATA(outbuf), median->width, median->height);
+ median_5 (data, GST_BUFFER_DATA (outbuf), median->width, median->height);
if (!median->lum_only) {
- median_5(data+lumsize, GST_BUFFER_DATA(outbuf)+lumsize, median->width/2, median->height/2);
- median_5(data+lumsize+chromsize, GST_BUFFER_DATA(outbuf)+lumsize+chromsize, median->width/2, median->height/2);
+ median_5 (data + lumsize, GST_BUFFER_DATA (outbuf) + lumsize,
+ median->width / 2, median->height / 2);
+ median_5 (data + lumsize + chromsize,
+ GST_BUFFER_DATA (outbuf) + lumsize + chromsize, median->width / 2,
+ median->height / 2);
+ } else {
+ memcpy (GST_BUFFER_DATA (outbuf) + lumsize, data + lumsize,
+ chromsize * 2);
}
- else {
- memcpy (GST_BUFFER_DATA (outbuf)+lumsize, data+lumsize, chromsize*2);
- }
- }
- else {
- median_9(data, GST_BUFFER_DATA(outbuf), median->width, median->height);
+ } else {
+ median_9 (data, GST_BUFFER_DATA (outbuf), median->width, median->height);
if (!median->lum_only) {
- median_9(data+lumsize, GST_BUFFER_DATA(outbuf)+lumsize, median->width/2, median->height/2);
- median_9(data+lumsize+chromsize, GST_BUFFER_DATA(outbuf)+lumsize+chromsize, median->width/2, median->height/2);
- }
- else {
- memcpy (GST_BUFFER_DATA (outbuf)+lumsize, data+lumsize, chromsize*2);
+ median_9 (data + lumsize, GST_BUFFER_DATA (outbuf) + lumsize,
+ median->width / 2, median->height / 2);
+ median_9 (data + lumsize + chromsize,
+ GST_BUFFER_DATA (outbuf) + lumsize + chromsize, median->width / 2,
+ median->height / 2);
+ } else {
+ memcpy (GST_BUFFER_DATA (outbuf) + lumsize, data + lumsize,
+ chromsize * 2);
}
}
GST_BUFFER_TIMESTAMP (outbuf) = GST_BUFFER_TIMESTAMP (buf);
- gst_buffer_unref(buf);
+ gst_buffer_unref (buf);
- gst_pad_push(median->srcpad,GST_DATA (outbuf));
+ gst_pad_push (median->srcpad, GST_DATA (outbuf));
}
static void
-gst_median_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec)
+gst_median_set_property (GObject * object, guint prop_id, const GValue * value,
+ GParamSpec * pspec)
{
GstMedian *median;
gint argvalue;
/* it's not null if we got it, but it might not be ours */
- g_return_if_fail(GST_IS_MEDIAN(object));
- median = GST_MEDIAN(object);
+ g_return_if_fail (GST_IS_MEDIAN (object));
+ median = GST_MEDIAN (object);
switch (prop_id) {
case ARG_FILTERSIZE:
argvalue = g_value_get_int (value);
if (argvalue != 5 && argvalue != 9) {
- g_warning ("median: invalid filtersize (%d), must be 5 or 9\n", argvalue);
- }
- else {
+ g_warning ("median: invalid filtersize (%d), must be 5 or 9\n",
+ argvalue);
+ } else {
median->filtersize = argvalue;
}
break;
@@ -369,13 +394,14 @@ gst_median_set_property (GObject *object, guint prop_id, const GValue *value, GP
}
static void
-gst_median_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec)
+gst_median_get_property (GObject * object, guint prop_id, GValue * value,
+ GParamSpec * pspec)
{
GstMedian *median;
/* it's not null if we got it, but it might not be ours */
- g_return_if_fail(GST_IS_MEDIAN(object));
- median = GST_MEDIAN(object);
+ g_return_if_fail (GST_IS_MEDIAN (object));
+ median = GST_MEDIAN (object);
switch (prop_id) {
case ARG_FILTERSIZE:
@@ -395,20 +421,14 @@ gst_median_get_property (GObject *object, guint prop_id, GValue *value, GParamSp
static gboolean
-plugin_init (GstPlugin *plugin)
+plugin_init (GstPlugin * plugin)
{
return gst_element_register (plugin, "median",
- GST_RANK_NONE, GST_TYPE_MEDIAN);
+ GST_RANK_NONE, GST_TYPE_MEDIAN);
}
-GST_PLUGIN_DEFINE (
- GST_VERSION_MAJOR,
- GST_VERSION_MINOR,
- "median",
- "Video median filter",
- plugin_init,
- VERSION,
- GST_LICENSE,
- GST_PACKAGE,
- GST_ORIGIN
-)
+GST_PLUGIN_DEFINE (GST_VERSION_MAJOR,
+ GST_VERSION_MINOR,
+ "median",
+ "Video median filter",
+ plugin_init, VERSION, GST_LICENSE, GST_PACKAGE, GST_ORIGIN)
diff --git a/gst/median/gstmedian.h b/gst/median/gstmedian.h
index c22b80d1..5e558bae 100644
--- a/gst/median/gstmedian.h
+++ b/gst/median/gstmedian.h
@@ -26,8 +26,9 @@
#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
+extern "C"
+{
+#endif /* __cplusplus */
#define GST_TYPE_MEDIAN \
@@ -41,31 +42,33 @@ extern "C" {
#define GST_IS_MEDIAN_CLASS(obj) \
(G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_MEDIAN))
-typedef struct _GstMedian GstMedian;
-typedef struct _GstMedianClass GstMedianClass;
+ typedef struct _GstMedian GstMedian;
+ typedef struct _GstMedianClass GstMedianClass;
-struct _GstMedian {
- GstElement element;
+ struct _GstMedian
+ {
+ GstElement element;
- int format;
- int width;
- int height;
+ int format;
+ int width;
+ int height;
- int filtersize;
+ int filtersize;
- gboolean active;
- gboolean lum_only;
+ gboolean active;
+ gboolean lum_only;
- GstPad *sinkpad,*srcpad;
-};
+ GstPad *sinkpad, *srcpad;
+ };
-struct _GstMedianClass {
- GstElementClass parent_class;
-};
+ struct _GstMedianClass
+ {
+ GstElementClass parent_class;
+ };
#ifdef __cplusplus
}
-#endif /* __cplusplus */
+#endif /* __cplusplus */
-#endif /* __GST_MEDIAN_H__ */
+#endif /* __GST_MEDIAN_H__ */