Comment 20 for bug 893719

Revision history for this message
Gleb Smirnoff (glebius) wrote :

Okay, there several places where MLT Producer isn't checked for being valid and used later:

thumbnail.py
cli_render.py
video.py

My crash is related to video.py.

Attached patch _tries_ to fix the problem. However, in the video.py case my fix is insufficient - although I return and don't use producer immediately, I still get a crash later:

(gdb) bt
#0 mlt_properties_get (self=0x0, name=0x80cd0f57a "eof")
    at mlt_properties.c:484
#1 0x000000080cd03b0f in mlt_producer_seek (self=0x0, position=0)
    at mlt_producer.c:296
#2 0x000000080cae3f7e in Mlt::Producer::seek (this=0x81b9ab0a0, position=0)
    at MltProducer.cpp:111
#3 0x000000080c88a5d4 in _wrap_Producer_seek (args=0x81ba24e18)
    at mlt_wrap.cxx:11636
#4 0x0000000000483ba8 in PyEval_EvalFrameEx ()
....

From a quick glance I don't see a proper path to return failure to upper functions: load_profile, load_xml, etc... These functions are expect to succeed always. So, I suppose, later the object is called again and MLT code is entered.

I don't have enough time and python skills to write a more thorough patch, that would touch more code :(