13
0

ignore additional channels for AFL, PFL:

If the monitor-section has fewer-channels than the solo-listen point:
ignore additional channels.
This commit is contained in:
Robin Gareus 2014-01-13 10:47:17 +01:00
parent 35ab234e5e
commit 5e2a145cdd
2 changed files with 14 additions and 1 deletions

View File

@ -128,7 +128,19 @@ InternalSend::run (BufferSet& bufs, framepos_t start_frame, framepos_t end_frame
uint32_t const bufs_audio = bufs.count().get (DataType::AUDIO);
uint32_t const mixbufs_audio = mixbufs.count().get (DataType::AUDIO);
assert (mixbufs.available().get (DataType::AUDIO) >= bufs_audio);
/* monitor-section has same number of channels as master-bus (on creation).
*
* There is no clear answer what should happen when trying to PFL or AFL
* a track that has more channels (bufs_audio from source-track is
* larger than mixbufs).
*
* There are two options:
* 1: discard additional channels (current)
* OR
* 2: require the monitor-section to have at least as many channels
* as the largest count of any route
*/
//assert (mixbufs.available().get (DataType::AUDIO) >= bufs_audio);
/* Copy bufs into mixbufs, going round bufs more than once if necessary
to ensure that every mixbuf gets some data.

View File

@ -2712,6 +2712,7 @@ Route::enable_monitor_send ()
/* master never sends to monitor section via the normal mechanism */
assert (!is_master ());
assert (!is_monitor ());
/* make sure we have one */
if (!_monitor_send) {