From 9fd214fcbb1a21325570f394153742bd556a76ce Mon Sep 17 00:00:00 2001 From: Jordan Yelloz Date: Fri, 16 Dec 2022 12:35:27 -0700 Subject: [PATCH] [mod_ladspa] Add activate/deactivate support. Without these -- especially activate() -- stateful plugins will not be set up correctly. For example, the low-pass filter "lpf" in the CMT library may produce a pop when starting since its state is not zeroed out. --- src/mod/applications/mod_ladspa/mod_ladspa.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/mod/applications/mod_ladspa/mod_ladspa.c b/src/mod/applications/mod_ladspa/mod_ladspa.c index 2bccfffb9c..6e04e414a9 100644 --- a/src/mod/applications/mod_ladspa/mod_ladspa.c +++ b/src/mod/applications/mod_ladspa/mod_ladspa.c @@ -370,6 +370,11 @@ static switch_bool_t ladspa_callback(switch_media_bug_t *bug, void *user_data, s } } } + + if (pvt->ldesc->activate) { + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(pvt->session), SWITCH_LOG_DEBUG, "ACTIVATE\n"); + pvt->ldesc->activate(pvt->handle); + } } break; @@ -382,6 +387,10 @@ static switch_bool_t ladspa_callback(switch_media_bug_t *bug, void *user_data, s } if (pvt->handle && pvt->ldesc) { + if (pvt->ldesc->deactivate) { + pvt->ldesc->deactivate(pvt->handle); + } + pvt->ldesc->cleanup(pvt->handle); }