summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gst/gstelement.override5
-rw-r--r--gst/gstmessage.override8
-rw-r--r--gst/gstpad.override15
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;
}