[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 2/6] pa: process 1/4 buffer max at once
From: |
Gerd Hoffmann |
Subject: |
[Qemu-devel] [PATCH 2/6] pa: process 1/4 buffer max at once |
Date: |
Wed, 27 Oct 2010 18:04:31 +0200 |
Limit the size of data pieces processed by the pulseaudio worker
threads. Never ever process more than 1/4 of the buffer at once.
Data processing is less bulky then.
Signed-off-by: Gerd Hoffmann <address@hidden>
---
audio/paaudio.c | 14 ++++----------
1 files changed, 4 insertions(+), 10 deletions(-)
diff --git a/audio/paaudio.c b/audio/paaudio.c
index f768ca9..f99ca73 100644
--- a/audio/paaudio.c
+++ b/audio/paaudio.c
@@ -57,9 +57,6 @@ static void *qpa_thread_out (void *arg)
{
PAVoiceOut *pa = arg;
HWVoiceOut *hw = &pa->hw;
- int threshold;
-
- threshold = conf.divisor ? hw->samples / conf.divisor : 0;
if (audio_pt_lock (&pa->pt, AUDIO_FUNC)) {
return NULL;
@@ -73,7 +70,7 @@ static void *qpa_thread_out (void *arg)
goto exit;
}
- if (pa->live > threshold) {
+ if (pa->live > 0) {
break;
}
@@ -82,7 +79,7 @@ static void *qpa_thread_out (void *arg)
}
}
- decr = to_mix = pa->live;
+ decr = to_mix = audio_MIN (pa->live, conf.samples >> 2);
rpos = pa->rpos;
if (audio_pt_unlock (&pa->pt, AUDIO_FUNC)) {
@@ -152,9 +149,6 @@ static void *qpa_thread_in (void *arg)
{
PAVoiceIn *pa = arg;
HWVoiceIn *hw = &pa->hw;
- int threshold;
-
- threshold = conf.divisor ? hw->samples / conf.divisor : 0;
if (audio_pt_lock (&pa->pt, AUDIO_FUNC)) {
return NULL;
@@ -168,7 +162,7 @@ static void *qpa_thread_in (void *arg)
goto exit;
}
- if (pa->dead > threshold) {
+ if (pa->dead > 0) {
break;
}
@@ -177,7 +171,7 @@ static void *qpa_thread_in (void *arg)
}
}
- incr = to_grab = pa->dead;
+ incr = to_grab = audio_MIN (pa->dead, conf.samples >> 2);
wpos = pa->wpos;
if (audio_pt_unlock (&pa->pt, AUDIO_FUNC)) {
--
1.7.1
[Qemu-devel] [PATCH 6/6] Add Intel HD Audio support to qemu., Gerd Hoffmann, 2010/10/27
Re: [Qemu-devel] [PATCH 0/6] The windows 7 audio support patch series., malc, 2010/10/27