honor Vamp Plugin preferred step+block sizes.

This commit is contained in:
Robin Gareus 2016-10-07 14:37:09 +02:00
parent 485e31f082
commit d4229da4cf
2 changed files with 12 additions and 2 deletions

View File

@ -205,8 +205,10 @@ namespace ARDOUR { namespace LuaAPI {
/** initialize the plugin for use with analyze(). /** initialize the plugin for use with analyze().
* *
* This is equivalent to plugin():initialise (1, 512, 1024) * This is equivalent to plugin():initialise (1, ssiz, bsiz)
* and prepares a plugin for analyze. * and prepares a plugin for analyze.
* (by preferred step and block sizes are used. if the plugin
* does not specify them or they're larger than 8K, both are set to 1024)
* *
* Manual initialization is only required to set plugin-parameters * Manual initialization is only required to set plugin-parameters
* which depend on prior initialization of the plugin. * which depend on prior initialization of the plugin.

View File

@ -551,7 +551,7 @@ LuaAPI::Vamp::Vamp (const std::string& key, float sample_rate)
: _plugin (0) : _plugin (0)
, _sample_rate (sample_rate) , _sample_rate (sample_rate)
, _bufsize (1024) , _bufsize (1024)
, _stepsize (512) , _stepsize (1024)
, _initialized (false) , _initialized (false)
{ {
using namespace ::Vamp::HostExt; using namespace ::Vamp::HostExt;
@ -563,6 +563,14 @@ LuaAPI::Vamp::Vamp (const std::string& key, float sample_rate)
PBD::error << string_compose (_("VAMP Plugin \"%1\" could not be loaded"), key) << endmsg; PBD::error << string_compose (_("VAMP Plugin \"%1\" could not be loaded"), key) << endmsg;
throw failed_constructor (); throw failed_constructor ();
} }
size_t bs = _plugin->getPreferredBlockSize ();
size_t ss = _plugin->getPreferredStepSize ();
if (bs > 0 && ss > 0 && bs <= 8192 && ss <= 8192) {
_bufsize = bs;
_stepsize = bs;
}
} }
LuaAPI::Vamp::~Vamp () LuaAPI::Vamp::~Vamp ()