[PATCH 13/15] ossaudio: reduce effective playback buffer size

Volker Rümelin posted 15 patches 4 years, 1 month ago
There is a newer version of this series
[PATCH 13/15] ossaudio: reduce effective playback buffer size
Posted by Volker Rümelin 4 years, 1 month ago
From: Volker Rümelin <vr_qemu@t-online.de>

Add the buffer_get_free pcm_ops function for the mmapped case
to reduce the effective playback buffer size. All intermediate
audio playback buffers become temporary buffers.

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

diff --git a/audio/ossaudio.c b/audio/ossaudio.c
index 1bd6800840..da9c232222 100644
--- a/audio/ossaudio.c
+++ b/audio/ossaudio.c
@@ -394,7 +394,7 @@ static size_t oss_buffer_get_free(HWVoiceOut *hw)
     OSSVoiceOut *oss = (OSSVoiceOut *)hw;
 
     if (oss->mmapped) {
-        return INT_MAX;
+        return oss_get_available_bytes(oss);
     } else {
         return audio_generic_buffer_get_free(hw);
     }
@@ -402,9 +402,10 @@ static size_t oss_buffer_get_free(HWVoiceOut *hw)
 
 static void *oss_get_buffer_out(HWVoiceOut *hw, size_t *size)
 {
-    OSSVoiceOut *oss = (OSSVoiceOut *) hw;
+    OSSVoiceOut *oss = (OSSVoiceOut *)hw;
+
     if (oss->mmapped) {
-        *size = MIN(oss_get_available_bytes(oss), hw->size_emul - hw->pos_emul);
+        *size = hw->size_emul - hw->pos_emul;
         return hw->buf_emul + hw->pos_emul;
     } else {
         return audio_generic_get_buffer_out(hw, size);
-- 
2.31.1


Re: [PATCH 13/15] ossaudio: reduce effective playback buffer size
Posted by Philippe Mathieu-Daudé 4 years, 1 month ago
On 6/1/22 10:23, Volker Rümelin wrote:
> From: Volker Rümelin <vr_qemu@t-online.de>
> 
> Add the buffer_get_free pcm_ops function for the mmapped case
> to reduce the effective playback buffer size. All intermediate
> audio playback buffers become temporary buffers.

Description doesn't seem to match.

> 
> Signed-off-by: Volker Rümelin <vr_qemu@t-online.de>
> ---
>   audio/ossaudio.c | 7 ++++---
>   1 file changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/audio/ossaudio.c b/audio/ossaudio.c
> index 1bd6800840..da9c232222 100644
> --- a/audio/ossaudio.c
> +++ b/audio/ossaudio.c
> @@ -394,7 +394,7 @@ static size_t oss_buffer_get_free(HWVoiceOut *hw)
>       OSSVoiceOut *oss = (OSSVoiceOut *)hw;
>   
>       if (oss->mmapped) {
> -        return INT_MAX;
> +        return oss_get_available_bytes(oss);
>       } else {
>           return audio_generic_buffer_get_free(hw);
>       }
> @@ -402,9 +402,10 @@ static size_t oss_buffer_get_free(HWVoiceOut *hw)
>   
>   static void *oss_get_buffer_out(HWVoiceOut *hw, size_t *size)
>   {
> -    OSSVoiceOut *oss = (OSSVoiceOut *) hw;
> +    OSSVoiceOut *oss = (OSSVoiceOut *)hw;
> +
>       if (oss->mmapped) {
> -        *size = MIN(oss_get_available_bytes(oss), hw->size_emul - hw->pos_emul);
> +        *size = hw->size_emul - hw->pos_emul;
>           return hw->buf_emul + hw->pos_emul;
>       } else {
>           return audio_generic_get_buffer_out(hw, size);