From 6e53c40522a6e258be088dddfcf9af86467442d7 Mon Sep 17 00:00:00 2001 From: Antonio Ospite Date: Fri, 2 Dec 2016 17:18:38 +0100 Subject: [PATCH] vidi/Player.py: use per message callbacks --- vidi/Player.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/vidi/Player.py b/vidi/Player.py index cf30f9f..d2eacef 100755 --- a/vidi/Player.py +++ b/vidi/Player.py @@ -30,9 +30,11 @@ GObject.threads_init() class Player(object): def __init__(self, pipeline): self.pipeline = pipeline + bus = self.pipeline.get_bus() bus.add_signal_watch() - bus.connect("message", self.bus_message_cb) + bus.connect("message::eos", self.on_eos) + bus.connect('message::error', self.on_error) self.mainloop = GObject.MainLoop() @@ -41,9 +43,13 @@ class Player(object): pipeline = Gst.parse_launch(pipeline_string) return Player(pipeline) - def bus_message_cb(self, unused_bus, message): - if message.type == Gst.MessageType.EOS: - self.stop() + def on_eos(self, bus, message): + self.stop() + + def on_error(self, bus, msg): + (err, debug) = msg.parse_error() + print("Error: %s" % err) + self.stop() def play(self): self.pipeline.set_state(Gst.State.PLAYING) -- 2.1.4