gst.Event: Add override for step event
authorEdward Hervey <bilboed@bilboed.com>
Wed, 1 Jul 2009 10:28:52 +0000 (12:28 +0200)
committerEdward Hervey <bilboed@bilboed.com>
Wed, 1 Jul 2009 10:30:40 +0000 (12:30 +0200)
gst/gstevent.override
testsuite/test_event.py

index b2eb455..97ba7cb 100644 (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));
+}
index 4b46dc6..6a4860d 100644 (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()