← Back to team overview

openshot.bugs team mailing list archive

[Bug 893719] Re: incorrect usage of MLT API

 

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 :(

-- 
You received this bug notification because you are a member of OpenShot
Bugs, which is subscribed to OpenShot Video Editor.
https://bugs.launchpad.net/bugs/893719

Title:
  incorrect usage of MLT API

Status in OpenShot Video Editor:
  New

Bug description:
  Running OpenShot 1.4.0 linked to mlt-0.7.6 on FreeBSD 10. This works
  fine when source files for example are DV dumps. However, trying to
  use AVI file produced by Nikon D90 is causing a crash.

  Backtrace and some additional info:

  (gdb) bt
  #0 mlt_properties_get_double (self=0x0, name=0x80c0da573 "_speed")
  at mlt_properties.c:484
  #1 0x000000080beaed58 in Mlt::Producer::get_speed (this=0x81bce8100)
  at MltProducer.cpp:149
  #2 0x000000080beaedcd in Mlt::Producer::pause (this=0x81bce8100)
  at MltProducer.cpp:133
  #3 0x000000080bc6435b in frame_get_image ()
  from /usr/local/lib/python2.6/site-packages/_mlt.so
  #4 0x000000000047d28d in PyEval_EvalFrameEx ()
  #5 0x000000000047e134 in PyEval_EvalFrameEx ()
  #6 0x000000000047e134 in PyEval_EvalFrameEx ()
  #7 0x000000000047e134 in PyEval_EvalFrameEx ()
  #8 0x000000000047e134 in PyEval_EvalFrameEx ()
  #9 0x000000000047e134 in PyEval_EvalFrameEx ()
  #10 0x000000000047eae1 in PyEval_EvalCodeEx ()
  #11 0x00000000004c824d in PyClassMethod_New ()
  #12 0x0000000000417ecd in PyObject_Call ()
  #13 0x000000000041d86d in PyClass_IsSubclass ()
  #14 0x0000000000417ecd in PyObject_Call ()
  #15 0x0000000000477eb6 in PyEval_CallObjectWithKeywords ()
  #16 0x0000000803ae46b6 in init_gobject ()
  from /usr/local/lib/python2.6/site-packages/gobject/_gobject.so
  #17 0x000000080202554f in g_closure_invoke ()
  from /usr/local/lib/libgobject-2.0.so.0
  #18 0x000000080203c521 in g_signal_handlers_block_matched ()
  from /usr/local/lib/libgobject-2.0.so.0
  #19 0x000000080203e0b2 in g_signal_emit_valist ()
  from /usr/local/lib/libgobject-2.0.so.0
  #20 0x000000080203e688 in g_signal_emit_by_name ()
  from /usr/local/lib/libgobject-2.0.so.0
  #21 0x000000080e4adf00 in propagate_event ()
  from /usr/local/lib/libgoocanvas.so.3
  #22 0x000000080e4ae191 in emit_pointer_event ()
  from /usr/local/lib/libgoocanvas.so.3
  #23 0x00000008042d50cf in gtk_marshal_BOOLEAN__VOID ()
  from /usr/local/lib/libgtk-x11-2.0.so.0
  #24 0x000000080202554f in g_closure_invoke ()
  from /usr/local/lib/libgobject-2.0.so.0
  #25 0x000000080203c6eb in g_signal_handlers_block_matched ()
  from /usr/local/lib/libgobject-2.0.so.0
  #26 0x000000080203e0b2 in g_signal_emit_valist ()
  from /usr/local/lib/libgobject-2.0.so.0
  #27 0x000000080203e7c3 in g_signal_emit ()
  from /usr/local/lib/libgobject-2.0.so.0
  #28 0x00000008043e48b5 in gtk_widget_style_attach ()
  from /usr/local/lib/libgtk-x11-2.0.so.0
  #29 0x00000008042cdd29 in gtk_propagate_event ()
  from /usr/local/lib/libgtk-x11-2.0.so.0
  #30 0x00000008042cee57 in gtk_main_do_event ()
  from /usr/local/lib/libgtk-x11-2.0.so.0
  #31 0x0000000804805bac in gdk_add_client_message_filter ()
  from /usr/local/lib/libgdk-x11-2.0.so.0
  #32 0x00000008024a37f3 in g_main_context_dispatch ()
  from /usr/local/lib/libglib-2.0.so.0
  #33 0x00000008024a7812 in g_main_context_prepare ()
  from /usr/local/lib/libglib-2.0.so.0
  #34 0x00000008024a7c05 in g_main_loop_run ()
  from /usr/local/lib/libglib-2.0.so.0
  #35 0x00000008042cf1f3 in gtk_main () from /usr/local/lib/libgtk-x11-2.0.so.0
  #36 0x0000000803e99dbd in init_gtk ()
  from /usr/local/lib/python2.6/site-packages/gtk-2.0/gtk/_gtk.so
  #37 0x000000000047c914 in PyEval_EvalFrameEx ()
  #38 0x000000000047e134 in PyEval_EvalFrameEx ()
  #39 0x000000000047e134 in PyEval_EvalFrameEx ()
  #40 0x000000000047eae1 in PyEval_EvalCodeEx ()
  #41 0x000000000047ebc2 in PyEval_EvalCode ()
  #42 0x0000000000498462 in Py_CompileString ()
  #43 0x0000000000498536 in PyRun_FileExFlags ()
  #44 0x00000000004999bf in PyRun_SimpleFileExFlags ()
  #45 0x0000000000413dd3 in Py_Main ()
  #46 0x00000000004131ea in main ()
  (gdb) fr 0
  #0 mlt_properties_get_double (self=0x0, name=0x80c0da573 "_speed")
  at mlt_properties.c:484
  484 property_list *list = self->local;
  (gdb) fr 1
  #1 0x000000080beaed58 in Mlt::Producer::get_speed (this=0x81bce8100)
  at MltProducer.cpp:149
  149 return mlt_producer_get_speed( get_producer( ) );
  (gdb) fr 2
  #2 0x000000080beaedcd in Mlt::Producer::pause (this=0x81bce8100)
  at MltProducer.cpp:133
  133 if ( get_speed() != 0 )
  (gdb) fr 3
  #3 0x000000080bc6435b in frame_get_image ()
  from /usr/local/lib/python2.6/site-packages/_mlt.so

  I can put an example AVI on the http somewhere if it would help.

  Initially I've filed this report in the MLT bug repository, but MLT
  developer noticed that invalid mlt.Producer was passed to API. He
  thinks that problem should be fixed on the side of OpenShot:

  https://sourceforge.net/tracker/index.php?func=detail&aid=3441193&group_id=96039&atid=613414

To manage notifications about this bug go to:
https://bugs.launchpad.net/openshot/+bug/893719/+subscriptions


References