diff -r 9b2c3c7a1a9c -r 567bb019e3e3 gstreamer_core/gst/gstminiobject.c --- 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 - +#ifdef __SYMBIAN32__ +#include +#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;