mirror of
https://github.com/qemu/qemu.git
synced 2025-01-19 12:03:51 +08:00
a806f95904
Change the code to copy the playback stream in sequential order. The advantage can be seen in the next patches where the stream copy operation effectively becomes a write through operation. The following diagram shows the average buffer fill level and the stream copy sequence. ### represents a timer_period sized chunk. The rest of the buffer sizes are not to scale. With current code: |--------| |#####111| |---#####| sw->buf mix_buf backend buffer 1. clip |--------| |---#####| |111##222| sw->buf mix_buf backend buffer 2. write to audio device 333 -> |--------| |---#####| |---111##| -> 222 sw->buf mix_buf backend buffer 3a. sw device write |-----333| |---#####| |---111##| sw->buf mix_buf backend buffer 3b. resample and mix |--------| |333#####| |---111##| sw->buf mix_buf backend buffer With this patch: 111 -> |--------| |---#####| |---#####| sw->buf mix_buf backend buffer 1a: sw device write |-----111| |---#####| |---#####| sw->buf mix_buf backend buffer 1b. resample and mix |--------| |111##222| |---#####| sw->buf mix_buf backend buffer 2. clip |--------| |---111##| |222##333| sw->buf mix_buf backend buffer 3. write to audio device |--------| |---111##| |---222##| -> 333 sw->buf mix_buf backend buffer The effective total playback buffer size is reduced by timer_period. Signed-off-by: Volker Rümelin <vr_qemu@t-online.de> Message-Id: <20220301191311.26695-7-vr_qemu@t-online.de> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> |
||
---|---|---|
.. | ||
alsaaudio.c | ||
audio_int.h | ||
audio_legacy.c | ||
audio_template.h | ||
audio_win_int.c | ||
audio_win_int.h | ||
audio.c | ||
audio.h | ||
coreaudio.c | ||
dbusaudio.c | ||
dsound_template.h | ||
dsoundaudio.c | ||
jackaudio.c | ||
meson.build | ||
mixeng_template.h | ||
mixeng.c | ||
mixeng.h | ||
noaudio.c | ||
ossaudio.c | ||
paaudio.c | ||
rate_template.h | ||
sdlaudio.c | ||
spiceaudio.c | ||
trace-events | ||
trace.h | ||
wavaudio.c | ||
wavcapture.c |