summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: f242214)
raw | patch | inline | side by side (parent: f242214)
author | Sebastian Dröge <slomo@circular-chaos.org> | |
Tue, 13 May 2008 12:54:00 +0000 (12:54 +0000) | ||
committer | Sebastian Dröge <slomo@circular-chaos.org> | |
Tue, 13 May 2008 12:54:00 +0000 (12:54 +0000) |
Original commit message from CVS:
* plugins/elements/gstfakesink.c:
(marshal_VOID__MINIOBJECT_OBJECT), (gst_fake_sink_class_init):
* plugins/elements/gstfakesrc.c: (marshal_VOID__MINIOBJECT_OBJECT),
(gst_fake_src_class_init):
Use custom marshalers that take GstMiniObject as first parameter.
Using OBJECT as parameter while a GstMiniObject is given will lead
to assertions if built with G_ENABLE_DEBUG. Fixes bug #525532.
* plugins/elements/gstfakesink.c:
(marshal_VOID__MINIOBJECT_OBJECT), (gst_fake_sink_class_init):
* plugins/elements/gstfakesrc.c: (marshal_VOID__MINIOBJECT_OBJECT),
(gst_fake_src_class_init):
Use custom marshalers that take GstMiniObject as first parameter.
Using OBJECT as parameter while a GstMiniObject is given will lead
to assertions if built with G_ENABLE_DEBUG. Fixes bug #525532.
ChangeLog | patch | blob | history | |
plugins/elements/gstfakesink.c | patch | blob | history | |
plugins/elements/gstfakesrc.c | patch | blob | history |
diff --git a/ChangeLog b/ChangeLog
index 207ff836a2605f83b00ae6e2b2dccecb6e9810c3..3b81af466b2bc13f0a242484c0fe3496d8131f8f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
+2008-05-13 Sebastian Dröge <slomo@circular-chaos.org>
+
+ * plugins/elements/gstfakesink.c:
+ (marshal_VOID__MINIOBJECT_OBJECT), (gst_fake_sink_class_init):
+ * plugins/elements/gstfakesrc.c: (marshal_VOID__MINIOBJECT_OBJECT),
+ (gst_fake_src_class_init):
+ Use custom marshalers that take GstMiniObject as first parameter.
+ Using OBJECT as parameter while a GstMiniObject is given will lead
+ to assertions if built with G_ENABLE_DEBUG. Fixes bug #525532.
+
2008-05-13 Sebastian Dröge <slomo@circular-chaos.org>
* plugins/elements/gsttypefindelement.c:
index 813dcbea6553bca4cfb7519945adf7b7e22dda69..47e60e835341010a0f0e6f5a382fe85c0406536a 100644 (file)
static guint gst_fake_sink_signals[LAST_SIGNAL] = { 0 };
+static void
+marshal_VOID__MINIOBJECT_OBJECT (GClosure * closure, GValue * return_value,
+ guint n_param_values, const GValue * param_values, gpointer invocation_hint,
+ gpointer marshal_data)
+{
+ typedef void (*marshalfunc_VOID__MINIOBJECT_OBJECT) (gpointer obj,
+ gpointer arg1, gpointer arg2, gpointer data2);
+ register marshalfunc_VOID__MINIOBJECT_OBJECT callback;
+ register GCClosure *cc = (GCClosure *) closure;
+ register gpointer data1, data2;
+
+ g_return_if_fail (n_param_values == 3);
+
+ 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_OBJECT) (marshal_data ? marshal_data : cc->
+ callback);
+
+ callback (data1, gst_value_get_mini_object (param_values + 1),
+ g_value_get_object (param_values + 2), data2);
+}
+
static void
gst_fake_sink_base_init (gpointer g_class)
{
gst_fake_sink_signals[SIGNAL_HANDOFF] =
g_signal_new ("handoff", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (GstFakeSinkClass, handoff), NULL, NULL,
- gst_marshal_VOID__OBJECT_OBJECT, G_TYPE_NONE, 2,
+ marshal_VOID__MINIOBJECT_OBJECT, G_TYPE_NONE, 2,
GST_TYPE_BUFFER, GST_TYPE_PAD);
/**
gst_fake_sink_signals[SIGNAL_PREROLL_HANDOFF] =
g_signal_new ("preroll-handoff", G_TYPE_FROM_CLASS (klass),
G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstFakeSinkClass, preroll_handoff),
- NULL, NULL, gst_marshal_VOID__OBJECT_OBJECT, G_TYPE_NONE, 2,
+ NULL, NULL, marshal_VOID__MINIOBJECT_OBJECT, G_TYPE_NONE, 2,
GST_TYPE_BUFFER, GST_TYPE_PAD);
gstelement_class->change_state =
index 01793f0968bbba5d16d42ff78d72adff8bef106a..4d5d24f4f40b38149669cce36de8e5cfca7ed80b 100644 (file)
static guint gst_fake_src_signals[LAST_SIGNAL] = { 0 };
+static void
+marshal_VOID__MINIOBJECT_OBJECT (GClosure * closure, GValue * return_value,
+ guint n_param_values, const GValue * param_values, gpointer invocation_hint,
+ gpointer marshal_data)
+{
+ typedef void (*marshalfunc_VOID__MINIOBJECT_OBJECT) (gpointer obj,
+ gpointer arg1, gpointer arg2, gpointer data2);
+ register marshalfunc_VOID__MINIOBJECT_OBJECT callback;
+ register GCClosure *cc = (GCClosure *) closure;
+ register gpointer data1, data2;
+
+ g_return_if_fail (n_param_values == 3);
+
+ 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_OBJECT) (marshal_data ? marshal_data : cc->
+ callback);
+
+ callback (data1, gst_value_get_mini_object (param_values + 1),
+ g_value_get_object (param_values + 2), data2);
+}
+
static void
gst_fake_src_base_init (gpointer g_class)
{
gst_fake_src_signals[SIGNAL_HANDOFF] =
g_signal_new ("handoff", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (GstFakeSrcClass, handoff), NULL, NULL,
- gst_marshal_VOID__OBJECT_OBJECT, G_TYPE_NONE, 2, GST_TYPE_BUFFER,
+ marshal_VOID__MINIOBJECT_OBJECT, G_TYPE_NONE, 2, GST_TYPE_BUFFER,
GST_TYPE_PAD);
gstbase_src_class->is_seekable = GST_DEBUG_FUNCPTR (gst_fake_src_is_seekable);