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 <[email protected]>
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 <[email protected]>
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 <[email protected]> for finding this
    workaround, and Tanu Kaskinen <[email protected]> for providing
    valuable feedback.
    
    Signed-off-by: Pierre-Louis Bossart <[email protected]>

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
_______________________________________________
pulseaudio-commits mailing list
[email protected]
https://tango.0pointer.de/mailman/listinfo/pulseaudio-commits

Reply via email to