Fix bounce and freeze
* Include main-out channel-count when bouncing the output * Do not de-activate disk-reader and mains-out when freezing a track * Ignore meter when counting channels
This commit is contained in:
parent
54829492ca
commit
421c52ba7d
@ -265,6 +265,10 @@ AudioTrack::bounceable (boost::shared_ptr<Processor> endpoint, bool include_endp
|
||||
continue;
|
||||
}
|
||||
|
||||
if (boost::dynamic_pointer_cast<PeakMeter>(*r)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
/* does the output from the last considered processor match the
|
||||
* input to this one?
|
||||
*/
|
||||
@ -375,7 +379,7 @@ AudioTrack::freeze_me (InterThreadInfo& itt)
|
||||
_freeze_record.processor_info.push_back (frii);
|
||||
|
||||
/* now deactivate the processor, */
|
||||
if (!boost::dynamic_pointer_cast<Amp>(*r)) {
|
||||
if (!boost::dynamic_pointer_cast<Amp>(*r) && *r != _disk_reader && *r != main_outs()) {
|
||||
(*r)->deactivate ();
|
||||
}
|
||||
|
||||
|
@ -651,6 +651,8 @@ Route::bounce_get_output_streams (ChanCount &cc, boost::shared_ptr<Processor> en
|
||||
return cc;
|
||||
}
|
||||
|
||||
Glib::Threads::RWLock::ReaderLock lm (_processor_lock);
|
||||
|
||||
for (ProcessorList::const_iterator i = _processors.begin(); i != _processors.end(); ++i) {
|
||||
if (!include_endpoint && (*i) == endpoint) {
|
||||
break;
|
||||
@ -660,6 +662,8 @@ Route::bounce_get_output_streams (ChanCount &cc, boost::shared_ptr<Processor> en
|
||||
}
|
||||
if (!(*i)->does_routing() && !boost::dynamic_pointer_cast<PeakMeter>(*i)) {
|
||||
cc = (*i)->output_streams();
|
||||
} else if (*i == _main_outs) {
|
||||
cc = (*i)->output_streams();
|
||||
}
|
||||
if ((*i) == endpoint) {
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user