diff options
author | René Stadler <mail@renestadler.de> | 2009-09-08 00:01:28 +0300 |
---|---|---|
committer | René Stadler <mail@renestadler.de> | 2009-09-26 19:11:09 +0300 |
commit | c45cc31c7d87abe4a4d2f8767720c8da321ca6b3 (patch) | |
tree | 78cb9ed0edee2eb587fd6d9b8871f9c0626aa799 | |
parent | b24d581c78e0de7d57ccb9b015339eab174c2cd2 (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.c | 14 | ||||
-rw-r--r-- | gst/videosignal/gstvideomark.c | 21 | ||||
-rw-r--r-- | gst/videosignal/gstvideomark.h | 2 |
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>"data-uint64"</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>"data"</classname>: | 89 | * <classname>"data"</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 | ||
185 | static void | 192 | static void |
186 | gst_video_detect_post_message (GstVideoDetect * videodetect, GstBuffer * buffer, | 193 | gst_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; |