[prev in list] [next in list] [prev in thread] [next in thread] 

List:       gstreamer-cvs
Subject:    [gst-cvs] gst-plugins-bad: videosignal: change pattern data type to
From:       cymacs () kemper ! freedesktop ! org (René Stadler)
Date:       2009-09-26 16:15:26
Message-ID: 20090926161526.AD63010050 () kemper ! freedesktop ! org
[Download RAW message or body]

Module: gst-plugins-bad
Branch: master
Commit: c45cc31c7d87abe4a4d2f8767720c8da321ca6b3
URL:    http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=c45cc31c7d87abe4a4d2f8767720c8da321ca6b3


Author: René Stadler <mail@renestadler.de>
Date:   Tue Sep  8 00:01:28 2009 +0300

videosignal: change pattern data type to uint64, add property and message field

Keeps the old uint typed value support for compatibility.

---

 gst/videosignal/gstvideodetect.c |   14 +++++++++++---
 gst/videosignal/gstvideomark.c   |   21 ++++++++++++++++-----
 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 d840dd2..0ddc6c3 100644
--- a/gst/videosignal/gstvideodetect.c
+++ b/gst/videosignal/gstvideodetect.c
@@ -78,6 +78,13 @@
  * </listitem>
  * <listitem>
  *   <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
  *   <classname>&quot;data&quot;</classname>:
  *   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,  
 static void
 gst_video_detect_post_message (GstVideoDetect * videodetect, GstBuffer * buffer,
-    guint data)
+    guint64 data)
 {
   GstBaseTransform *trans;
   GstMessage *m;
@@ -208,7 +215,8 @@ gst_video_detect_post_message (GstVideoDetect * videodetect, \
GstBuffer * buffer,  "stream-time", G_TYPE_UINT64, stream_time,
           "running-time", G_TYPE_UINT64, running_time,
           "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);
 }
 
@@ -237,7 +245,7 @@ gst_video_detect_yuv (GstVideoDetect * videodetect, GstBuffer * \
buffer)  gint i, pw, ph, row_stride, pixel_stride, offset;
   gint width, height, req_width, req_height;
   guint8 *d, *data;
-  guint pattern_data;
+  guint64 pattern_data;
 
   data = GST_BUFFER_DATA (buffer);
 
diff --git a/gst/videosignal/gstvideomark.c b/gst/videosignal/gstvideomark.c
index cbc7214..3e73d85 100644
--- a/gst/videosignal/gstvideomark.c
+++ b/gst/videosignal/gstvideomark.c
@@ -74,6 +74,7 @@ enum
   PROP_PATTERN_COUNT,
   PROP_PATTERN_DATA_COUNT,
   PROP_PATTERN_DATA,
+  PROP_PATTERN_DATA_64,
   PROP_ENABLED,
   PROP_LEFT_OFFSET,
   PROP_BOTTOM_OFFSET
@@ -150,7 +151,7 @@ gst_video_mark_yuv (GstVideoMark * videomark, GstBuffer * buffer)
   gint i, pw, ph, row_stride, pixel_stride, offset;
   gint width, height, req_width, req_height;
   guint8 *d, *data;
-  guint pattern_shift;
+  guint64 pattern_shift;
   guint8 color;
 
   data = GST_BUFFER_DATA (buffer);
@@ -196,7 +197,7 @@ gst_video_mark_yuv (GstVideoMark * videomark, GstBuffer * buffer)
         color);
   }
 
-  pattern_shift = 1 << (videomark->pattern_data_count - 1);
+  pattern_shift = G_GUINT64_CONSTANT (1) << (videomark->pattern_data_count - 1);
 
   /* get the data of the pattern */
   for (i = 0; i < videomark->pattern_data_count; i++) {
@@ -258,6 +259,9 @@ gst_video_mark_set_property (GObject * object, guint prop_id,
     case PROP_PATTERN_DATA_COUNT:
       videomark->pattern_data_count = g_value_get_int (value);
       break;
+    case PROP_PATTERN_DATA_64:
+      videomark->pattern_data = g_value_get_uint64 (value);
+      break;
     case PROP_PATTERN_DATA:
       videomark->pattern_data = g_value_get_int (value);
       break;
@@ -297,8 +301,11 @@ gst_video_mark_get_property (GObject * object, guint prop_id, \
GValue * value,  case PROP_PATTERN_DATA_COUNT:
       g_value_set_int (value, videomark->pattern_data_count);
       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;
     case PROP_ENABLED:
       g_value_set_boolean (value, videomark->enabled);
@@ -356,12 +363,16 @@ gst_video_mark_class_init (gpointer klass, gpointer class_data)
           DEFAULT_PATTERN_COUNT, G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
   g_object_class_install_property (gobject_class, PROP_PATTERN_DATA_COUNT,
       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,
       g_param_spec_int ("pattern-data", "Pattern 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,
       g_param_spec_boolean ("enabled", "Enabled",
           "Enable or disable the filter",
diff --git a/gst/videosignal/gstvideomark.h b/gst/videosignal/gstvideomark.h
index b895d18..4511346 100644
--- a/gst/videosignal/gstvideomark.h
+++ b/gst/videosignal/gstvideomark.h
@@ -54,7 +54,7 @@ struct _GstVideoMark {
   gint pattern_height;
   gint pattern_count;
   gint pattern_data_count;
-  gint pattern_data;
+  guint64 pattern_data;
   gboolean enabled;
   gint left_offset;
   gint bottom_offset;



------------------------------------------------------------------------------
Come build with us! The BlackBerry&reg; Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9&#45;12, 2009. Register now&#33;
http://p.sf.net/sfu/devconf

_______________________________________________
gstreamer-cvs mailing list
gstreamer-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gstreamer-cvs


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic