[pitivi: 5/6] SingleDecodeBin: prevent endless loop with new parsers
- From: Jean-FranÃois Fortin Tam <jfft src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [pitivi: 5/6] SingleDecodeBin: prevent endless loop with new parsers
- Date: Fri, 24 Feb 2012 15:48:19 +0000 (UTC)
commit 0f0389dd3e02cf9847b8b673fbbdab6c9d703200
Author: Renà Stadler <rene stadler collabora co uk>
Date: Fri Oct 21 13:53:29 2011 +0200
SingleDecodeBin: prevent endless loop with new parsers
Parsers also accept their output as input now, so the old autoplugging logic
causes an infinite loop.
Fixes bug #662311.
pitivi/elements/singledecodebin.py | 7 +++++++
1 files changed, 7 insertions(+), 0 deletions(-)
---
diff --git a/pitivi/elements/singledecodebin.py b/pitivi/elements/singledecodebin.py
index 5296c40..3deede0 100644
--- a/pitivi/elements/singledecodebin.py
+++ b/pitivi/elements/singledecodebin.py
@@ -106,6 +106,7 @@ class SingleDecodeBin(gst.Bin):
self._dynamics = []
self._validelements = [] # added elements
+ self._usedfactories = []
self.debug("stream:%r" % self.stream)
@@ -212,6 +213,10 @@ class SingleDecodeBin(gst.Bin):
result = None
for factory in factories:
+ # Never plug the same factory more than once (endless loop!)
+ if factory in self._usedfactories:
+ continue
+
element = factory.create()
if not element:
self.warning("weren't able to create element from %r" % factory)
@@ -230,6 +235,8 @@ class SingleDecodeBin(gst.Bin):
self.remove(element)
continue
+ self._usedfactories.append (factory)
+
self._closeLink(element)
element.set_state(gst.STATE_PAUSED)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]