summaryrefslogtreecommitdiffstats
path: root/audio
diff options
context:
space:
mode:
authorVolker Rümelin2022-09-23 20:36:30 +0200
committerGerd Hoffmann2022-10-11 10:17:08 +0200
commit7099a6a220c33d9c115e19e9f03ac61caa8358b5 (patch)
tree95d88180cc381e1fa8dc804ff0b7f31d1b2692ee /audio
parentaudio: refactor code in audio_run_out() (diff)
downloadqemu-7099a6a220c33d9c115e19e9f03ac61caa8358b5.tar.gz
qemu-7099a6a220c33d9c115e19e9f03ac61caa8358b5.tar.xz
qemu-7099a6a220c33d9c115e19e9f03ac61caa8358b5.zip
audio: fix GUS audio playback with out.mixing-engine=off
Fix GUS audio playback with out.mixing-engine=off. The GUS audio device needs to know the amount of samples to produce in advance. To reproduce start qemu with -parallel none -device gus,audiodev=audio0 -audiodev pa,id=audio0,out.mixing-engine=off and start the cartoon.exe demo in a FreeDOS guest. The demo file is available on the download page of the GUSemu32 author. Signed-off-by: Volker Rümelin <vr_qemu@t-online.de> Acked-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-Id: <20220923183640.8314-2-vr_qemu@t-online.de> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Diffstat (limited to 'audio')
-rw-r--r--audio/audio.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/audio/audio.c b/audio/audio.c
index 08aec51e70..29da359b41 100644
--- a/audio/audio.c
+++ b/audio/audio.c
@@ -1139,7 +1139,8 @@ static void audio_run_out (AudioState *s)
}
if (sw->active) {
- sw->callback.fn(sw->callback.opaque, INT_MAX);
+ sw->callback.fn(sw->callback.opaque,
+ hw_free * sw->info.bytes_per_frame);
}
continue;