audio: fix sw->buf size for audio recording
commitb73ef11ff68f05418c8b60945b1e1783a72bd822
authorVolker Rümelin <vr_qemu@t-online.de>
Fri, 23 Sep 2022 18:36:39 +0000 (23 20:36 +0200)
committerGerd Hoffmann <kraxel@redhat.com>
Tue, 11 Oct 2022 08:17:08 +0000 (11 10:17 +0200)
tree592b6c42393f1bb795b9c1edeb8b33907ba88da4
parent0724c57988f4ad826b02f12093ace5ef657cec21
audio: fix sw->buf size for audio recording

The calculation of the buffer size needed to store audio samples
after resampling is wrong for audio recording. For audio recording
sw->ratio is calculated as

sw->ratio = frontend sample rate / backend sample rate.

From this follows

frontend samples = frontend sample rate / backend sample rate
 * backend samples
frontend samples = sw->ratio * backend samples

In 2 of 3 places in the audio recording code where sw->ratio
is used in a calculation to get the number of frontend frames,
the calculation is wrong. Fix this. The 3rd formula in
audio_pcm_sw_read() is correct.

Resolves: https://gitlab.com/qemu-project/qemu/-/issues/71
Signed-off-by: Volker Rümelin <vr_qemu@t-online.de>
Acked-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20220923183640.8314-11-vr_qemu@t-online.de>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
audio/audio.c
audio/audio_template.h