From 6d4f9ceeb56d9b41efbce7349220b7742e085c20 Mon Sep 17 00:00:00 2001 From: Sreerenj Balachandran Date: Tue, 2 Mar 2010 13:18:19 +0530 Subject: [PATCH] Added the property for setting the "thickness" of font modified: ext/opencv/textwrite/gsttextwrite.c modified: ext/opencv/textwrite/gsttextwrite.h --- ext/opencv/textwrite/gsttextwrite.c | 31 +++++++++++++++++++---------- ext/opencv/textwrite/gsttextwrite.h | 1 + 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/ext/opencv/textwrite/gsttextwrite.c b/ext/opencv/textwrite/gsttextwrite.c index 807aed2fb1..c5de38ad57 100644 --- a/ext/opencv/textwrite/gsttextwrite.c +++ b/ext/opencv/textwrite/gsttextwrite.c @@ -71,6 +71,7 @@ GST_DEBUG_CATEGORY_STATIC (gst_textwrite_debug); #define DEFAULT_PROP_HEIGHT 1 #define DEFAULT_PROP_XPOS 50 #define DEFAULT_PROP_YPOS 50 +#define DEFAULT_PROP_THICKNESS 2 /* Filter signals and args */ enum @@ -85,6 +86,7 @@ enum PROP_0, PROP_XPOS, PROP_YPOS, + PROP_THICKNESS, PROP_TEXT, PROP_HEIGHT, PROP_WIDTH @@ -184,6 +186,11 @@ gst_textwrite_class_init (GsttextwriteClass * klass) "Sets the Vertical position", 0, G_MAXINT, DEFAULT_PROP_YPOS, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); +g_object_class_install_property (gobject_class, PROP_THICKNESS, + g_param_spec_int ("thickness", "font thickness", + "Sets the Thickness of Font", 0, G_MAXINT, + DEFAULT_PROP_THICKNESS, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_HEIGHT, g_param_spec_double ("height", "Height", "Sets the height of fonts",1.0,5.0, @@ -220,11 +227,12 @@ gst_textwrite_init (Gsttextwrite * filter, gst_element_add_pad (GST_ELEMENT (filter), filter->sinkpad); gst_element_add_pad (GST_ELEMENT (filter), filter->srcpad); filter->textbuf = g_strdup (DEFAULT_PROP_TEXT); - filter->width=DEFAULT_PROP_WIDTH; - filter->height=DEFAULT_PROP_HEIGHT; - filter->xpos=DEFAULT_PROP_XPOS; - filter->ypos=DEFAULT_PROP_XPOS; - + filter->width = DEFAULT_PROP_WIDTH; + filter->height = DEFAULT_PROP_HEIGHT; + filter->xpos = DEFAULT_PROP_XPOS; + filter->ypos = DEFAULT_PROP_YPOS; + filter->thickness = DEFAULT_PROP_THICKNESS; + } static void @@ -244,6 +252,9 @@ gst_textwrite_set_property (GObject * object, guint prop_id, case PROP_YPOS: filter->ypos = g_value_get_int(value); break; + case PROP_THICKNESS: + filter->thickness = g_value_get_int(value); + break; case PROP_HEIGHT: filter->height = g_value_get_double(value); break; @@ -272,6 +283,9 @@ gst_textwrite_get_property (GObject * object, guint prop_id, case PROP_YPOS: g_value_set_int (value, filter->ypos); break; + case PROP_THICKNESS: + g_value_set_int (value, filter->thickness); + break; case PROP_HEIGHT: g_value_set_double (value, filter->height); break; @@ -322,15 +336,12 @@ gst_textwrite_chain (GstPad * pad, GstBuffer * buf) filter = GST_textwrite (GST_OBJECT_PARENT (pad)); filter->cvImage->imageData = (char *) GST_BUFFER_DATA (buf); - int lineWidth=1; - cvInitFont(&(filter->font),CV_FONT_VECTOR0, filter->width,filter->height,0,lineWidth,0); - + + cvInitFont(&(filter->font),CV_FONT_VECTOR0, filter->width,filter->height,0,filter->thickness,0); cvPutText (filter->cvImage,filter->textbuf,cvPoint(filter->xpos,filter->ypos), &(filter->font), cvScalar(165,14,14,0)); - gst_buffer_set_data (buf, filter->cvImage->imageData,filter->cvImage->imageSize); - return gst_pad_push (filter->srcpad, buf); } diff --git a/ext/opencv/textwrite/gsttextwrite.h b/ext/opencv/textwrite/gsttextwrite.h index 350e26737e..f36de2aeb3 100644 --- a/ext/opencv/textwrite/gsttextwrite.h +++ b/ext/opencv/textwrite/gsttextwrite.h @@ -80,6 +80,7 @@ struct _Gsttextwrite gint xpos; gint ypos; + gint thickness; gdouble height; gdouble width; gchar *textbuf;