gst.Event: Add override for step event

This commit is contained in:
Edward Hervey 2009-07-01 12:28:52 +02:00
parent a018096a7c
commit f1bbb486ae
2 changed files with 39 additions and 0 deletions

View file

@ -261,3 +261,27 @@ _wrap_gst_event_new_tag(PyObject *self, PyObject *args, PyObject *kwargs)
gst_mini_object_unref((GstMiniObject *)ret);
return py_ret;
}
%%
override gst_event_parse_step noargs
static PyObject *
_wrap_gst_event_parse_step (PyGstMiniObject * self)
{
GstFormat format;
guint64 amount;
gdouble rate;
gboolean flush, intermediate;
if (GST_EVENT_TYPE (self->obj) != GST_EVENT_STEP) {
PyErr_SetString(PyExc_TypeError, "Event is not a 'step' event");
return NULL;
}
gst_event_parse_step (GST_EVENT (self->obj), &format, &amount, &rate,
&flush, &intermediate);
return Py_BuildValue("OKdOO",
pyg_enum_from_gtype (GST_TYPE_FORMAT, format),
amount, rate,
PyBool_FromLong(flush),
PyBool_FromLong(intermediate));
}

View file

@ -225,5 +225,20 @@ class TestDelayedEventProbe(TestCase):
# now let the buffer through
return True
class TestEventCreationParsing(TestCase):
def testEventStep(self):
if hasattr(gst.Event, "parse_step"):
e = gst.event_new_step(gst.FORMAT_TIME, 42, 1.0, True, True)
self.assertEquals(e.type, gst.EVENT_STEP)
fmt, amount, rate, flush, intermediate = e.parse_step()
self.assertEquals(fmt, gst.FORMAT_TIME)
self.assertEquals(amount, 42)
self.assertEquals(rate, 1.0)
self.assertEquals(flush, True)
self.assertEquals(intermediate, True)
if __name__ == "__main__":
unittest.main()