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
@@ -80,2 +80,9 @@
* <para>
+ * #guint64
+ * <classname>&quot;data-uint64&quot;</classname>:
+ * the data-pattern found after the pattern or 0 when have-signal is #FALSE.
+ * </para>
+ * </listitem>
+ * <listitem>
+ * <para>
* #guint
@@ -186,3 +193,3 @@ static void
gst_video_detect_post_message (GstVideoDetect * videodetect, GstBuffer * buffer,
- guint data)
+ guint64 data)
{
@@ -210,3 +217,4 @@ gst_video_detect_post_message (GstVideoDetect * videodetect, GstBuffer * buffer,
"duration", G_TYPE_UINT64, duration,
- "data", G_TYPE_UINT, data, NULL));
+ "data-uint64", G_TYPE_UINT64, data,
+ "data", G_TYPE_UINT, (guint) MIN (data, G_MAXINT), NULL));
gst_element_post_message (GST_ELEMENT_CAST (videodetect), m);
@@ -239,3 +247,3 @@ gst_video_detect_yuv (GstVideoDetect * videodetect, GstBuffer * buffer)
guint8 *d, *data;
- guint pattern_data;
+ guint64 pattern_data;
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
@@ -76,2 +76,3 @@ enum
PROP_PATTERN_DATA,
+ PROP_PATTERN_DATA_64,
PROP_ENABLED,
@@ -152,3 +153,3 @@ gst_video_mark_yuv (GstVideoMark * videomark, GstBuffer * buffer)
guint8 *d, *data;
- guint pattern_shift;
+ guint64 pattern_shift;
guint8 color;
@@ -198,3 +199,3 @@ gst_video_mark_yuv (GstVideoMark * videomark, GstBuffer * buffer)
- pattern_shift = 1 << (videomark->pattern_data_count - 1);
+ pattern_shift = G_GUINT64_CONSTANT (1) << (videomark->pattern_data_count - 1);
@@ -260,2 +261,5 @@ gst_video_mark_set_property (GObject * object, guint prop_id,
break;
+ case PROP_PATTERN_DATA_64:
+ videomark->pattern_data = g_value_get_uint64 (value);
+ break;
case PROP_PATTERN_DATA:
@@ -299,4 +303,7 @@ gst_video_mark_get_property (GObject * object, guint prop_id, GValue * value,
break;
+ case PROP_PATTERN_DATA_64:
+ g_value_set_uint64 (value, videomark->pattern_data);
+ break;
case PROP_PATTERN_DATA:
- g_value_set_int (value, videomark->pattern_data);
+ g_value_set_int (value, MIN (videomark->pattern_data, G_MAXINT));
break;
@@ -358,4 +365,8 @@ gst_video_mark_class_init (gpointer klass, gpointer class_data)
g_param_spec_int ("pattern-data-count", "Pattern data count",
- "The number of extra data pattern markers", 0, G_MAXINT,
+ "The number of extra data pattern markers", 0, 64,
DEFAULT_PATTERN_DATA_COUNT, G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+ g_object_class_install_property (gobject_class, PROP_PATTERN_DATA_64,
+ g_param_spec_uint64 ("pattern-data-uint64", "Pattern data",
+ "The extra data pattern markers", 0, G_MAXUINT64,
+ DEFAULT_PATTERN_DATA, G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
g_object_class_install_property (gobject_class, PROP_PATTERN_DATA,
@@ -363,3 +374,3 @@ gst_video_mark_class_init (gpointer klass, gpointer class_data)
"The extra data pattern markers", 0, G_MAXINT,
- DEFAULT_PATTERN_DATA, G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+ DEFAULT_PATTERN_DATA, G_PARAM_READWRITE));
g_object_class_install_property (gobject_class, PROP_ENABLED,
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
@@ -56,3 +56,3 @@ struct _GstVideoMark {
gint pattern_data_count;
- gint pattern_data;
+ guint64 pattern_data;
gboolean enabled;