diff --git a/gi/overrides/Gst.py b/gi/overrides/Gst.py index 1e3cca51d2..392fd31f4e 100644 --- a/gi/overrides/Gst.py +++ b/gi/overrides/Gst.py @@ -77,6 +77,26 @@ class Caps(Gst.Caps): Caps = override(Caps) __all__.append('Caps') +class IteratorError(Exception): + pass +__all__.append('IteratorError') + +class Iterator(Gst.Iterator): + def __iter__(self): + while True: + result, value = self.next() + if result == Gst.IteratorResult.DONE: + break + + if result != Gst.IteratorResult.OK: + raise IteratorError(result) + + yield value + +Iterator = override(Iterator) +__all__.append('Iterator') + + class ElementFactory(Gst.ElementFactory): # ElementFactory