Age | Commit message (Collapse) | Author |
|
When allowing to cross-connect plugin-ports, inplace processing can
no longer be used. We need a complete set of independent input and
output buffers.
Since scratch and silent buffers are used by the various plugin
implementations we cannot re-use them in the PluginInsert.
Besides we need a complete BufferSet which can hold both: ins + outs.
|
|
|
|
Plugins rewrite the buffer data in-place and some plugins
can produce output even when fed with silence.
Hence, during a PluginInsert::silence() run a plugin can
inject data into the "silent" buffers which causes side-effects.
Kudos to Chris 'oofus' Goddard for finding this issue.
|
|
|
|
|
|
"scratch buffers are by definition scratch and their contents are undefined at all times"
"silent buffers are by definition all-zero and should not be used for real data"
But track & route were using those for actual data; plugins (which may run
in the same thread and may get the same buffers) use them for scratch thereby
overwriting real data.
In particular get_silent_buffers() (used by LadspaPlugin::connect_and_run)
clears the buffer which can holds real data:
e.g. via Route::passthru_silence() -> plugin1 -> plugin2 (clears output of plugin1)
|
|
git-svn-id: svn://localhost/ardour2/branches/3.0@13084 d708f5d6-7413-0410-9779-e7cbd77b26cf
|
|
git-svn-id: svn://localhost/ardour2/branches/3.0@12737 d708f5d6-7413-0410-9779-e7cbd77b26cf
|
|
git-svn-id: svn://localhost/ardour2/branches/3.0@12650 d708f5d6-7413-0410-9779-e7cbd77b26cf
|
|
It's slightly possible that this causes trivial build failures on different
configurations, but otherwise shouldn't cause any problems (i.e. no actual
changes other than include/naming/namespace stuff). I deliberately avoided
removing libardour-config.h since this can mysteriously break things, though a
few of those do seem to be unnecessary.
This commit only targets includes of ardour/*.h. There is also a very large
number of unnecessary includes of stuff in gtk2_ardour; tackling that should
also give a big improvement in build time when things are modified.
git-svn-id: svn://localhost/ardour2/branches/3.0@12420 d708f5d6-7413-0410-9779-e7cbd77b26cf
|
|
git-svn-id: svn://localhost/ardour2/branches/3.0@11696 d708f5d6-7413-0410-9779-e7cbd77b26cf
|
|
the buffers passed to it as non-silent. a few plugin APIs allow the plugin to indicate whether or not it generated silence or not, but we ignore this for now (and possibly forever)
git-svn-id: svn://localhost/ardour2/branches/3.0@10385 d708f5d6-7413-0410-9779-e7cbd77b26cf
|
|
interim fix before actually finding out why the buffers are marked silent when they were not
git-svn-id: svn://localhost/ardour2/branches/3.0@10383 d708f5d6-7413-0410-9779-e7cbd77b26cf
|
|
fault :D
git-svn-id: svn://localhost/ardour2/branches/3.0@9654 d708f5d6-7413-0410-9779-e7cbd77b26cf
|
|
git-svn-id: svn://localhost/ardour2/branches/3.0@6889 d708f5d6-7413-0410-9779-e7cbd77b26cf
|
|
separately from session in preparation for parallelization. lots of debug output at present. If using JACK1, requires a very current version of JACK1 SVN (0.119.0)
git-svn-id: svn://localhost/ardour2/branches/3.0@6888 d708f5d6-7413-0410-9779-e7cbd77b26cf
|