mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-10-29 05:40:27 -04:00
channelmix: only produce REAR/SIDE from FC in simple upmix
Only simple upmixing would replicate the FC channel into REAR/SIDE. The PSD method would take the diff between FL/FR (which would be 0 if only FC is available) and not generate output.
This commit is contained in:
parent
da9868594d
commit
3df0fb21a0
1 changed files with 8 additions and 2 deletions
|
|
@ -441,10 +441,13 @@ static int make_matrix(struct channelmix *mix)
|
|||
spa_log_debug(mix->log, "produce SIDE from STEREO");
|
||||
_MATRIX(SL,FL) += slev;
|
||||
_MATRIX(SR,FR) += slev;
|
||||
} else if ((src_mask & FRONT) == FRONT) {
|
||||
} else if ((src_mask & FRONT) == FRONT &&
|
||||
mix->upmix == CHANNELMIX_UPMIX_SIMPLE) {
|
||||
spa_log_debug(mix->log, "produce SIDE from FC");
|
||||
_MATRIX(SL,FC) += clev;
|
||||
_MATRIX(SR,FC) += clev;
|
||||
} else {
|
||||
spa_log_debug(mix->log, "won't produce SIDE");
|
||||
}
|
||||
}
|
||||
if (unassigned & REAR) {
|
||||
|
|
@ -456,10 +459,13 @@ static int make_matrix(struct channelmix *mix)
|
|||
spa_log_debug(mix->log, "produce REAR from STEREO");
|
||||
_MATRIX(RL,FL) += slev;
|
||||
_MATRIX(RR,FR) += slev;
|
||||
} else if ((src_mask & FRONT) == FRONT) {
|
||||
} else if ((src_mask & FRONT) == FRONT &&
|
||||
mix->upmix == CHANNELMIX_UPMIX_SIMPLE) {
|
||||
spa_log_debug(mix->log, "produce REAR from FC");
|
||||
_MATRIX(RL,FC) += clev;
|
||||
_MATRIX(RR,FC) += clev;
|
||||
} else {
|
||||
spa_log_debug(mix->log, "won't produce SIDE");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue