Package: libmlt6
Version: 0.9.2-2
Severity: important

Trying to use openshot to put together a simple sequence of videos but
it crashes or hangs after a few minutes. It seems to be when changes are
made and the timeline cursor is reposioned. This pretty much makes
openshot unusable.

Valgrind shows repeated memory corruption during this period resulting
from free in mlt_frame_close:

==25301== Invalid write of size 4
==25301==    at 0x241E76F2: av_frame_unref (in 
/usr/lib/x86_64-linux-gnu/libavutil.so.54.3.0)
==25301==    by 0x23341907: avcodec_decode_video2 (in 
/usr/lib/x86_64-linux-gnu/libavcodec.so.56.1.0)
==25301==    by 0x28F6624D: producer_get_image (in 
/usr/lib/x86_64-linux-gnu/mlt/libmltavformat.so)
==25301==    by 0x1015E356: mlt_frame_get_image (in 
/usr/lib/x86_64-linux-gnu/libmlt.so.0.9.2)
==25301==    by 0x1C3E7DD4: filter_get_image (in 
/usr/lib/x86_64-linux-gnu/mlt/libmltxine.so)
==25301==    by 0x1015E356: mlt_frame_get_image (in 
/usr/lib/x86_64-linux-gnu/libmlt.so.0.9.2)
==25301==    by 0x135EC105: get_image (in 
/usr/lib/x86_64-linux-gnu/mlt/libmltcore.so)
==25301==    by 0x1015E356: mlt_frame_get_image (in 
/usr/lib/x86_64-linux-gnu/libmlt.so.0.9.2)
==25301==    by 0x135EADAD: filter_get_image (in 
/usr/lib/x86_64-linux-gnu/mlt/libmltcore.so)
==25301==    by 0x1015E356: mlt_frame_get_image (in 
/usr/lib/x86_64-linux-gnu/libmlt.so.0.9.2)
==25301==    by 0x135F03F0: filter_get_image (in 
/usr/lib/x86_64-linux-gnu/mlt/libmltcore.so)
==25301==    by 0x1015E356: mlt_frame_get_image (in 
/usr/lib/x86_64-linux-gnu/libmlt.so.0.9.2)
==25301==  Address 0x2a585ea0 is 576 bytes inside a block of size 584 free'd
==25301==    at 0x4C29E90: free (vg_replace_malloc.c:473)
==25301==    by 0x28F61CD3: producer_avformat_close (in 
/usr/lib/x86_64-linux-gnu/mlt/libmltavformat.so)
==25301==    by 0x10177B4D: cache_object_close (in 
/usr/lib/x86_64-linux-gnu/libmlt.so.0.9.2)
==25301==    by 0x10177BF7: mlt_cache_item_close (in 
/usr/lib/x86_64-linux-gnu/libmlt.so.0.9.2)
==25301==    by 0x101624F8: mlt_property_close (in 
/usr/lib/x86_64-linux-gnu/libmlt.so.0.9.2)
==25301==    by 0x1016473F: mlt_properties_close (in 
/usr/lib/x86_64-linux-gnu/libmlt.so.0.9.2)
==25301==    by 0x1015DD6B: mlt_frame_close (in 
/usr/lib/x86_64-linux-gnu/libmlt.so.0.9.2)
==25301==    by 0x101624F8: mlt_property_close (in 
/usr/lib/x86_64-linux-gnu/libmlt.so.0.9.2)
==25301==    by 0x1016473F: mlt_properties_close (in 
/usr/lib/x86_64-linux-gnu/libmlt.so.0.9.2)
==25301==    by 0x1015DD6B: mlt_frame_close (in 
/usr/lib/x86_64-linux-gnu/libmlt.so.0.9.2)
==25301==    by 0x1796A41E: video_thread (in 
/usr/lib/x86_64-linux-gnu/mlt/libmltsdl.so)
==25301==    by 0x4E3D0A3: start_thread (pthread_create.c:309)
==25301== 

==25301== Invalid write of size 8
==25301==    at 0x241E76C6: av_frame_unref (in 
/usr/lib/x86_64-linux-gnu/libavutil.so.54.3.0)
==25301==    by 0x23341907: avcodec_decode_video2 (in 
/usr/lib/x86_64-linux-gnu/libavcodec.so.56.1.0)
==25301==    by 0x28F6624D: producer_get_image (in 
/usr/lib/x86_64-linux-gnu/mlt/libmltavformat.so)
==25301==    by 0x1015E356: mlt_frame_get_image (in 
/usr/lib/x86_64-linux-gnu/libmlt.so.0.9.2)
==25301==    by 0x1C3E7DD4: filter_get_image (in 
/usr/lib/x86_64-linux-gnu/mlt/libmltxine.so)
==25301==    by 0x1015E356: mlt_frame_get_image (in 
/usr/lib/x86_64-linux-gnu/libmlt.so.0.9.2)
==25301==    by 0x135EC105: get_image (in 
/usr/lib/x86_64-linux-gnu/mlt/libmltcore.so)
==25301==    by 0x1015E356: mlt_frame_get_image (in 
/usr/lib/x86_64-linux-gnu/libmlt.so.0.9.2)
==25301==    by 0x135EADAD: filter_get_image (in 
/usr/lib/x86_64-linux-gnu/mlt/libmltcore.so)
==25301==    by 0x1015E356: mlt_frame_get_image (in 
/usr/lib/x86_64-linux-gnu/libmlt.so.0.9.2)
==25301==    by 0x135F03F0: filter_get_image (in 
/usr/lib/x86_64-linux-gnu/mlt/libmltcore.so)
==25301==    by 0x1015E356: mlt_frame_get_image (in 
/usr/lib/x86_64-linux-gnu/libmlt.so.0.9.2)
==25301==  Address 0x2a585cc0 is 96 bytes inside a block of size 584 free'd
==25301==    at 0x4C29E90: free (vg_replace_malloc.c:473)
==25301==    by 0x28F61CD3: producer_avformat_close (in 
/usr/lib/x86_64-linux-gnu/mlt/libmltavformat.so)
==25301==    by 0x10177B4D: cache_object_close (in 
/usr/lib/x86_64-linux-gnu/libmlt.so.0.9.2)
==25301==    by 0x10177BF7: mlt_cache_item_close (in 
/usr/lib/x86_64-linux-gnu/libmlt.so.0.9.2)
==25301==    by 0x101624F8: mlt_property_close (in 
/usr/lib/x86_64-linux-gnu/libmlt.so.0.9.2)
==25301==    by 0x1016473F: mlt_properties_close (in 
/usr/lib/x86_64-linux-gnu/libmlt.so.0.9.2)
==25301==    by 0x1015DD6B: mlt_frame_close (in 
/usr/lib/x86_64-linux-gnu/libmlt.so.0.9.2)
==25301==    by 0x101624F8: mlt_property_close (in 
/usr/lib/x86_64-linux-gnu/libmlt.so.0.9.2)
==25301==    by 0x1016473F: mlt_properties_close (in 
/usr/lib/x86_64-linux-gnu/libmlt.so.0.9.2)
==25301==    by 0x1015DD6B: mlt_frame_close (in 
/usr/lib/x86_64-linux-gnu/libmlt.so.0.9.2)
==25301==    by 0x1796A41E: video_thread (in 
/usr/lib/x86_64-linux-gnu/mlt/libmltsdl.so)
==25301==    by 0x4E3D0A3: start_thread (pthread_create.c:309)

==5042== Invalid write of size 4
==5042==    at 0x10163DBC: mlt_frame_close (in 
/usr/lib/x86_64-linux-gnu/libmlt.so.0.9.2)
==5042==    by 0x133E1DBA: producer_avformat_close (in 
/usr/lib/x86_64-linux-gnu/mlt/libmltavformat.so)
==5042==    by 0x1017DBFD: cache_object_close (in 
/usr/lib/x86_64-linux-gnu/libmlt.so.0.9.2)
==5042==    by 0x1017DE9C: mlt_cache_purge (in 
/usr/lib/x86_64-linux-gnu/libmlt.so.0.9.2)
==5042==    by 0x10171006: mlt_service_cache_purge (in 
/usr/lib/x86_64-linux-gnu/libmlt.so.0.9.2)
==5042==    by 0x133E1C78: producer_close (in 
/usr/lib/x86_64-linux-gnu/mlt/libmltavformat.so)
==5042==    by 0x10168578: mlt_property_close (in 
/usr/lib/x86_64-linux-gnu/libmlt.so.0.9.2)
==5042==    by 0x1016A7BF: mlt_properties_close (in 
/usr/lib/x86_64-linux-gnu/libmlt.so.0.9.2)
==5042==    by 0x10171591: mlt_producer_close (in 
/usr/lib/x86_64-linux-gnu/libmlt.so.0.9.2)
==5042==    by 0x1017379A: mlt_playlist_close (in 
/usr/lib/x86_64-linux-gnu/libmlt.so.0.9.2)
==5042==    by 0x10170C35: mlt_service_close (in 
/usr/lib/x86_64-linux-gnu/libmlt.so.0.9.2)
==5042==    by 0x10171591: mlt_producer_close (in 
/usr/lib/x86_64-linux-gnu/libmlt.so.0.9.2)
==5042==  Address 0xe0e95f4 is 84 bytes inside a block of size 88 free'd
==5042==    at 0x4C29E90: free (vg_replace_malloc.c:473)
==5042==    by 0x10163DBB: mlt_frame_close (in 
/usr/lib/x86_64-linux-gnu/libmlt.so.0.9.2)
==5042==    by 0x133E1DBA: producer_avformat_close (in 
/usr/lib/x86_64-linux-gnu/mlt/libmltavformat.so)
==5042==    by 0x1017DBFD: cache_object_close (in 
/usr/lib/x86_64-linux-gnu/libmlt.so.0.9.2)
==5042==    by 0x1017DE9C: mlt_cache_purge (in 
/usr/lib/x86_64-linux-gnu/libmlt.so.0.9.2)
==5042==    by 0x10171006: mlt_service_cache_purge (in 
/usr/lib/x86_64-linux-gnu/libmlt.so.0.9.2)
==5042==    by 0x133E1C78: producer_close (in 
/usr/lib/x86_64-linux-gnu/mlt/libmltavformat.so)
==5042==    by 0x10168578: mlt_property_close (in 
/usr/lib/x86_64-linux-gnu/libmlt.so.0.9.2)
==5042==    by 0x1016A7BF: mlt_properties_close (in 
/usr/lib/x86_64-linux-gnu/libmlt.so.0.9.2)
==5042==    by 0x10171591: mlt_producer_close (in 
/usr/lib/x86_64-linux-gnu/libmlt.so.0.9.2)
==5042==    by 0x1017379A: mlt_playlist_close (in 
/usr/lib/x86_64-linux-gnu/libmlt.so.0.9.2)
==5042==    by 0x10170C35: mlt_service_close (in 
/usr/lib/x86_64-linux-gnu/libmlt.so.0.9.2)

This looks like it could be launchpad bug
https://bugs.launchpad.net/openshot/+bug/1405615 - a comment suggests it
may be fixed in later libmlt releases.

Reply via email to