mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-06 14:54:56 +01:00
fix processed region export (track output)
This commit is contained in:
parent
9b55550f0b
commit
53a9751532
2 changed files with 17 additions and 4 deletions
|
|
@ -536,7 +536,8 @@ RegionExportChannelSelector::handle_selection ()
|
||||||
factory.reset (new RegionExportChannelFactory (_session, region, track, type));
|
factory.reset (new RegionExportChannelFactory (_session, region, track, type));
|
||||||
state->config->set_region_processing_type (type);
|
state->config->set_region_processing_type (type);
|
||||||
|
|
||||||
for (size_t chan = 0; chan < region_chans; ++chan) {
|
const size_t cc = type == RegionExportChannelFactory::Processed ? track_chans : region_chans;
|
||||||
|
for (size_t chan = 0; chan < cc; ++chan) {
|
||||||
state->config->register_channel (factory->create (chan));
|
state->config->register_channel (factory->create (chan));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -663,7 +663,7 @@ Route::bounce_process (BufferSet& buffers, framepos_t start, framecnt_t nframes,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* if we're not exporting, stop processing if we come across a routing processor. */
|
/* if we're *not* exporting, stop processing if we come across a routing processor. */
|
||||||
if (!for_export && boost::dynamic_pointer_cast<PortInsert>(*i)) {
|
if (!for_export && boost::dynamic_pointer_cast<PortInsert>(*i)) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
@ -671,8 +671,20 @@ Route::bounce_process (BufferSet& buffers, framepos_t start, framecnt_t nframes,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* don't run any processors that does routing.
|
/* special case the panner (export outputs)
|
||||||
* oh, and don't bother with the peak meter either.
|
* Ideally we'd only run the panner, not the delivery itself...
|
||||||
|
* but panners need separate input/output buffers and some context
|
||||||
|
* (panshell, panner type, etc). AFAICT there is no ill side effect
|
||||||
|
* of re-using the main delivery when freewheeling/exporting a region.
|
||||||
|
*/
|
||||||
|
if ((*i) == _main_outs) {
|
||||||
|
assert ((*i)->does_routing());
|
||||||
|
(*i)->run (buffers, start - latency, start - latency + nframes, nframes, true);
|
||||||
|
buffers.set_count ((*i)->output_streams());
|
||||||
|
}
|
||||||
|
|
||||||
|
/* don't run any processors that do routing.
|
||||||
|
* Also don't bother with metering.
|
||||||
*/
|
*/
|
||||||
if (!(*i)->does_routing() && !boost::dynamic_pointer_cast<PeakMeter>(*i)) {
|
if (!(*i)->does_routing() && !boost::dynamic_pointer_cast<PeakMeter>(*i)) {
|
||||||
(*i)->run (buffers, start - latency, start - latency + nframes, nframes, true);
|
(*i)->run (buffers, start - latency, start - latency + nframes, nframes, true);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue