gst/elements/gstidentity.c (marshal_VOID__MINIOBJECT): Write our own marshalling...
authorAndy Wingo <wingo@pobox.com>
Fri, 15 Jul 2005 14:59:22 +0000 (14:59 +0000)
committerAndy Wingo <wingo@pobox.com>
Fri, 15 Jul 2005 14:59:22 +0000 (14:59 +0000)
Original commit message from CVS:
2005-07-15  Andy Wingo  <wingo@pobox.com>

* gst/elements/gstidentity.c (marshal_VOID__MINIOBJECT): Write our
own marshalling function for the handoff signal. Properly type the
buffer as a buffer. Fixes some warnings. Should do a more general
solution.
(gst_identity_class_init): Plug into the right marshaller.

ChangeLog
gst/elements/gstidentity.c
plugins/elements/gstidentity.c

index 1e90190ebd850f964014dea32ba8eb5a3fd66510..59f447415b0fe410ee43ea2c1a7029342db30214 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2005-07-15  Andy Wingo  <wingo@pobox.com>
+
+       * gst/elements/gstidentity.c (marshal_VOID__MINIOBJECT): Write our
+       own marshalling function for the handoff signal. Properly type the
+       buffer as a buffer. Fixes some warnings. Should do a more general
+       solution.
+       (gst_identity_class_init): Plug into the right marshaller.
+
 2005-07-15  Wim Taymans  <wim@fluendo.com>
 
        * docs/design/part-TODO.txt:
index 75f7c3a454ab1fe432d7451ea5fa5b5317b25ff7..f73015dbe840e1a192380d151dd83ca05963d53b 100644 (file)
@@ -128,6 +128,34 @@ gst_identity_finalize (GObject * object)
   G_OBJECT_CLASS (parent_class)->finalize (object);
 }
 
+/* fixme: do something about this */
+static void
+marshal_VOID__MINIOBJECT (GClosure * closure, GValue * return_value,
+    guint n_param_values, const GValue * param_values, gpointer invocation_hint,
+    gpointer marshal_data)
+{
+  typedef void (*marshalfunc_VOID__MINIOBJECT) (gpointer obj, gpointer arg1,
+      gpointer data2);
+  register marshalfunc_VOID__MINIOBJECT callback;
+  register GCClosure *cc = (GCClosure *) closure;
+  register gpointer data1, data2;
+
+  g_return_if_fail (n_param_values == 2);
+
+  if (G_CCLOSURE_SWAP_DATA (closure)) {
+    data1 = closure->data;
+    data2 = g_value_peek_pointer (param_values + 0);
+  } else {
+    data1 = g_value_peek_pointer (param_values + 0);
+    data2 = closure->data;
+  }
+  callback =
+      (marshalfunc_VOID__MINIOBJECT) (marshal_data ? marshal_data : cc->
+      callback);
+
+  callback (data1, gst_value_get_mini_object (param_values + 1), data2);
+}
+
 static void
 gst_identity_class_init (GstIdentityClass * klass)
 {
@@ -177,7 +205,7 @@ gst_identity_class_init (GstIdentityClass * klass)
   gst_identity_signals[SIGNAL_HANDOFF] =
       g_signal_new ("handoff", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST,
       G_STRUCT_OFFSET (GstIdentityClass, handoff), NULL, NULL,
-      gst_marshal_VOID__OBJECT, G_TYPE_NONE, 1, G_TYPE_POINTER);
+      marshal_VOID__MINIOBJECT, G_TYPE_NONE, 1, GST_TYPE_BUFFER);
 
   gobject_class->finalize = GST_DEBUG_FUNCPTR (gst_identity_finalize);
 
index 75f7c3a454ab1fe432d7451ea5fa5b5317b25ff7..f73015dbe840e1a192380d151dd83ca05963d53b 100644 (file)
@@ -128,6 +128,34 @@ gst_identity_finalize (GObject * object)
   G_OBJECT_CLASS (parent_class)->finalize (object);
 }
 
+/* fixme: do something about this */
+static void
+marshal_VOID__MINIOBJECT (GClosure * closure, GValue * return_value,
+    guint n_param_values, const GValue * param_values, gpointer invocation_hint,
+    gpointer marshal_data)
+{
+  typedef void (*marshalfunc_VOID__MINIOBJECT) (gpointer obj, gpointer arg1,
+      gpointer data2);
+  register marshalfunc_VOID__MINIOBJECT callback;
+  register GCClosure *cc = (GCClosure *) closure;
+  register gpointer data1, data2;
+
+  g_return_if_fail (n_param_values == 2);
+
+  if (G_CCLOSURE_SWAP_DATA (closure)) {
+    data1 = closure->data;
+    data2 = g_value_peek_pointer (param_values + 0);
+  } else {
+    data1 = g_value_peek_pointer (param_values + 0);
+    data2 = closure->data;
+  }
+  callback =
+      (marshalfunc_VOID__MINIOBJECT) (marshal_data ? marshal_data : cc->
+      callback);
+
+  callback (data1, gst_value_get_mini_object (param_values + 1), data2);
+}
+
 static void
 gst_identity_class_init (GstIdentityClass * klass)
 {
@@ -177,7 +205,7 @@ gst_identity_class_init (GstIdentityClass * klass)
   gst_identity_signals[SIGNAL_HANDOFF] =
       g_signal_new ("handoff", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST,
       G_STRUCT_OFFSET (GstIdentityClass, handoff), NULL, NULL,
-      gst_marshal_VOID__OBJECT, G_TYPE_NONE, 1, G_TYPE_POINTER);
+      marshal_VOID__MINIOBJECT, G_TYPE_NONE, 1, GST_TYPE_BUFFER);
 
   gobject_class->finalize = GST_DEBUG_FUNCPTR (gst_identity_finalize);