On 25.05.2025 16:27, marcandre.lur...@redhat.com wrote:
From: Volker Rümelin <vr_q...@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.

Reviewed-by: Marc-André Lureau <marcandre.lur...@redhat.com>
Signed-off-by: Volker Rümelin <vr_q...@t-online.de>
Message-Id: <20250515054429.7385-3-vr_q...@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;
  }

Hi!

Is this relevant for 7.2.x qemu-stable series?

Commit v7.2.0-2160-g2c3f9a0a92 "audio: change type and name of the
resample buffer" introduced sw->resample_buf, before that commit
there was sw->buf, of different type.

Maybe whole this series should not be picked up for stable-7.2,
after all?

Thanks,

/mjt

Reply via email to