qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Volker Rümelin" <vr_qemu@t-online.de>
To: "Gerd Hoffmann" <kraxel@redhat.com>,
	"Marc-André Lureau" <marcandre.lureau@redhat.com>,
	"Laurent Vivier" <laurent@vivier.eu>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"Alex Bennée" <alex.bennee@linaro.org>
Cc: qemu-devel@nongnu.org,
	Richard Henderson <richard.henderson@linaro.org>,
	Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>,
	Thomas Huth <thuth@redhat.com>
Subject: [PATCH 3/7] audio: fix size calculation in AUD_get_buffer_size_out()
Date: Sun, 11 May 2025 09:38:42 +0200	[thread overview]
Message-ID: <20250511073846.8713-3-vr_qemu@t-online.de> (raw)
In-Reply-To: <d456c188-0463-4dc2-9178-469f840eaebe@t-online.de>

The buffer size calculated by AUD_get_buffer_size_out() is often
incorrect. sw->hw->samples * sw->hw->info.bytes_per_frame is the
size of the mixing engine buffer in audio frames multiplied by
the size of one frame of the audio backend. Due to resampling or
format conversion, the size of the frontend buffer can differ
significantly.

Return the correct buffer size when the mixing engine is used.

Signed-off-by: Volker Rümelin <vr_qemu@t-online.de>
---
 audio/audio.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/audio/audio.c b/audio/audio.c
index 70ef22b1a4..3f5baf0cc6 100644
--- a/audio/audio.c
+++ b/audio/audio.c
@@ -909,6 +909,10 @@ int AUD_get_buffer_size_out(SWVoiceOut *sw)
         return 0;
     }
 
+    if (audio_get_pdo_out(sw->s->dev)->mixing_engine) {
+        return sw->resample_buf.size * sw->info.bytes_per_frame;
+    }
+
     return sw->hw->samples * sw->hw->info.bytes_per_frame;
 }
 
-- 
2.43.0



  parent reply	other threads:[~2025-05-11  7:39 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-05-11  7:36 [PATCH 0/7] audio related fixes for 10.1 Volker Rümelin
2025-05-11  7:38 ` [PATCH 1/7] tests/functional: use 'none' audio driver for q800 tests Volker Rümelin
2025-05-11  7:38 ` [PATCH 2/7] audio: fix SIGSEGV in AUD_get_buffer_size_out() Volker Rümelin
2025-05-11  7:38 ` Volker Rümelin [this message]
2025-05-11  7:38 ` [PATCH 4/7] hw/audio/asc: fix SIGSEGV in asc_realize() Volker Rümelin
2025-05-11 11:52   ` Mark Cave-Ayland
2025-05-13  6:14     ` Volker Rümelin
2025-05-13  8:17       ` Mark Cave-Ayland
2025-05-14  5:43         ` Volker Rümelin
2025-05-11  7:38 ` [PATCH 5/7] hw/audio/asc: replace g_malloc0() with g_malloc() Volker Rümelin
2025-05-11 11:53   ` Mark Cave-Ayland
2025-05-11  7:38 ` [PATCH 6/7] audio/mixeng: remove unnecessary pointer type casts Volker Rümelin
2025-05-11  7:38 ` [PATCH 7/7] audio: add float sample endianness converters Volker Rümelin
2025-05-11 10:08 ` [PATCH 0/7] audio related fixes for 10.1 Marc-André Lureau
2025-05-13  6:40 ` Michael Tokarev
2025-05-14  6:26   ` Volker Rümelin
2025-05-14  9:19     ` Michael Tokarev

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=20250511073846.8713-3-vr_qemu@t-online.de \
    --to=vr_qemu@t-online.de \
    --cc=alex.bennee@linaro.org \
    --cc=kraxel@redhat.com \
    --cc=laurent@vivier.eu \
    --cc=marcandre.lureau@redhat.com \
    --cc=mark.cave-ayland@ilande.co.uk \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --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).