Open SingingTree opened 6 years ago
I've hacked on https://github.com/kinetiknz/cubeb/issues/383 and it appears to be the primary issue killing my input mixing and appears to be why layout is not detected in my case. Still interested in thoughts on the above.
+---------+
input --->| mixer |---> output
+---------+
downmix_fallback
will pass the data from input to output as much as it can and drop the extra channel. cubeb_upmix
will copy through all the data from input to output and put silence in remaining channels.
mix_remap
. Some mixing conversions are defined in ITU specs. ITU-R BS.775-3 provides spec for downmixing 3F2(audio 5.1) data to 1F, 2F, 3F, 2F1, 3F1, and 2F2(downmix_3f2
). I guess there is a spec for audio 7.1. We should check if there is a spec for the conversion you want before implementing our own version.
I've encountered some issues with using the mixer in the WASAPI backend to handle input streams. Starting a discussion to bounce some ideas and confirm that my concerns are not a product of misunderstanding the mixing API.
mixer_input_params
andmixer_output_params
.cubeb_should_mix
gates on if the stream (input?) doesn't have a defined layout. This is breaking for me when dealing with WASAPI input devices with more than 2 channels (the loop back case is what I'm trying to deal with) because the check here fails due to layout not being detect. The layout needing to be defined feels like a sane constraint, right? In which case it seems like the WASAPI backend will need to do better detection for inputs such that we do not have undefined layouts.mix_remap
. My current plan is to get this working for my loopback use case. Any concerns here I should be aware of?Would appreciate thoughts. @kinetiknz, @ChunMinChang