diff options
author | MaZderMind <peter@mazdermind.de> | 2014-08-21 20:07:11 +0200 |
---|---|---|
committer | MaZderMind <peter@mazdermind.de> | 2014-08-21 20:07:11 +0200 |
commit | deea0738f04d3d78bee54d4baeb2bff6e248fc02 (patch) | |
tree | 125948451c1ea7665d402ff86e6969eac8947489 /voctocore/experiments/startuptest/testbin.py | |
parent | d9ebf19d0cfdaf2a68f29f85b0e3156e41e61cbc (diff) |
add example-testcase for the startup-problem
Diffstat (limited to 'voctocore/experiments/startuptest/testbin.py')
-rw-r--r-- | voctocore/experiments/startuptest/testbin.py | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/voctocore/experiments/startuptest/testbin.py b/voctocore/experiments/startuptest/testbin.py new file mode 100644 index 0000000..e234b55 --- /dev/null +++ b/voctocore/experiments/startuptest/testbin.py @@ -0,0 +1,41 @@ +#!/usr/bin/python3 +import time +from gi.repository import GLib, Gst + +class TestBin(Gst.Bin): + def __init__(self): + super().__init__() + self.set_name('testbin') + + # Create elements + self.shmsrc = Gst.ElementFactory.make('shmsrc', None) + + # Add elements to Bin + self.add(self.shmsrc) + + self.shmsrc.set_property('socket-path', '/tmp/grabber-v') + self.shmsrc.set_property('is-live', True) + self.shmsrc.set_property('do-timestamp', True) + + # Install pad probes + self.shmsrc.get_static_pad('src').add_probe(Gst.PadProbeType.BLOCK | Gst.PadProbeType.EVENT_DOWNSTREAM, self.event_probe, None) + self.shmsrc.get_static_pad('src').add_probe(Gst.PadProbeType.BLOCK | Gst.PadProbeType.BUFFER, self.data_probe, None) + + def do_handle_message(self, msg): + if msg.type == Gst.MessageType.ERROR: + print("do_handle_message(): dropping error") + return + + print("do_handle_message()", msg.src, msg.type) + Gst.Bin.do_handle_message(self, msg) + + def event_probe(self, pad, info, ud): + e = info.get_event() + if e.type == Gst.EventType.EOS: + return Gst.PadProbeReturn.DROP + + return Gst.PadProbeReturn.PASS + + def data_probe(self, pad, info, ud): + self.last_buffer_arrived = time.time() + return Gst.PadProbeReturn.PASS |