audio: proper support for float samples in mixeng

This adds proper support for float samples in mixeng by adding a new
audio format for it.

Limitations: only native endianness is supported.  None of the virtual
sound cards support float samples (it looks like most of them only
support 8 and 16 bit, only hda supports 32 bit), it is only used for the
audio backends (i.e. host side).

Signed-off-by: Kővágó, Zoltán <DirtY.iCE.hu@gmail.com>
Acked-by: Markus Armbruster <armbru@redhat.com>
Message-id: 8a8b0b5698401b78d3c4c8ec90aef83b95babb06.1580672076.git.DirtY.iCE.hu@gmail.com
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
Kővágó, Zoltán 2020-02-02 20:38:07 +01:00 committed by Gerd Hoffmann
parent 180b044ffd
commit ed2a4a7941
10 changed files with 182 additions and 81 deletions

View file

@ -491,14 +491,9 @@ static int coreaudio_init_out(HWVoiceOut *hw, struct audsettings *as,
return -1;
}
/*
* The canonical audio format for CoreAudio on macOS is float. Currently
* there is no generic code for AUDIO_FORMAT_F32 in qemu. Here we select
* AUDIO_FORMAT_S32 instead because only the sample size has to match.
*/
fake_as = *as;
as = &fake_as;
as->fmt = AUDIO_FORMAT_S32;
as->fmt = AUDIO_FORMAT_F32;
audio_pcm_init_info (&hw->info, as);
status = coreaudio_get_voice(&core->outputDeviceID);