From cc7d031b5e9480f9cb9019b4851d463161949de3 Mon Sep 17 00:00:00 2001 From: Thomas Vander Stichele Date: Sun, 18 Nov 2012 13:06:59 +0000 Subject: [PATCH] * gstreamer.py: Only set an exception once in bus_error_cb. Was triggered by morituri's checksum test, but only if multiple tests were run - got the same bus error twice. --- morituri/extern/task/ChangeLog | 8 ++++++++ morituri/extern/task/gstreamer.py | 4 ++++ 2 files changed, 12 insertions(+) diff --git a/morituri/extern/task/ChangeLog b/morituri/extern/task/ChangeLog index 306e644..131b76f 100644 --- a/morituri/extern/task/ChangeLog +++ b/morituri/extern/task/ChangeLog @@ -1,3 +1,11 @@ +2012-11-18 Thomas Vander Stichele + + * gstreamer.py: + Only set an exception once in bus_error_cb. + Was triggered by morituri's checksum test, but only + if multiple tests were run - got the same bus error + twice. + 2012-07-12 Thomas Vander Stichele * task.py: diff --git a/morituri/extern/task/gstreamer.py b/morituri/extern/task/gstreamer.py index 7fac387..35efbed 100644 --- a/morituri/extern/task/gstreamer.py +++ b/morituri/extern/task/gstreamer.py @@ -209,6 +209,10 @@ class GstPipelineTask(task.Task): Called synchronously (ie from messaging thread) on error message. """ self.debug('bus_error_cb: bus %r, message %r' % (bus, message)) + if self.exception: + self.debug('bus_error_cb: already got an exception, ignoring') + return + exc = GstException(*message.parse_error()) self.setAndRaiseException(exc) self.debug('error, scheduling stop')