diff options
-rw-r--r-- | gst/gstelement.override | 5 | ||||
-rw-r--r-- | gst/gstmessage.override | 8 | ||||
-rw-r--r-- | gst/gstpad.override | 15 |
3 files changed, 21 insertions, 7 deletions
diff --git a/gst/gstelement.override b/gst/gstelement.override index 7cc0d03..e8dc0ab 100644 --- a/gst/gstelement.override +++ b/gst/gstelement.override @@ -232,7 +232,10 @@ pad_name_from_object (PyObject *object, const gchar **name) *name = PyString_AsString (object); return TRUE; } else if (pygobject_check (object, &PyGstPad_Type)) { - *name = gst_object_get_name (GST_OBJECT (pygobject_get (object))); + GstObject *obj = GST_OBJECT (pygobject_get (object)); + pyg_begin_allow_threads; + *name = gst_object_get_name (obj); + pyg_end_allow_threads; return TRUE; } PyErr_SetString(PyExc_TypeError, "argument could not be converted to a pad"); diff --git a/gst/gstmessage.override b/gst/gstmessage.override index 7568522..a383fd0 100644 --- a/gst/gstmessage.override +++ b/gst/gstmessage.override @@ -35,7 +35,13 @@ _wrap_gst_message_tp_repr (PyGstMiniObject *self) structure_str = msg->structure ? gst_structure_to_string (msg->structure) : g_strdup ("(none)"); - src_str = msg->src ? gst_object_get_name (msg->src) : g_strdup ("(no src)"); + if (msg->src) { + pyg_begin_allow_threads; + src_str = gst_object_get_name (msg->src); + pyg_end_allow_threads; + } else { + src_str = g_strdup ("(no src)"); + } repr = g_strdup_printf ("<gst.Message %s from %s at %p>", structure_str, src_str, msg); diff --git a/gst/gstpad.override b/gst/gstpad.override index 930019f..2e32f60 100644 --- a/gst/gstpad.override +++ b/gst/gstpad.override @@ -656,24 +656,29 @@ _wrap_gst_pad_tp_repr (PyGObject *self) gchar *elementname = NULL; pad = GST_PAD(self->obj); - parent = GST_ELEMENT (gst_pad_get_parent (pad)); - + + pyg_begin_allow_threads; padname = gst_pad_get_name (pad); + + parent = GST_ELEMENT (gst_pad_get_parent (pad)); if (parent) - elementname = gst_element_get_name (parent); + elementname = gst_element_get_name (parent); buf = g_strdup_printf ("<GstPad (%s:%s) at %lx>", parent ? elementname : "---", padname, (long) self->obj); + g_free(padname); + if (parent) { gst_object_unref (parent); - g_free(elementname); + g_free(elementname); } - g_free(padname); + pyg_end_allow_threads; retval = PyString_FromString(buf); g_free(buf); + return retval; } |