channelmix: try to handle 1 channel as MONO/FC

This commit is contained in:
Wim Taymans 2019-08-16 15:03:16 +02:00
parent 6f16d6ff8e
commit 954c96632c
2 changed files with 10 additions and 5 deletions

View file

@ -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);