Re: Clutter GST crash with Python



Hi,

On 10/22/2012 12:53 PM, Lespiau, Damien wrote:
On Sun, Oct 21, 2012 at 1:00 PM, Dirk Meyer <dischi freevo org> wrote:
self.pipeline = self.videotexture.get_pipeline()
self.pipeline.get_state(0)

it works until self is deleted due to garbage collection.

get_pipeline() is annotated with:

  Return value: (transfer none):

So the pygi should not unref the pointer it gets from get_pipeline. A
way to start debugging this problem could be to break on
clutter_gst_video_texture_finalize() and see where it is called from?
(well, assuming this is the problem).

How can I hook into this with gdb running a Python program? Anyway, I
reduced my code to a very small snippet und it still crashes. This time with

(python:23263): GStreamer-CRITICAL **:
Trying to dispose element pipeline, but it is in READY 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.

This sounds to me that pipeline is unrefed too often, the player should
still be running. Just call the attached code with a video file as
parameter. The code works with Ubuntu 12.04 and crashes with 12.10
(clutter versions in my previous post). Changing the print
media.get_pipeline() to self.pipeline = media.get_pipeline() works.


Regards,

Dirk

-- 
Clothes make the man. Naked people have little or no influence on
society. - Mark Twain

Attachment: vcrash.py
Description: Text Data



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]