[alsa-devel] [PATCH] src/pcm/pcm_ladspa.c: Delay LADSPA plugin activate call

Matthias Larisch mail at matthias-larisch.de
Thu Mar 27 19:05:10 CET 2014


Some LADSPA Plugins rely on connected control ports on activate call.
While this is not okay by spec, the spec also encourages the activate
call happening as late as possible.

Signed-off-by: Matthias Larisch <mail at matthias-larisch.de>
---
 src/pcm/pcm_ladspa.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/pcm/pcm_ladspa.c b/src/pcm/pcm_ladspa.c
index 9ce5242..7d1e3df 100644
--- a/src/pcm/pcm_ladspa.c
+++ b/src/pcm/pcm_ladspa.c
@@ -645,8 +645,6 @@ static int snd_pcm_ladspa_allocate_instances(snd_pcm_t
*pcm, snd_pcm_ladspa_t *l return -EINVAL;
 			}
 			list_add_tail(&instance->list, &plugin->instances);
-			if (plugin->desc->activate)
-				plugin->desc->activate(instance->handle);
 			if (plugin->policy == SND_PCM_LADSPA_POLICY_DUPLICATE)
{ err = snd_pcm_ladspa_connect_plugin_duplicate(plugin, &plugin->input,
&plugin->output, instance, idx); if (err < 0) {
@@ -664,6 +662,8 @@ static int snd_pcm_ladspa_allocate_instances(snd_pcm_t
*pcm, snd_pcm_ladspa_t *l assert(err >= 0);
 			err = snd_pcm_ladspa_connect_controls(plugin,
&plugin->output, instance); assert(err >= 0);
+			if (plugin->desc->activate)
+				plugin->desc->activate(instance->handle);
 		}
 		err = snd_pcm_ladspa_check_connect(plugin, &plugin->input,
&instance->input, depth); if (err < 0)
-- 
1.9.1
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: not available
URL: <http://mailman.alsa-project.org/pipermail/alsa-devel/attachments/20140327/48d9146d/attachment.sig>


More information about the Alsa-devel mailing list