--- a/gstreamer_core/gst/gstminiobject.c Wed Mar 31 22:03:18 2010 +0300
+++ b/gstreamer_core/gst/gstminiobject.c Tue Aug 31 15:30:33 2010 +0300
@@ -37,7 +37,9 @@
#include "gst/gstminiobject.h"
#include "gst/gstinfo.h"
#include <gobject/gvaluecollector.h>
-
+#ifdef __SYMBIAN32__
+#include <glib_global.h>
+#endif
#ifndef GST_DISABLE_TRACE
#include "gsttrace.h"
static GstAllocTrace *_gst_mini_object_trace;
@@ -163,6 +165,14 @@
gst_mini_object_finalize (GstMiniObject * obj)
{
/* do nothing */
+
+ /* WARNING: if anything is ever put in this method, make sure that the
+ * following sub-classes' finalize method chains up to this one:
+ * gstbuffer
+ * gstevent
+ * gstmessage
+ * gstquery
+ */
}
/**
@@ -287,6 +297,8 @@
if (gst_mini_object_is_writable (mini_object)) {
ret = (GstMiniObject *) mini_object;
} else {
+ GST_CAT_DEBUG (GST_CAT_PERFORMANCE, "copy %s miniobject",
+ g_type_name (G_TYPE_FROM_INSTANCE (mini_object)));
ret = gst_mini_object_copy (mini_object);
gst_mini_object_unref ((GstMiniObject *) mini_object);
}
@@ -446,8 +458,8 @@
{
if (src_value->data[0].v_pointer) {
dest_value->data[0].v_pointer =
- gst_mini_object_ref (GST_MINI_OBJECT_CAST (src_value->data[0].
- v_pointer));
+ gst_mini_object_ref (GST_MINI_OBJECT_CAST (src_value->
+ data[0].v_pointer));
} else {
dest_value->data[0].v_pointer = NULL;
}
@@ -565,18 +577,31 @@
return value->data[0].v_pointer;
}
-/* param spec */
-
-static GType gst_param_spec_mini_object_get_type (void);
+/**
+ * gst_value_dup_mini_object:
+ * @value: a valid #GValue of %GST_TYPE_MINI_OBJECT derived type
+ *
+ * Get the contents of a %GST_TYPE_MINI_OBJECT derived #GValue,
+ * increasing its reference count.
+ *
+ * Returns: mini object contents of @value
+ *
+ * Since: 0.10.20
+ */
+#ifdef __SYMBIAN32__
+EXPORT_C
+#endif
-#define GST_TYPE_PARAM_SPEC_MINI_OBJECT (gst_param_spec_mini_object_get_type())
-#define GST_PARAM_SPEC_MINI_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GST_TYPE_PARAM_SPEC_MINI_OBJECT, GstParamSpecMiniObject))
+GstMiniObject *
+gst_value_dup_mini_object (const GValue * value)
+{
+ g_return_val_if_fail (GST_VALUE_HOLDS_MINI_OBJECT (value), NULL);
-typedef struct _GstParamSpecMiniObject GstParamSpecMiniObject;
-struct _GstParamSpecMiniObject
-{
- GParamSpec parent_instance;
-};
+ return gst_mini_object_ref (value->data[0].v_pointer);
+}
+
+
+/* param spec */
static void
param_mini_object_init (GParamSpec * pspec)
@@ -619,8 +644,12 @@
return p1 < p2 ? -1 : p1 > p2;
}
+#ifdef __SYMBIAN32__
+EXPORT_C
+#endif
-static GType
+
+GType
gst_param_spec_mini_object_get_type (void)
{
static GType type;
@@ -667,7 +696,7 @@
g_return_val_if_fail (g_type_is_a (object_type, GST_TYPE_MINI_OBJECT), NULL);
- ospec = g_param_spec_internal (GST_TYPE_PARAM_SPEC_MINI_OBJECT,
+ ospec = g_param_spec_internal (GST_TYPE_PARAM_MINI_OBJECT,
name, nick, blurb, flags);
G_PARAM_SPEC (ospec)->value_type = object_type;