summaryrefslogtreecommitdiffstats
path: root/gst/videofilter/gstgamma.c
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/videofilter/gstgamma.c
parent1e83b097f7b732ae49e294a5a398bdc3e88854a8 (diff)
gst-indent
Original commit message from CVS: gst-indent
Diffstat (limited to 'gst/videofilter/gstgamma.c')
-rw-r--r--gst/videofilter/gstgamma.c242
1 files changed, 124 insertions, 118 deletions
diff --git a/gst/videofilter/gstgamma.c b/gst/videofilter/gstgamma.c
index 8f4ff28f..7cc2b0fd 100644
--- a/gst/videofilter/gstgamma.c
+++ b/gst/videofilter/gstgamma.c
@@ -49,7 +49,8 @@
typedef struct _GstGamma GstGamma;
typedef struct _GstGammaClass GstGammaClass;
-struct _GstGamma {
+struct _GstGamma
+{
GstVideofilter videofilter;
double gamma;
@@ -60,18 +61,21 @@ struct _GstGamma {
guint8 gamma_table_b[256];
};
-struct _GstGammaClass {
+struct _GstGammaClass
+{
GstVideofilterClass parent_class;
};
/* GstGamma signals and args */
-enum {
+enum
+{
/* FILL ME */
LAST_SIGNAL
};
-enum {
+enum
+{
ARG_0,
ARG_GAMMA,
ARG_GAMMA_R,
@@ -80,18 +84,23 @@ enum {
/* FILL ME */
};
-static void gst_gamma_base_init (gpointer g_class);
-static void gst_gamma_class_init (gpointer g_class, gpointer class_data);
-static void gst_gamma_init (GTypeInstance *instance, gpointer g_class);
+static void gst_gamma_base_init (gpointer g_class);
+static void gst_gamma_class_init (gpointer g_class, gpointer class_data);
+static void gst_gamma_init (GTypeInstance * instance, gpointer g_class);
-static void gst_gamma_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec);
-static void gst_gamma_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec);
+static void gst_gamma_set_property (GObject * object, guint prop_id,
+ const GValue * value, GParamSpec * pspec);
+static void gst_gamma_get_property (GObject * object, guint prop_id,
+ GValue * value, GParamSpec * pspec);
-static void gst_gamma_planar411(GstVideofilter *videofilter, void *dest, void *src);
-static void gst_gamma_rgb24(GstVideofilter *videofilter, void *dest, void *src);
-static void gst_gamma_rgb32(GstVideofilter *videofilter, void *dest, void *src);
-static void gst_gamma_setup(GstVideofilter *videofilter);
-static void gst_gamma_calculate_tables (GstGamma *gamma);
+static void gst_gamma_planar411 (GstVideofilter * videofilter, void *dest,
+ void *src);
+static void gst_gamma_rgb24 (GstVideofilter * videofilter, void *dest,
+ void *src);
+static void gst_gamma_rgb32 (GstVideofilter * videofilter, void *dest,
+ void *src);
+static void gst_gamma_setup (GstVideofilter * videofilter);
+static void gst_gamma_calculate_tables (GstGamma * gamma);
GType
gst_gamma_get_type (void)
@@ -100,47 +109,46 @@ gst_gamma_get_type (void)
if (!gamma_type) {
static const GTypeInfo gamma_info = {
- sizeof(GstGammaClass),
+ sizeof (GstGammaClass),
gst_gamma_base_init,
NULL,
gst_gamma_class_init,
NULL,
NULL,
- sizeof(GstGamma),
+ sizeof (GstGamma),
0,
gst_gamma_init,
};
- gamma_type = g_type_register_static(GST_TYPE_VIDEOFILTER,
- "GstGamma", &gamma_info, 0);
+ gamma_type = g_type_register_static (GST_TYPE_VIDEOFILTER,
+ "GstGamma", &gamma_info, 0);
}
return gamma_type;
}
static GstVideofilterFormat gst_gamma_formats[] = {
- { "I420", 12, gst_gamma_planar411, },
- { "RGB ", 24, gst_gamma_rgb24, 24, G_BIG_ENDIAN, 0xff0000, 0xff00, 0xff },
- { "RGB ", 32, gst_gamma_rgb32, 24, G_BIG_ENDIAN, 0x00ff00, 0xff0000, 0xff000000 },
+ {"I420", 12, gst_gamma_planar411,},
+ {"RGB ", 24, gst_gamma_rgb24, 24, G_BIG_ENDIAN, 0xff0000, 0xff00, 0xff},
+ {"RGB ", 32, gst_gamma_rgb32, 24, G_BIG_ENDIAN, 0x00ff00, 0xff0000,
+ 0xff000000},
};
-
+
static void
gst_gamma_base_init (gpointer g_class)
{
- static GstElementDetails gamma_details = GST_ELEMENT_DETAILS (
- "Video Gamma Correction",
- "Filter/Effect/Video",
- "Adjusts gamma on a video stream",
- "Arwed v. Merkatz <v.merkatz@gmx.net"
- );
+ static GstElementDetails gamma_details =
+ GST_ELEMENT_DETAILS ("Video Gamma Correction",
+ "Filter/Effect/Video",
+ "Adjusts gamma on a video stream",
+ "Arwed v. Merkatz <v.merkatz@gmx.net");
GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
GstVideofilterClass *videofilter_class = GST_VIDEOFILTER_CLASS (g_class);
int i;
-
+
gst_element_class_set_details (element_class, &gamma_details);
- for(i=0;i<G_N_ELEMENTS(gst_gamma_formats);i++){
- gst_videofilter_class_add_format(videofilter_class,
- gst_gamma_formats + i);
+ for (i = 0; i < G_N_ELEMENTS (gst_gamma_formats); i++) {
+ gst_videofilter_class_add_format (videofilter_class, gst_gamma_formats + i);
}
gst_videofilter_class_add_pad_templates (GST_VIDEOFILTER_CLASS (g_class));
@@ -155,18 +163,18 @@ gst_gamma_class_init (gpointer g_class, gpointer class_data)
gobject_class = G_OBJECT_CLASS (g_class);
videofilter_class = GST_VIDEOFILTER_CLASS (g_class);
- g_object_class_install_property(gobject_class, ARG_GAMMA,
- g_param_spec_double("gamma", "Gamma", "gamma",
- 0.01, 10, 1, G_PARAM_READWRITE));
- g_object_class_install_property(gobject_class, ARG_GAMMA_R,
- g_param_spec_double("redgamma", "Gamma_r", "gamma value for the red channel",
- 0.01, 10, 1, G_PARAM_READWRITE));
- g_object_class_install_property(gobject_class, ARG_GAMMA_G,
- g_param_spec_double("greengamma", "Gamma_g", "gamma value for the green channel",
- 0.01, 10, 1, G_PARAM_READWRITE));
- g_object_class_install_property(gobject_class, ARG_GAMMA_B,
- g_param_spec_double("bluegamma", "Gamma_b", "gamma value for the blue channel",
- 0.01, 10, 1, G_PARAM_READWRITE));
+ g_object_class_install_property (gobject_class, ARG_GAMMA,
+ g_param_spec_double ("gamma", "Gamma", "gamma",
+ 0.01, 10, 1, G_PARAM_READWRITE));
+ g_object_class_install_property (gobject_class, ARG_GAMMA_R,
+ g_param_spec_double ("redgamma", "Gamma_r",
+ "gamma value for the red channel", 0.01, 10, 1, G_PARAM_READWRITE));
+ g_object_class_install_property (gobject_class, ARG_GAMMA_G,
+ g_param_spec_double ("greengamma", "Gamma_g",
+ "gamma value for the green channel", 0.01, 10, 1, G_PARAM_READWRITE));
+ g_object_class_install_property (gobject_class, ARG_GAMMA_B,
+ g_param_spec_double ("bluegamma", "Gamma_b",
+ "gamma value for the blue channel", 0.01, 10, 1, G_PARAM_READWRITE));
gobject_class->set_property = gst_gamma_set_property;
gobject_class->get_property = gst_gamma_get_property;
@@ -175,14 +183,14 @@ gst_gamma_class_init (gpointer g_class, gpointer class_data)
}
static void
-gst_gamma_init (GTypeInstance *instance, gpointer g_class)
+gst_gamma_init (GTypeInstance * instance, gpointer g_class)
{
GstGamma *gamma = GST_GAMMA (instance);
GstVideofilter *videofilter;
- GST_DEBUG("gst_gamma_init");
+ GST_DEBUG ("gst_gamma_init");
- videofilter = GST_VIDEOFILTER(gamma);
+ videofilter = GST_VIDEOFILTER (gamma);
/* do stuff */
gamma->gamma = 1;
@@ -193,15 +201,16 @@ gst_gamma_init (GTypeInstance *instance, gpointer g_class)
}
static void
-gst_gamma_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec)
+gst_gamma_set_property (GObject * object, guint prop_id, const GValue * value,
+ GParamSpec * pspec)
{
GstGamma *gamma;
/* it's not null if we got it, but it might not be ours */
- g_return_if_fail(GST_IS_GAMMA(object));
- gamma = GST_GAMMA(object);
+ g_return_if_fail (GST_IS_GAMMA (object));
+ gamma = GST_GAMMA (object);
- GST_DEBUG("gst_gamma_set_property");
+ GST_DEBUG ("gst_gamma_set_property");
switch (prop_id) {
case ARG_GAMMA:
gamma->gamma = g_value_get_double (value);
@@ -225,13 +234,14 @@ gst_gamma_set_property (GObject *object, guint prop_id, const GValue *value, GPa
}
static void
-gst_gamma_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec)
+gst_gamma_get_property (GObject * object, guint prop_id, GValue * value,
+ GParamSpec * pspec)
{
GstGamma *gamma;
/* it's not null if we got it, but it might not be ours */
- g_return_if_fail(GST_IS_GAMMA(object));
- gamma = GST_GAMMA(object);
+ g_return_if_fail (GST_IS_GAMMA (object));
+ gamma = GST_GAMMA (object);
switch (prop_id) {
case ARG_GAMMA:
@@ -252,50 +262,42 @@ gst_gamma_get_property (GObject *object, guint prop_id, GValue *value, GParamSpe
}
}
-static gboolean plugin_init (GstPlugin *plugin)
+static gboolean
+plugin_init (GstPlugin * plugin)
{
- if(!gst_library_load("gstvideofilter"))
+ if (!gst_library_load ("gstvideofilter"))
return FALSE;
- return gst_element_register (plugin, "gamma", GST_RANK_NONE,
- GST_TYPE_GAMMA);
+ return gst_element_register (plugin, "gamma", GST_RANK_NONE, GST_TYPE_GAMMA);
}
-GST_PLUGIN_DEFINE (
- GST_VERSION_MAJOR,
- GST_VERSION_MINOR,
- "gamma",
- "Changes gamma on video images",
- plugin_init,
- VERSION,
- GST_LICENSE,
- GST_PACKAGE,
- GST_ORIGIN
-)
+GST_PLUGIN_DEFINE (GST_VERSION_MAJOR,
+ GST_VERSION_MINOR,
+ "gamma",
+ "Changes gamma on video images",
+ plugin_init, VERSION, GST_LICENSE, GST_PACKAGE, GST_ORIGIN)
-static void gst_gamma_setup(GstVideofilter *videofilter)
+ static void gst_gamma_setup (GstVideofilter * videofilter)
{
GstGamma *gamma;
- g_return_if_fail(GST_IS_GAMMA(videofilter));
- gamma = GST_GAMMA(videofilter);
+ g_return_if_fail (GST_IS_GAMMA (videofilter));
+ gamma = GST_GAMMA (videofilter);
/* if any setup needs to be done, do it here */
}
static void
-gst_gamma_calculate_tables (GstGamma *gamma)
+gst_gamma_calculate_tables (GstGamma * gamma)
{
int n;
double val;
double exp;
- if (gamma->gamma == 1.0 &&
- gamma->gamma_r == 1.0 &&
- gamma->gamma_g == 1.0 &&
- gamma->gamma_b == 1.0) {
+ if (gamma->gamma == 1.0 &&
+ gamma->gamma_r == 1.0 && gamma->gamma_g == 1.0 && gamma->gamma_b == 1.0) {
GST_VIDEOFILTER (gamma)->passthru = TRUE;
return;
}
@@ -303,77 +305,80 @@ gst_gamma_calculate_tables (GstGamma *gamma)
exp = 1.0 / gamma->gamma;
for (n = 0; n < 256; n++) {
- val = n/255.0;
- val = pow(val, exp);
+ val = n / 255.0;
+ val = pow (val, exp);
val = 255.0 * val;
- gamma->gamma_table[n] = (unsigned char) floor(val + 0.5);
+ gamma->gamma_table[n] = (unsigned char) floor (val + 0.5);
}
exp = 1.0 / gamma->gamma_r;
for (n = 0; n < 256; n++) {
- val = n/255.0;
- val = pow(val, exp);
+ val = n / 255.0;
+ val = pow (val, exp);
val = 255.0 * val;
- gamma->gamma_table_r[n] = (unsigned char) floor(val + 0.5);
+ gamma->gamma_table_r[n] = (unsigned char) floor (val + 0.5);
}
exp = 1.0 / gamma->gamma_g;
for (n = 0; n < 256; n++) {
- val = n/255.0;
- val = pow(val, exp);
+ val = n / 255.0;
+ val = pow (val, exp);
val = 255.0 * val;
- gamma->gamma_table_g[n] = (unsigned char) floor(val + 0.5);
+ gamma->gamma_table_g[n] = (unsigned char) floor (val + 0.5);
}
exp = 1.0 / gamma->gamma_b;
for (n = 0; n < 256; n++) {
- val = n/255.0;
- val = pow(val, exp);
+ val = n / 255.0;
+ val = pow (val, exp);
val = 255.0 * val;
- gamma->gamma_table_b[n] = (unsigned char) floor(val + 0.5);
+ gamma->gamma_table_b[n] = (unsigned char) floor (val + 0.5);
}
}
-static void gst_gamma_planar411(GstVideofilter *videofilter,
- void *dest, void *src)
+static void
+gst_gamma_planar411 (GstVideofilter * videofilter, void *dest, void *src)
{
GstGamma *gamma;
- int width = gst_videofilter_get_input_width(videofilter);
- int height = gst_videofilter_get_input_height(videofilter);
+ int width = gst_videofilter_get_input_width (videofilter);
+ int height = gst_videofilter_get_input_height (videofilter);
- g_return_if_fail(GST_IS_GAMMA(videofilter));
- gamma = GST_GAMMA(videofilter);
+ g_return_if_fail (GST_IS_GAMMA (videofilter));
+ gamma = GST_GAMMA (videofilter);
- memcpy(dest,src,width * height + (width/2) * (height/2) * 2);
+ memcpy (dest, src, width * height + (width / 2) * (height / 2) * 2);
if (gamma->gamma != 1.0) {
{
guint8 *cdest = dest;
guint8 *csrc = src;
- int x,y;
- for (y=0; y < height; y++) {
- for (x=0; x < width; x++) {
- cdest[y*width + x] = gamma->gamma_table[(unsigned char)csrc[y*width + x]];
- }
+ int x, y;
+
+ for (y = 0; y < height; y++) {
+ for (x = 0; x < width; x++) {
+ cdest[y * width + x] =
+ gamma->gamma_table[(unsigned char) csrc[y * width + x]];
+ }
}
}
}
}
-static void gst_gamma_rgb24(GstVideofilter *videofilter, void *dest, void *src)
+static void
+gst_gamma_rgb24 (GstVideofilter * videofilter, void *dest, void *src)
{
GstGamma *gamma;
int i;
int width, height;
guint8 *csrc = src;
guint8 *cdest = dest;
-
- g_return_if_fail(GST_IS_GAMMA(videofilter));
- gamma = GST_GAMMA(videofilter);
- width = gst_videofilter_get_input_width(videofilter);
- height = gst_videofilter_get_input_height(videofilter);
+ g_return_if_fail (GST_IS_GAMMA (videofilter));
+ gamma = GST_GAMMA (videofilter);
+
+ width = gst_videofilter_get_input_width (videofilter);
+ height = gst_videofilter_get_input_height (videofilter);
if (gamma->gamma == 1.0) {
i = 0;
- while ( i < width * height * 3) {
+ while (i < width * height * 3) {
*cdest++ = gamma->gamma_table_r[*csrc++];
*cdest++ = gamma->gamma_table_g[*csrc++];
*cdest++ = gamma->gamma_table_b[*csrc++];
@@ -388,22 +393,23 @@ static void gst_gamma_rgb24(GstVideofilter *videofilter, void *dest, void *src)
}
}
-static void gst_gamma_rgb32(GstVideofilter *videofilter, void *dest, void *src)
+static void
+gst_gamma_rgb32 (GstVideofilter * videofilter, void *dest, void *src)
{
GstGamma *gamma;
int i;
int width, height;
guint8 *csrc = src;
guint8 *cdest = dest;
-
- g_return_if_fail(GST_IS_GAMMA(videofilter));
- gamma = GST_GAMMA(videofilter);
- width = gst_videofilter_get_input_width(videofilter);
- height = gst_videofilter_get_input_height(videofilter);
+ g_return_if_fail (GST_IS_GAMMA (videofilter));
+ gamma = GST_GAMMA (videofilter);
+
+ width = gst_videofilter_get_input_width (videofilter);
+ height = gst_videofilter_get_input_height (videofilter);
if (gamma->gamma == 1.0) {
i = 0;
- while ( i < width * height * 4) {
+ while (i < width * height * 4) {
*cdest++ = gamma->gamma_table_b[*csrc++];
*cdest++ = gamma->gamma_table_g[*csrc++];
*cdest++ = gamma->gamma_table_r[*csrc++];
@@ -415,10 +421,10 @@ static void gst_gamma_rgb32(GstVideofilter *videofilter, void *dest, void *src)
i = 0;
while (i < width * height * 4) {
if ((i % 4) != 3)
- *cdest++ = gamma->gamma_table[*csrc++];
+ *cdest++ = gamma->gamma_table[*csrc++];
else {
- cdest++;
- csrc++;
+ cdest++;
+ csrc++;
}
i++;
}