Bug#662856: pitivi: singledecodebin.py infinite loop problems

Art O. utrrrongeeb at users.sf.net
Thu May 3 02:21:32 UTC 2012


Package: pitivi
Version: 0.15.0-1
Followup-For: Bug #662856

I believe this problem has been fixed in Pitivi 0.15.1, which is announced as follows:
"|This is a special bug fix release to prevent PiTiVi from entering an endless
recursion, due to a change introduced in the GStreamer "good" plugins.
This ensures PiTiVi keeps working with the latest gst releases.|"
at <http://git.gnome.org/browse/pitivi/tree/RELEASE>.
This version does not appear to be in any Debian repositories yet.

I as well have experienced this bug on my system, affecting h.264 video in MP4, MOV, or MKV containers like Mr Scherping. As 
As Mr Terceiro noted, affected files, once in the Clips section, will correctly play back individually, but when dragged to the timeline thumbnails aren't generated, project playback doesn't work, and rendering fails.
The associated audio track's waveform preview does appear eventually, though. Disabling thumbnailing has no effect on the rendering or playback problems.
The error output is appended further below.

Until the new version 0.15.1 becomes available in the Debian repository, users wishing to return to video editing have at least two workaround options.
a) Ubuntu has Pitivi 0.15.1 in its repositories for Precise Pangolin [this is how I discovered the bug had been fixed]; the deb may be compatible.
b) Replacing /usr/lib/pitivi/python/pitivi/elements/singledecodebin.py with the newest (fixed) version of the file (from GNOME's git, or the previously-described Ubuntu package) has temporarily solved the problem, in my experience.
Neither of these is a substitute for 0.15.1 becoming available in Wheezy, of course.
The diff between singledecodebin.py in 0.15.0 and 0.15.1 follows: --------------
108a109
>         self._usedfactories = []
214a216,219
>             # Never plug the same factory more than once (endless loop!)
>             if factory in self._usedfactories:
>                 continue
> 
231a237,238
> 
>             self._usedfactories.append (factory)
----------------(end of diff)



Output to stderr:------------------------------
RuntimeError: maximum recursion depth exceeded
Traceback (most recent call last):
  File "/usr/lib/pitivi/python/pitivi/elements/singledecodebin.py", line 409, in _dynamicPadAddedCb
    self._closePadLink(element, pad, pad.get_caps())
  File "/usr/lib/pitivi/python/pitivi/elements/singledecodebin.py", line 280, in _closePadLink
    self._tryToLink1(element, pad, facts)
  File "/usr/lib/pitivi/python/pitivi/elements/singledecodebin.py", line 233, in _tryToLink1
    self._closeLink(element)
  File "/usr/lib/pitivi/python/pitivi/elements/singledecodebin.py", line 169, in _closeLink
    self._closePadLink(element, pad, pad.get_caps())
  File "/usr/lib/pitivi/python/pitivi/elements/singledecodebin.py", line 280, in
 _closePadLink
    self._tryToLink1(element, pad, facts)
  File "/usr/lib/pitivi/python/pitivi/elements/singledecodebin.py", line 233, in
 _tryToLink1
    self._closeLink(element)
  File "/usr/lib/pitivi/python/pitivi/elements/singledecodebin.py", line 169, in
 _closeLink
    self._closePadLink(element, pad, pad.get_caps())
  File "/usr/lib/pitivi/python/pitivi/elements/singledecodebin.py", line 280, in _closePadLink
    self._tryToLink1(element, pad, facts)
  File "/usr/lib/pitivi/python/pitivi/elements/singledecodebin.py", line 233, in _tryToLink1
    self._closeLink(element)
  File "/usr/lib/pitivi/python/pitivi/elements/singledecodebin.py", line 169, in _closeLink
    self._closePadLink(element, pad, pad.get_caps())
----------------------(These errors continue, very similarly for quite a while. Then, to finish:)
  File "/usr/lib/pitivi/python/pitivi/elements/singledecodebin.py", line 169, in _closeLink
    self._closePadLink(element, pad, pad.get_caps())
  File "/usr/lib/pitivi/python/pitivi/elements/singledecodebin.py", line 263, in _closePadLink
    elif is_raw(caps) and pad_compatible_stream(pad, self.stream):
RuntimeError: maximum recursion depth exceeded
----------------------(Then, repeated many times with different numbers:)
(pitivi:20395): GStreamer-CRITICAL **: 
Trying to dispose element queue2, but it is in PLAYING instead of the NULL state
.
You need to explicitly set elements to the NULL state before
dropping the final reference, to allow them to clean up.
This problem may also be caused by a refcounting bug in the
application or some element.


(pitivi:20395): GStreamer-CRITICAL **: 
Trying to dispose element h264parse1328, but it is in PLAYING instead of the NUL
L state.
You need to explicitly set elements to the NULL state before
dropping the final reference, to allow them to clean up.
This problem may also be caused by a refcounting bug in the
application or some element.


(pitivi:20395): GStreamer-CRITICAL **: 
Trying to dispose element h264parse1325, but it is in PLAYING instead of the NULL state.
You need to explicitly set elements to the NULL state before
dropping the final reference, to allow them to clean up.
This problem may also be caused by a refcounting bug in the
application or some element.
-----------------------end of example error output


[Debian Wheezy, Linux kernel 3.2.0-2-amd64]

--
Art Ortenburger
<utrrrongeeb at users.sf.net>


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.alioth.debian.org/pipermail/pkg-gstreamer-maintainers/attachments/20120502/3fffa95f/attachment.html>


More information about the pkg-gstreamer-maintainers mailing list