diff mbox series

pulseaudio: process audio data in smaller chunks

Message ID 20180703121924.11411-1-kraxel@redhat.com
State New
Headers show
Series pulseaudio: process audio data in smaller chunks | expand

Commit Message

Gerd Hoffmann July 3, 2018, 12:19 p.m. UTC
The rate of pulseaudio absorbing the audio stream is used to control the
the rate of the guests audio stream.  When the emulated hardware uses
small chunks (like intel-hda does) we need small chunks on the audio
backend side too, otherwise that feedback loop doesn't work very well.

Cc: Max Ehrlich <maxehr@umiacs.umd.edu>
Cc: Martin Schrodt <martin@schrodt.org>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 audio/paaudio.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Philippe Mathieu-Daudé July 3, 2018, 2:06 p.m. UTC | #1
On 07/03/2018 09:19 AM, Gerd Hoffmann wrote:
> The rate of pulseaudio absorbing the audio stream is used to control the
> the rate of the guests audio stream.  When the emulated hardware uses
> small chunks (like intel-hda does) we need small chunks on the audio
> backend side too, otherwise that feedback loop doesn't work very well.
> 
> Cc: Max Ehrlich <maxehr@umiacs.umd.edu>
> Cc: Martin Schrodt <martin@schrodt.org>
> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
> ---
>  audio/paaudio.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/audio/paaudio.c b/audio/paaudio.c
> index 949769774d..4c100bc318 100644
> --- a/audio/paaudio.c
> +++ b/audio/paaudio.c
> @@ -227,7 +227,7 @@ static void *qpa_thread_out (void *arg)
>              }
>          }
>  
> -        decr = to_mix = audio_MIN (pa->live, pa->g->conf.samples >> 2);
> +        decr = to_mix = audio_MIN(pa->live, pa->g->conf.samples >> 5);
>          rpos = pa->rpos;
>  
>          if (audio_pt_unlock(&pa->pt, __func__)) {
> @@ -319,7 +319,7 @@ static void *qpa_thread_in (void *arg)
>              }
>          }
>  
> -        incr = to_grab = audio_MIN (pa->dead, pa->g->conf.samples >> 2);
> +        incr = to_grab = audio_MIN(pa->dead, pa->g->conf.samples >> 5);

Same pattern/value: can we have a #define?

I looked at the PA intel-hda code and couldn't find the chunk size,
anyway this change looks sane.

>          wpos = pa->wpos;
>  
>          if (audio_pt_unlock(&pa->pt, __func__)) {
>
diff mbox series

Patch

diff --git a/audio/paaudio.c b/audio/paaudio.c
index 949769774d..4c100bc318 100644
--- a/audio/paaudio.c
+++ b/audio/paaudio.c
@@ -227,7 +227,7 @@  static void *qpa_thread_out (void *arg)
             }
         }
 
-        decr = to_mix = audio_MIN (pa->live, pa->g->conf.samples >> 2);
+        decr = to_mix = audio_MIN(pa->live, pa->g->conf.samples >> 5);
         rpos = pa->rpos;
 
         if (audio_pt_unlock(&pa->pt, __func__)) {
@@ -319,7 +319,7 @@  static void *qpa_thread_in (void *arg)
             }
         }
 
-        incr = to_grab = audio_MIN (pa->dead, pa->g->conf.samples >> 2);
+        incr = to_grab = audio_MIN(pa->dead, pa->g->conf.samples >> 5);
         wpos = pa->wpos;
 
         if (audio_pt_unlock(&pa->pt, __func__)) {