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