>
> Forgot to mention: can you please fix your name (full name please if
> possible, with capital letters etc. - it makes the shortlog nicer), your
> tabs (we use spaces) and in this case there was actually a bug - u->sink
> was used in the alsa-source code.... it should have been u->source, so
> please do a compile test at least before submitting patches :D
>
Hi Col,
All Done. Thanks. Pls find attached patch.
I'll use @intel.com account directly to send patch.

--xingchao
From 67f9b084c9aa1baffb60db0db7ca409ebaba8703 Mon Sep 17 00:00:00 2001
From: xingchao <[email protected]>
Date: Fri, 12 Aug 2011 08:41:45 -0400
Subject: [PATCH] update process_usec before enter sleep

during check_left_to_play/record(), there's chance to increase/decrease
watermark. So before sleep, the actural sleep time should based on latest watermark.

Signed-off-by: xingchao <[email protected]>
---
 src/modules/alsa/alsa-sink.c   |    2 ++
 src/modules/alsa/alsa-source.c |    2 ++
 2 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/src/modules/alsa/alsa-sink.c b/src/modules/alsa/alsa-sink.c
index dd2546c..35bca44 100644
--- a/src/modules/alsa/alsa-sink.c
+++ b/src/modules/alsa/alsa-sink.c
@@ -647,6 +647,7 @@ static int mmap_write(struct userdata *u, pa_usec_t *sleep_usec, pa_bool_t polle
 
     if (u->use_tsched) {
         *sleep_usec = pa_bytes_to_usec(left_to_play, &u->sink->sample_spec);
+	process_usec = pa_bytes_to_usec(u->tsched_watermark, &u->sink->sample_spec);
 
         if (*sleep_usec > process_usec)
             *sleep_usec -= process_usec;
@@ -787,6 +788,7 @@ static int unix_write(struct userdata *u, pa_usec_t *sleep_usec, pa_bool_t polle
 
     if (u->use_tsched) {
         *sleep_usec = pa_bytes_to_usec(left_to_play, &u->sink->sample_spec);
+	process_usec = pa_bytes_to_usec(u->tsched_watermark, &u->sink->sample_spec);
 
         if (*sleep_usec > process_usec)
             *sleep_usec -= process_usec;
diff --git a/src/modules/alsa/alsa-source.c b/src/modules/alsa/alsa-source.c
index ca3a913..96ef683 100644
--- a/src/modules/alsa/alsa-source.c
+++ b/src/modules/alsa/alsa-source.c
@@ -613,6 +613,7 @@ static int mmap_read(struct userdata *u, pa_usec_t *sleep_usec, pa_bool_t polled
 
     if (u->use_tsched) {
         *sleep_usec = pa_bytes_to_usec(left_to_record, &u->source->sample_spec);
+	process_usec = pa_bytes_to_usec(u->tsched_watermark, &u->source->sample_spec);
 
         if (*sleep_usec > process_usec)
             *sleep_usec -= process_usec;
@@ -742,6 +743,7 @@ static int unix_read(struct userdata *u, pa_usec_t *sleep_usec, pa_bool_t polled
 
     if (u->use_tsched) {
         *sleep_usec = pa_bytes_to_usec(left_to_record, &u->source->sample_spec);
+	process_usec = pa_bytes_to_usec(u->tsched_watermark, &u->source->sample_spec);
 
         if (*sleep_usec > process_usec)
             *sleep_usec -= process_usec;
-- 
1.7.1

_______________________________________________
pulseaudio-discuss mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss

Reply via email to