mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-10-31 22:25:38 -04:00
channelmix: try to handle 1 channel as MONO/FC
This commit is contained in:
parent
6f16d6ff8e
commit
954c96632c
2 changed files with 10 additions and 5 deletions
|
|
@ -168,14 +168,19 @@ static int make_matrix(struct channelmix *mix)
|
|||
float llev = 0.5f;
|
||||
float max = 0.0f;
|
||||
|
||||
spa_log_debug(mix->log, "src-mask:%08"PRIx64" dst-mask:%08"PRIx64,
|
||||
src_mask, dst_mask);
|
||||
|
||||
if ((src_mask & _MASK(MONO)) == _MASK(MONO))
|
||||
src_mask = _MASK(FC);
|
||||
if ((dst_mask & _MASK(MONO)) == _MASK(MONO))
|
||||
dst_mask = _MASK(FC);
|
||||
|
||||
for (i = 0; i < NUM_CHAN; i++) {
|
||||
if (src_mask & dst_mask & (1ULL << (i + 2)))
|
||||
matrix[i][i]= 1.0f;
|
||||
}
|
||||
|
||||
if ((dst_mask & _MASK(MONO)) == _MASK(MONO))
|
||||
dst_mask = _MASK(FC);
|
||||
|
||||
unassigned = src_mask & ~dst_mask;
|
||||
|
||||
spa_log_debug(mix->log, "unassigned %08" PRIx64, unassigned);
|
||||
|
|
|
|||
|
|
@ -211,9 +211,9 @@ static int setup_convert(struct impl *this,
|
|||
for (i = 0, dst_mask = 0; i < dst_chan; i++)
|
||||
dst_mask |= 1UL << dst_info->info.raw.position[i];
|
||||
|
||||
if (src_mask & 1)
|
||||
if (src_mask & 1 || src_chan == 1)
|
||||
src_mask = default_mask(src_chan);
|
||||
if (dst_mask & 1)
|
||||
if (dst_mask & 1 || dst_chan == 1)
|
||||
dst_mask = default_mask(dst_chan);
|
||||
|
||||
spa_log_info(this->log, NAME " %p: %s/%d@%d->%s/%d@%d %08"PRIx64":%08"PRIx64, this,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue