From: "Volker Rümelin" <vr_qemu@t-online.de>
To: Gerd Hoffmann <kraxel@redhat.com>
Cc: "Christian Schoenebeck" <qemu_oss@crudebyte.com>,
"Thomas Huth" <thuth@redhat.com>,
"Philippe Mathieu-Daudé" <philmd@linaro.org>,
"Richard Henderson" <richard.henderson@linaro.org>,
"Daniel P . Berrangé" <berrange@redhat.com>,
qemu-devel@nongnu.org
Subject: [PATCH v2 10/11] alsaaudio: change default playback settings
Date: Sat, 21 Jan 2023 10:47:34 +0100 [thread overview]
Message-ID: <20230121094735.11644-10-vr_qemu@t-online.de> (raw)
In-Reply-To: <0a4007dc-e11c-f16e-0e21-dbc4e60caa59@t-online.de>
The currently used default playback settings in the ALSA audio
backend are a bit unfortunate. With a few emulated audio devices,
audio playback does not work properly. Here is a short part of
the debug log while audio is playing (elapsed time in seconds).
audio: Elapsed since last alsa run (running): 0.046244
audio: Elapsed since last alsa run (running): 0.023137
audio: Elapsed since last alsa run (running): 0.023170
audio: Elapsed since last alsa run (running): 0.023650
audio: Elapsed since last alsa run (running): 0.060802
audio: Elapsed since last alsa run (running): 0.031931
For some audio devices the time of more than 23ms between updates
is too long.
Set the period time to 5.8ms so that the maximum time between
two updates typically does not exceed 11ms. This roughly matches
the 10ms period time when doing playback with the audio timer.
After this patch the debug log looks like this.
audio: Elapsed since last alsa run (running): 0.011919
audio: Elapsed since last alsa run (running): 0.005788
audio: Elapsed since last alsa run (running): 0.005995
audio: Elapsed since last alsa run (running): 0.011069
audio: Elapsed since last alsa run (running): 0.005901
audio: Elapsed since last alsa run (running): 0.006084
Acked-by: Christian Schoenebeck <qemu_oss@crudebyte.com>
Signed-off-by: Volker Rümelin <vr_qemu@t-online.de>
---
audio/alsaaudio.c | 11 ++++-------
1 file changed, 4 insertions(+), 7 deletions(-)
diff --git a/audio/alsaaudio.c b/audio/alsaaudio.c
index 5f50dfa0bf..0cc982e61f 100644
--- a/audio/alsaaudio.c
+++ b/audio/alsaaudio.c
@@ -913,17 +913,14 @@ static void *alsa_audio_init(Audiodev *dev)
alsa_init_per_direction(aopts->in);
alsa_init_per_direction(aopts->out);
- /*
- * need to define them, as otherwise alsa produces no sound
- * doesn't set has_* so alsa_open can identify it wasn't set by the user
- */
+ /* don't set has_* so alsa_open can identify it wasn't set by the user */
if (!dev->u.alsa.out->has_period_length) {
- /* 1024 frames assuming 44100Hz */
- dev->u.alsa.out->period_length = 1024 * 1000000 / 44100;
+ /* 256 frames assuming 44100Hz */
+ dev->u.alsa.out->period_length = 5805;
}
if (!dev->u.alsa.out->has_buffer_length) {
/* 4096 frames assuming 44100Hz */
- dev->u.alsa.out->buffer_length = 4096ll * 1000000 / 44100;
+ dev->u.alsa.out->buffer_length = 92880;
}
/*
--
2.35.3
next prev parent reply other threads:[~2023-01-21 9:49 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-21 9:45 [PATCH v2 00/11] audio: more improvements Volker Rümelin
2023-01-21 9:47 ` [PATCH v2 01/11] audio: log unimplemented audio device sample rates Volker Rümelin
2023-01-21 9:47 ` [PATCH v2 02/11] audio: don't show unnecessary error messages Volker Rümelin
2023-01-21 9:47 ` [PATCH v2 03/11] audio: rename hardware store to backend Volker Rümelin
2023-01-23 7:33 ` Philippe Mathieu-Daudé
2023-01-21 9:47 ` [PATCH v2 04/11] audio: remove unused #define AUDIO_STRINGIFY Volker Rümelin
2023-01-21 9:47 ` [PATCH v2 05/11] audio/mixeng: use g_new0() instead of audio_calloc() Volker Rümelin
2023-01-21 9:47 ` [PATCH v2 06/11] audio/alsaaudio: " Volker Rümelin
2023-01-21 9:47 ` [PATCH v2 07/11] audio/audio_template: use g_malloc0() to replace audio_calloc() Volker Rümelin
2023-01-23 11:03 ` Daniel P. Berrangé
2023-01-21 9:47 ` [PATCH v2 08/11] audio/audio_template: use g_new0() " Volker Rümelin
2023-01-23 11:04 ` Daniel P. Berrangé
2023-01-21 9:47 ` [PATCH v2 09/11] audio: remove audio_calloc() function Volker Rümelin
2023-01-21 9:47 ` Volker Rümelin [this message]
2023-01-23 7:43 ` [PATCH v2 10/11] alsaaudio: change default playback settings Philippe Mathieu-Daudé
2023-01-24 7:34 ` Volker Rümelin
2023-01-21 9:47 ` [PATCH v2 11/11] alsaaudio: reintroduce default recording settings Volker Rümelin
2023-01-23 7:44 ` Philippe Mathieu-Daudé
2023-01-31 14:51 ` [PATCH v2 00/11] audio: more improvements Marc-André Lureau
2023-03-05 17:35 ` Volker Rümelin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230121094735.11644-10-vr_qemu@t-online.de \
--to=vr_qemu@t-online.de \
--cc=berrange@redhat.com \
--cc=kraxel@redhat.com \
--cc=philmd@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=qemu_oss@crudebyte.com \
--cc=richard.henderson@linaro.org \
--cc=thuth@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).