mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-17 11:45:25 +00:00
New 'fancy' constructor for gst.Element, allows creating elements in a more pythonic way (i.e. myelement = gst.Elemen...
Original commit message from CVS: Patch by: Johan Dahlin <johan at gnome dot org> * gst/__init__.py: * gst/gstelement.override: * testsuite/test_element.py: New 'fancy' constructor for gst.Element, allows creating elements in a more pythonic way (i.e. myelement = gst.Element("oggmux")). Fixes #530417
This commit is contained in:
parent
5119268c19
commit
98d6484e8c
4 changed files with 41 additions and 0 deletions
10
ChangeLog
10
ChangeLog
|
@ -1,3 +1,13 @@
|
|||
2008-05-08 Edward Hervey <edward.hervey@collabora.co.uk>
|
||||
|
||||
Patch by: Johan Dahlin <johan at gnome dot org>
|
||||
* gst/__init__.py:
|
||||
* gst/gstelement.override:
|
||||
* testsuite/test_element.py:
|
||||
New 'fancy' constructor for gst.Element, allows creating elements in a
|
||||
more pythonic way (i.e. myelement = gst.Element("oggmux")).
|
||||
Fixes #530417
|
||||
|
||||
2008-05-08 Edward Hervey <edward.hervey@collabora.co.uk>
|
||||
|
||||
* gst/__init__.py:
|
||||
|
|
|
@ -148,6 +148,14 @@ if RTLD_GLOBAL != -1 and RTLD_LAZY != -1:
|
|||
except:
|
||||
pass
|
||||
|
||||
import gobject
|
||||
from _gst import _install_element_meta
|
||||
|
||||
_GstElementBaseMeta = getattr(gobject, 'GObjectMeta', type)
|
||||
class _GstElementMeta(_GstElementBaseMeta):
|
||||
__call__ = element_factory_make
|
||||
_install_element_meta(_GstElementMeta)
|
||||
|
||||
version = get_gst_version
|
||||
|
||||
sys.setdlopenflags(dlsave)
|
||||
|
|
|
@ -26,6 +26,22 @@ ignore
|
|||
gst_element_get_property
|
||||
gst_element_set_property
|
||||
%%
|
||||
define _install_element_meta
|
||||
static PyObject *
|
||||
_wrap__install_element_meta(PyObject *self, PyObject *args)
|
||||
{
|
||||
PyObject *metaclass;
|
||||
|
||||
if (!PyArg_ParseTuple(args, "O", &metaclass))
|
||||
return NULL;
|
||||
|
||||
Py_INCREF(metaclass);
|
||||
PyGstElement_Type.ob_type = (PyTypeObject*)metaclass;
|
||||
|
||||
Py_INCREF(Py_None);
|
||||
return Py_None;
|
||||
}
|
||||
%%
|
||||
override gst_element_get_pad_template args
|
||||
static PyObject *
|
||||
_wrap_gst_element_get_pad_template(PyGObject *self, PyObject *args)
|
||||
|
|
|
@ -40,6 +40,12 @@ class ElementTest(TestCase):
|
|||
assert isinstance(element, gst.Element)
|
||||
assert element.get_name() == self.alias
|
||||
|
||||
def testFancyConstructor(self):
|
||||
element = gst.Element(self.name, self.alias)
|
||||
self.failUnless(element, 'element is None')
|
||||
self.failUnless(isinstance(element, gst.Element))
|
||||
self.assertEquals(element.get_name(), self.alias)
|
||||
|
||||
## FIXME : Make a new test for state changes, using bus signals
|
||||
|
||||
## class FakeSinkTest(ElementTest):
|
||||
|
@ -147,6 +153,7 @@ class NonExistentTest(ElementTest):
|
|||
|
||||
testGoodConstructor = lambda s: None
|
||||
testGoodConstructor2 = lambda s: None
|
||||
testFancyConstructor = lambda s: None
|
||||
|
||||
class FileSrcTest(ElementTest):
|
||||
name = 'filesrc'
|
||||
|
|
Loading…
Reference in a new issue