summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRené Stadler <mail@renestadler.de>2009-09-08 00:01:28 +0300
committerRené Stadler <mail@renestadler.de>2009-09-26 19:11:09 +0300
commitc45cc31c7d87abe4a4d2f8767720c8da321ca6b3 (patch)
tree78cb9ed0edee2eb587fd6d9b8871f9c0626aa799
parentb24d581c78e0de7d57ccb9b015339eab174c2cd2 (diff)
videosignal: change pattern data type to uint64, add property and message field
Keeps the old uint typed value support for compatibility.
-rw-r--r--gst/videosignal/gstvideodetect.c14
-rw-r--r--gst/videosignal/gstvideomark.c21
-rw-r--r--gst/videosignal/gstvideomark.h2
3 files changed, 28 insertions, 9 deletions
diff --git a/gst/videosignal/gstvideodetect.c b/gst/videosignal/gstvideodetect.c
index d840dd26f..0ddc6c3d4 100644
--- a/gst/videosignal/gstvideodetect.c
+++ b/gst/videosignal/gstvideodetect.c
@@ -78,6 +78,13 @@
78 * </listitem> 78 * </listitem>
79 * <listitem> 79 * <listitem>
80 * <para> 80 * <para>
81 * #guint64
82 * <classname>&quot;data-uint64&quot;</classname>:
83 * the data-pattern found after the pattern or 0 when have-signal is #FALSE.
84 * </para>
85 * </listitem>
86 * <listitem>
87 * <para>
81 * #guint 88 * #guint
82 * <classname>&quot;data&quot;</classname>: 89 * <classname>&quot;data&quot;</classname>:
83 * the data-pattern found after the pattern or 0 when have-signal is #FALSE. 90 * the data-pattern found after the pattern or 0 when have-signal is #FALSE.
@@ -184,7 +191,7 @@ gst_video_detect_set_caps (GstBaseTransform * btrans, GstCaps * incaps,
184 191
185static void 192static void
186gst_video_detect_post_message (GstVideoDetect * videodetect, GstBuffer * buffer, 193gst_video_detect_post_message (GstVideoDetect * videodetect, GstBuffer * buffer,
187 guint data) 194 guint64 data)
188{ 195{
189 GstBaseTransform *trans; 196 GstBaseTransform *trans;
190 GstMessage *m; 197 GstMessage *m;
@@ -208,7 +215,8 @@ gst_video_detect_post_message (GstVideoDetect * videodetect, GstBuffer * buffer,
208 "stream-time", G_TYPE_UINT64, stream_time, 215 "stream-time", G_TYPE_UINT64, stream_time,
209 "running-time", G_TYPE_UINT64, running_time, 216 "running-time", G_TYPE_UINT64, running_time,
210 "duration", G_TYPE_UINT64, duration, 217 "duration", G_TYPE_UINT64, duration,
211 "data", G_TYPE_UINT, data, NULL)); 218 "data-uint64", G_TYPE_UINT64, data,
219 "data", G_TYPE_UINT, (guint) MIN (data, G_MAXINT), NULL));
212 gst_element_post_message (GST_ELEMENT_CAST (videodetect), m); 220 gst_element_post_message (GST_ELEMENT_CAST (videodetect), m);
213} 221}
214 222
@@ -237,7 +245,7 @@ gst_video_detect_yuv (GstVideoDetect * videodetect, GstBuffer * buffer)
237 gint i, pw, ph, row_stride, pixel_stride, offset; 245 gint i, pw, ph, row_stride, pixel_stride, offset;
238 gint width, height, req_width, req_height; 246 gint width, height, req_width, req_height;
239 guint8 *d, *data; 247 guint8 *d, *data;
240 guint pattern_data; 248 guint64 pattern_data;
241 249
242 data = GST_BUFFER_DATA (buffer); 250 data = GST_BUFFER_DATA (buffer);
243 251
diff --git a/gst/videosignal/gstvideomark.c b/gst/videosignal/gstvideomark.c
index cbc721456..3e73d8594 100644
--- a/gst/videosignal/gstvideomark.c
+++ b/gst/videosignal/gstvideomark.c
@@ -74,6 +74,7 @@ enum
74 PROP_PATTERN_COUNT, 74 PROP_PATTERN_COUNT,
75 PROP_PATTERN_DATA_COUNT, 75 PROP_PATTERN_DATA_COUNT,
76 PROP_PATTERN_DATA, 76 PROP_PATTERN_DATA,
77 PROP_PATTERN_DATA_64,
77 PROP_ENABLED, 78 PROP_ENABLED,
78 PROP_LEFT_OFFSET, 79 PROP_LEFT_OFFSET,
79 PROP_BOTTOM_OFFSET 80 PROP_BOTTOM_OFFSET
@@ -150,7 +151,7 @@ gst_video_mark_yuv (GstVideoMark * videomark, GstBuffer * buffer)
150 gint i, pw, ph, row_stride, pixel_stride, offset; 151 gint i, pw, ph, row_stride, pixel_stride, offset;
151 gint width, height, req_width, req_height; 152 gint width, height, req_width, req_height;
152 guint8 *d, *data; 153 guint8 *d, *data;
153 guint pattern_shift; 154 guint64 pattern_shift;
154 guint8 color; 155 guint8 color;
155 156
156 data = GST_BUFFER_DATA (buffer); 157 data = GST_BUFFER_DATA (buffer);
@@ -196,7 +197,7 @@ gst_video_mark_yuv (GstVideoMark * videomark, GstBuffer * buffer)
196 color); 197 color);
197 } 198 }
198 199
199 pattern_shift = 1 << (videomark->pattern_data_count - 1); 200 pattern_shift = G_GUINT64_CONSTANT (1) << (videomark->pattern_data_count - 1);
200 201
201 /* get the data of the pattern */ 202 /* get the data of the pattern */
202 for (i = 0; i < videomark->pattern_data_count; i++) { 203 for (i = 0; i < videomark->pattern_data_count; i++) {
@@ -258,6 +259,9 @@ gst_video_mark_set_property (GObject * object, guint prop_id,
258 case PROP_PATTERN_DATA_COUNT: 259 case PROP_PATTERN_DATA_COUNT:
259 videomark->pattern_data_count = g_value_get_int (value); 260 videomark->pattern_data_count = g_value_get_int (value);
260 break; 261 break;
262 case PROP_PATTERN_DATA_64:
263 videomark->pattern_data = g_value_get_uint64 (value);
264 break;
261 case PROP_PATTERN_DATA: 265 case PROP_PATTERN_DATA:
262 videomark->pattern_data = g_value_get_int (value); 266 videomark->pattern_data = g_value_get_int (value);
263 break; 267 break;
@@ -297,8 +301,11 @@ gst_video_mark_get_property (GObject * object, guint prop_id, GValue * value,
297 case PROP_PATTERN_DATA_COUNT: 301 case PROP_PATTERN_DATA_COUNT:
298 g_value_set_int (value, videomark->pattern_data_count); 302 g_value_set_int (value, videomark->pattern_data_count);
299 break; 303 break;
304 case PROP_PATTERN_DATA_64:
305 g_value_set_uint64 (value, videomark->pattern_data);
306 break;
300 case PROP_PATTERN_DATA: 307 case PROP_PATTERN_DATA:
301 g_value_set_int (value, videomark->pattern_data); 308 g_value_set_int (value, MIN (videomark->pattern_data, G_MAXINT));
302 break; 309 break;
303 case PROP_ENABLED: 310 case PROP_ENABLED:
304 g_value_set_boolean (value, videomark->enabled); 311 g_value_set_boolean (value, videomark->enabled);
@@ -356,12 +363,16 @@ gst_video_mark_class_init (gpointer klass, gpointer class_data)
356 DEFAULT_PATTERN_COUNT, G_PARAM_READWRITE | G_PARAM_CONSTRUCT)); 363 DEFAULT_PATTERN_COUNT, G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
357 g_object_class_install_property (gobject_class, PROP_PATTERN_DATA_COUNT, 364 g_object_class_install_property (gobject_class, PROP_PATTERN_DATA_COUNT,
358 g_param_spec_int ("pattern-data-count", "Pattern data count", 365 g_param_spec_int ("pattern-data-count", "Pattern data count",
359 "The number of extra data pattern markers", 0, G_MAXINT, 366 "The number of extra data pattern markers", 0, 64,
360 DEFAULT_PATTERN_DATA_COUNT, G_PARAM_READWRITE | G_PARAM_CONSTRUCT)); 367 DEFAULT_PATTERN_DATA_COUNT, G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
368 g_object_class_install_property (gobject_class, PROP_PATTERN_DATA_64,
369 g_param_spec_uint64 ("pattern-data-uint64", "Pattern data",
370 "The extra data pattern markers", 0, G_MAXUINT64,
371 DEFAULT_PATTERN_DATA, G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
361 g_object_class_install_property (gobject_class, PROP_PATTERN_DATA, 372 g_object_class_install_property (gobject_class, PROP_PATTERN_DATA,
362 g_param_spec_int ("pattern-data", "Pattern data", 373 g_param_spec_int ("pattern-data", "Pattern data",
363 "The extra data pattern markers", 0, G_MAXINT, 374 "The extra data pattern markers", 0, G_MAXINT,
364 DEFAULT_PATTERN_DATA, G_PARAM_READWRITE | G_PARAM_CONSTRUCT)); 375 DEFAULT_PATTERN_DATA, G_PARAM_READWRITE));
365 g_object_class_install_property (gobject_class, PROP_ENABLED, 376 g_object_class_install_property (gobject_class, PROP_ENABLED,
366 g_param_spec_boolean ("enabled", "Enabled", 377 g_param_spec_boolean ("enabled", "Enabled",
367 "Enable or disable the filter", 378 "Enable or disable the filter",
diff --git a/gst/videosignal/gstvideomark.h b/gst/videosignal/gstvideomark.h
index b895d18ab..45113464f 100644
--- a/gst/videosignal/gstvideomark.h
+++ b/gst/videosignal/gstvideomark.h
@@ -54,7 +54,7 @@ struct _GstVideoMark {
54 gint pattern_height; 54 gint pattern_height;
55 gint pattern_count; 55 gint pattern_count;
56 gint pattern_data_count; 56 gint pattern_data_count;
57 gint pattern_data; 57 guint64 pattern_data;
58 gboolean enabled; 58 gboolean enabled;
59 gint left_offset; 59 gint left_offset;
60 gint bottom_offset; 60 gint bottom_offset;