Hi, thanks for your work!
@Dan: Is this patch helpful for you? Am 03.10.2016 um 17:26 schrieb Bart Massey: > Package: libmlt6 > Version: 6.2.0-1 > Severity: normal > Tags: upstream patch > > Dear Maintainer, > > When using Flowblade or OpenShot to edit videos, trying to > apply a second LADSPA effect from the swh-tools package to > an audio stream caused a coredump in MLT's jackrack module. > > After some debugging, this proved to be lack of a null > pointer check in jackrack: the null pointer was unexpected, > since it corresponded to the LADSPA plugin having been > incorrectly loaded. > > After fixing MLT jackrack to not dump core and fixing up the > logging, the problem with LADSPA loading was traced to > unnecessarily using RTLD_GLOBAL in the dlopen() call for the > LADSPA plugin in one of two locations where the plugin was > opened. This (for some reason I don't understand) prevented > the swh_init constructor for the LADSPA plugin from being > called at load time, which in turn caused the plugin to > fail to be configured properly. > > With RTLD_GLOBAL removed, MLT worked as expected. Flowblade > applied multiple swh-plugins LADSPA effects to an audio > track successfully. > > This patch cleans up the debug logging for MLT jackrack, > prevents a coredump in the case that a LADSPA plugin reports > no configuration, and removes the offending RTLD_GLOBAL. > > diff -ru /usr/src/mlt-6.2.0/src/modules/jackrack/jack_rack.c > ./src/modules/jackrack/jack_rack.c > --- /usr/src/mlt-6.2.0/src/modules/jackrack/jack_rack.c 2016-04-20 > 19:24:55.000000000 -0700 > +++ ./src/modules/jackrack/jack_rack.c 2016-10-02 16:01:44.000000000 > -0700 > @@ -103,7 +103,11 @@ > { > plugin_t * plugin = jack_rack_instantiate_plugin (jack_rack, > saved_plugin->settings->desc); > if (!plugin) > - return; > + { > + mlt_log_warning( NULL, "%s: could not instantiate object file '%s'\n", > + __FUNCTION__, > saved_plugin->settings->desc->object_file); > + return; > + } > jack_rack->saved_plugins = g_slist_append (jack_rack->saved_plugins, > saved_plugin); > process_add_plugin (jack_rack->procinfo, plugin); > jack_rack_add_plugin (jack_rack, plugin); > diff -ru /usr/src/mlt-6.2.0/src/modules/jackrack/plugin.c > ./src/modules/jackrack/plugin.c > --- /usr/src/mlt-6.2.0/src/modules/jackrack/plugin.c 2016-04-20 > 19:24:55.000000000 -0700 > +++ ./src/modules/jackrack/plugin.c 2016-10-03 07:53:19.000000000 -0700 > @@ -287,26 +287,35 @@ > void * dl_handle; > const char * dlerr; > LADSPA_Descriptor_Function get_descriptor; > - > + > + /* clear the error report */ > + dlerror (); > + > /* open the object file */ > +#if 0 > dl_handle = dlopen (desc->object_file, RTLD_NOW|RTLD_GLOBAL); > - if (!dl_handle) > +#else > + dl_handle = dlopen (desc->object_file, RTLD_NOW); > +#endif > + dlerr = dlerror (); > + if (!dl_handle || dlerr) > { > + if (!dlerr) > + dlerr = "unknown error"; > mlt_log_warning( NULL, "%s: error opening shared object file '%s': > %s\n", > - __FUNCTION__, desc->object_file, dlerror()); > + __FUNCTION__, desc->object_file, dlerr); > return 1; > } > > > /* get the get_descriptor function */ > - dlerror (); /* clear the error report */ > - > get_descriptor = (LADSPA_Descriptor_Function) > dlsym (dl_handle, "ladspa_descriptor"); > - > dlerr = dlerror(); > if (dlerr) > { > + if (!dlerr) > + dlerr = "unknown error"; > mlt_log_warning( NULL, "%s: error finding descriptor symbol in object > file '%s': %s\n", > __FUNCTION__, desc->object_file, dlerr); > dlclose (dl_handle); > @@ -321,6 +330,13 @@ > #endif > > *descriptor_ptr = get_descriptor (desc->index); > + if (!*descriptor_ptr) > + { > + mlt_log_warning( NULL, "%s: error finding index %lu in object file > '%s'\n", > + __FUNCTION__, desc->index, desc->object_file); > + dlclose (dl_handle); > + return 1; > + } > *dl_handle_ptr = dl_handle; > > return 0; > diff -ru /usr/src/mlt-6.2.0/src/modules/jackrack/plugin_mgr.c > ./src/modules/jackrack/plugin_mgr.c > --- /usr/src/mlt-6.2.0/src/modules/jackrack/plugin_mgr.c 2016-04-20 > 19:24:55.000000000 -0700 > +++ ./src/modules/jackrack/plugin_mgr.c 2016-10-03 07:53:19.000000000 > -0700 > @@ -147,7 +147,7 @@ > plugin_mgr->plugin_count++; > > /* print in the splash screen */ > - /* mlt_log_verbose( NULL, "Loaded plugin '%s'\n", desc->name); */ > + mlt_log_verbose( NULL, "Loaded plugin '%s'\n", desc->name); > } > > err = dlclose (dl_handle); > > > > -- System Information: > Debian Release: stretch/sid > APT prefers unstable > APT policy: (900, 'unstable'), (400, 'oldoldstable'), (400, 'testing'), > (400, 'stable'), (400, 'oldstable') > Architecture: amd64 (x86_64) > Foreign Architectures: i386 > > Kernel: Linux 4.6.0-1-amd64 (SMP w/8 CPU cores) > Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) > Shell: /bin/sh linked to /bin/dash > Init: systemd (via /run/systemd/system) > > Versions of packages libmlt6 depends on: > ii libavcodec57 7:3.1.3-1+b3 > ii libavdevice57 7:3.1.3-1+b3 > ii libavfilter6 7:3.1.3-1+b3 > ii libavformat57 7:3.1.3-1+b3 > ii libavutil55 7:3.1.3-1+b3 > ii libc6 2.24-3 > ii libepoxy0 1.3.1-1 > ii libexif12 0.6.21-2 > ii libfftw3-double3 3.3.4-2+b2 > ii libgcc1 1:6.2.0-5 > ii libgdk-pixbuf2.0-0 2.36.0-1 > ii libgl1-mesa-glx [libgl1] 12.0.3-1 > ii libglib2.0-0 2.50.0-1 > ii libgtk2.0-0 2.24.31-1 > ii libjack-jackd2-0 [libjack-0.116] 1.9.10+20150825git1ed50c92~dfsg-2 > ii libmlt++3 6.2.0-1 > ii libmovit4 1.3.2-1 > ii libpango-1.0-0 1.40.3-2 > ii libpangoft2-1.0-0 1.40.3-2 > ii libqt4-opengl 4:4.8.7+dfsg-9 > ii libqt4-svg 4:4.8.7+dfsg-9 > ii libqt4-xml 4:4.8.7+dfsg-9 > ii libqtcore4 4:4.8.7+dfsg-9 > ii libqtgui4 4:4.8.7+dfsg-9 > ii librtaudio5a 4.1.2~ds0-4 > ii libsamplerate0 0.1.8-8 > ii libsdl1.2debian 1.2.15+dfsg1-4 > ii libsox2 14.4.1-5+b1 > ii libstdc++6 6.2.0-5 > ii libswscale4 7:3.1.3-1+b3 > ii libx11-6 2:1.6.3-1 > ii libxml2 2.9.4+dfsg1-2 > > Versions of packages libmlt6 recommends: > ii libmlt-data 6.2.0-1 > > libmlt6 suggests no packages. > > -- no debconf information > -- /* Mit freundlichem Gruß / With kind regards, Patrick Matthäi GNU/Linux Debian Developer Blog: http://www.linux-dev.org/ E-Mail: pmatth...@debian.org patr...@linux-dev.org */ ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot _______________________________________________ Mlt-devel mailing list Mlt-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mlt-devel