summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--gst/gstelementfactory.override6
2 files changed, 13 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 7f36b2c..0a296de 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2008-04-28 Edward Hervey <edward.hervey@collabora.co.uk>
+
+ Patch by: Alessandro Decina <alessandro at nnva dot org>
+ * gst/gstelementfactory.override:
+ Release GIL in gst_element_factory_overrides.
+ Fixes #529731
+
2008-04-24 Jan Schmidt <Jan.Schmidt@sun.com>
* examples/play.py:
diff --git a/gst/gstelementfactory.override b/gst/gstelementfactory.override
index e238f4f..8db8099 100644
--- a/gst/gstelementfactory.override
+++ b/gst/gstelementfactory.override
@@ -33,7 +33,11 @@ _wrap_gst_element_factory_make(PyObject *self, PyObject *args, PyObject *kwargs)
if (!PyArg_ParseTupleAndKeywords(args, kwargs, "s|z:element_factory_make", kwlist, &factoryname, &name))
return NULL;
+
+ pyg_begin_allow_threads;
ret = gst_element_factory_make(factoryname, name);
+ pyg_end_allow_threads;
+
if (ret == NULL) {
PyErr_SetString(PyGstExc_ElementNotFoundError, factoryname);
return NULL;
@@ -52,7 +56,9 @@ _wrap_gst_element_factory_get_static_pad_templates(PyGObject *self)
PyObject *py_list;
int i = 0;
+ pyg_begin_allow_threads;
list = gst_element_factory_get_static_pad_templates (GST_ELEMENT_FACTORY (self->obj));
+ pyg_end_allow_threads;
py_list = PyList_New(g_list_length ((GList*) list));