aboutsummaryrefslogtreecommitdiff
path: root/audio
diff options
context:
space:
mode:
authorVolker Rümelin <vr_qemu@t-online.de>2019-11-19 07:58:49 +0100
committerGerd Hoffmann <kraxel@redhat.com>2019-11-20 09:11:12 +0100
commit7ffc90f3ae3d84562a4bda63cde961000b335542 (patch)
tree458ad5c979141b473ae05b1eee8dd582056c07f1 /audio
parent39e2821077e6dcf788b7c2a9ef50970ec7995437 (diff)
downloadqemu-7ffc90f3ae3d84562a4bda63cde961000b335542.zip
qemu-7ffc90f3ae3d84562a4bda63cde961000b335542.tar.gz
qemu-7ffc90f3ae3d84562a4bda63cde961000b335542.tar.bz2
audio: fix audio recording
With current code audio recording with all audio backends except PulseAudio and DirectSound is broken. The generic audio recording buffer management forgot to update the current read position after a read. Fixes: ff095e5231 "audio: api for mixeng code free backends" Signed-off-by: Volker Rümelin <vr_qemu@t-online.de> Reviewed-by: Zoltán Kővágó <DirtY.iCE.hu@gmail.com> Message-id: 2fc947cf-7b42-de68-3f11-cbcf1c096be9@t-online.de Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Diffstat (limited to 'audio')
-rw-r--r--audio/audio.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/audio/audio.c b/audio/audio.c
index 7fc3aa9..56fae55 100644
--- a/audio/audio.c
+++ b/audio/audio.c
@@ -1390,6 +1390,7 @@ void *audio_generic_get_buffer_in(HWVoiceIn *hw, size_t *size)
size_t read = hw->pcm_ops->read(hw, hw->buf_emul + hw->pos_emul,
read_len);
hw->pending_emul += read;
+ hw->pos_emul = (hw->pos_emul + read) % hw->size_emul;
if (read < read_len) {
break;
}