This patch series adds support to more than two channels of audio (5.1, 7.1, etc.). Currently only usb-audio frontend and alsa and pa backends are updated. Using more than two channels requires turning off mixeng (-audiodev backend,id=foo,out.mixeng=off,...).
Currently you have to specify the number of channels you want to use when creating the usb-audio device, see the last commit for details. To do this I currently dynamically allocate the whole USBDesc structure, which looks ugly. If there's a better way, please let me know! These patches requires my previous -audiodev patches: https://lists.gnu.org/archive/html/qemu-devel/2015-08/msg00827.html Please review. Kővágó, Zoltán (5): audio: replace shift in audio_pcm_info with bytes_per_frame audio: basic support for multichannel audio paaudio: channel-map option usb-audio: do not count on avail bytes actually available usb-audio: support more than two channels of audio audio/alsaaudio.c | 17 +- audio/audio.c | 70 ++++---- audio/audio_int.h | 3 +- audio/coreaudio.c | 4 +- audio/dsound_template.h | 10 +- audio/dsoundaudio.c | 4 +- audio/noaudio.c | 2 +- audio/ossaudio.c | 14 +- audio/paaudio.c | 18 +- audio/wavaudio.c | 6 +- hw/usb/dev-audio.c | 441 +++++++++++++++++++++++++++--------------------- qapi/audio.json | 5 +- qemu-options.hx | 9 + 13 files changed, 330 insertions(+), 273 deletions(-) -- 2.5.0