[pulseaudio-commits] [SCM] PulseAudio Sound Server branch, master, updated. v0.9.19-517-gcb55b00

Colin Guthrie gitmailer-noreply at 0pointer.de
Tue Jul 13 14:11:56 PDT 2010


This is an automated email from the git hooks/post-receive script. It was
generated because of a push to the "PulseAudio Sound Server" repository.

The master branch has been updated
      from  1415a295c25d331985c2e9a2a387ba0edd89ea0f (commit)

- Log -----------------------------------------------------------------
cb55b00 alsa: disable rewinds when using ALSA plugins
3ede7e4 alsa: Fix assertion on mmap_write (triggered via a52 plugin)
-----------------------------------------------------------------------

Summary of changes:
 src/modules/alsa/alsa-sink.c |   17 +++++++++++++++--
 1 files changed, 15 insertions(+), 2 deletions(-)

-----------------------------------------------------------------------

commit 3ede7e4c01e0c429d4b6ac7a3eb25d7e6753ba21
Author: Colin Guthrie <cguthrie at mandriva.org>
Date:   Sun Jun 6 21:19:34 2010 +0100

    alsa: Fix assertion on mmap_write (triggered via a52 plugin)

diff --git a/src/modules/alsa/alsa-sink.c b/src/modules/alsa/alsa-sink.c
index 35a806c..2995c3c 100644
--- a/src/modules/alsa/alsa-sink.c
+++ b/src/modules/alsa/alsa-sink.c
@@ -610,6 +610,9 @@ static int mmap_write(struct userdata *u, pa_usec_t *sleep_usec, pa_bool_t polle
 
             if (PA_UNLIKELY((sframes = snd_pcm_mmap_commit(u->pcm_handle, offset, frames)) < 0)) {
 
+                if (!after_avail && (int) sframes == -EAGAIN)
+                    break;
+
                 if ((r = try_recover(u, "snd_pcm_mmap_commit", (int) sframes)) == 0)
                     continue;
 

commit cb55b00ccd25d965b1222e74375aee05427a449b
Author: Pierre-Louis Bossart <pierre-louis.bossart at intel.com>
Date:   Tue Jul 13 15:27:40 2010 -0500

    alsa: disable rewinds when using ALSA plugins
    
    This is required to when playing on a52: device, rewind is broken
    in those plugins.
    Credits to Michael Rans <mcarans at yahoo.co.uk> for finding this
    workaround, and Tanu Kaskinen <tanuk at iki.fi> for providing
    valuable feedback.
    
    Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart at intel.com>

diff --git a/src/modules/alsa/alsa-sink.c b/src/modules/alsa/alsa-sink.c
index 2995c3c..2e54dbe 100644
--- a/src/modules/alsa/alsa-sink.c
+++ b/src/modules/alsa/alsa-sink.c
@@ -953,7 +953,12 @@ static int update_sw_params(struct userdata *u) {
     }
 
     pa_sink_set_max_request_within_thread(u->sink, u->hwbuf_size - u->hwbuf_unused);
-    pa_sink_set_max_rewind_within_thread(u->sink, u->hwbuf_size);
+     if (pa_alsa_pcm_is_hw(u->pcm_handle))
+         pa_sink_set_max_rewind_within_thread(u->sink, u->hwbuf_size);
+    else {
+        pa_log_info("Disabling rewind_within_thread for device %s", u->device_name);
+        pa_sink_set_max_rewind_within_thread(u->sink, 0);
+    }
 
     return 0;
 }
@@ -1906,7 +1911,12 @@ pa_sink *pa_alsa_sink_new(pa_module *m, pa_modargs *ma, const char*driver, pa_ca
                 (double) pa_bytes_to_usec(u->hwbuf_size, &ss) / PA_USEC_PER_MSEC);
 
     pa_sink_set_max_request(u->sink, u->hwbuf_size);
-    pa_sink_set_max_rewind(u->sink, u->hwbuf_size);
+    if (pa_alsa_pcm_is_hw(u->pcm_handle))
+        pa_sink_set_max_rewind(u->sink, u->hwbuf_size);
+    else {
+        pa_log_info("Disabling rewind for device %s", u->device_name);
+        pa_sink_set_max_rewind(u->sink, 0);
+    }
 
     if (u->use_tsched) {
         u->tsched_watermark = pa_usec_to_bytes_round_up(pa_bytes_to_usec_round_up(tsched_watermark, &requested_ss), &u->sink->sample_spec);

-- 
hooks/post-receive
PulseAudio Sound Server



More information about the pulseaudio-commits mailing list