078b914c2d
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/pulseaudio?expand=0&rev=a41c182c62abf2480b0be2b95493c211
49 lines
2.0 KiB
Diff
49 lines
2.0 KiB
Diff
From dd682d6f96fe7133b866c97b72edcb6136a9737c Mon Sep 17 00:00:00 2001
|
|
From: Lennart Poettering <lennart@poettering.net>
|
|
Date: Mon, 22 Feb 2010 04:54:24 +0100
|
|
Subject: [PATCH] alsa: reset max_rewind/max_request while suspending
|
|
|
|
---
|
|
src/modules/alsa/alsa-sink.c | 11 ++++++++++-
|
|
1 files changed, 10 insertions(+), 1 deletions(-)
|
|
|
|
diff --git a/src/modules/alsa/alsa-sink.c b/src/modules/alsa/alsa-sink.c
|
|
index 690480f..60c10c4 100644
|
|
--- a/src/modules/alsa/alsa-sink.c
|
|
+++ b/src/modules/alsa/alsa-sink.c
|
|
@@ -79,7 +79,7 @@
|
|
#define TSCHED_MIN_WAKEUP_USEC (4*PA_USEC_PER_MSEC) /* 4ms -- Wakeup at least this long before the buffer runs empty*/
|
|
|
|
#define SMOOTHER_MIN_INTERVAL (2*PA_USEC_PER_MSEC) /* 2ms -- min smoother update interval */
|
|
-#define SMOOTHER_MAX_INTERVAL (200*PA_USEC_PER_MSEC) /* 200ms -- max smoother update inteval */
|
|
+#define SMOOTHER_MAX_INTERVAL (200*PA_USEC_PER_MSEC) /* 200ms -- max smoother update interval */
|
|
|
|
#define VOLUME_ACCURACY (PA_VOLUME_NORM/100) /* don't require volume adjustments to be perfectly correct. don't necessarily extend granularity in software unless the differences get greater than this level */
|
|
|
|
@@ -876,6 +876,14 @@ static int suspend(struct userdata *u) {
|
|
u->alsa_rtpoll_item = NULL;
|
|
}
|
|
|
|
+ /* We reset max_rewind/max_request here to make sure that while we
|
|
+ * are suspended the old max_request/max_rewind values set before
|
|
+ * the suspend can influence the per-stream buffer of newly
|
|
+ * created streams, without their requirements having any
|
|
+ * influence on them. */
|
|
+ pa_sink_set_max_rewind_within_thread(u->sink, 0);
|
|
+ pa_sink_set_max_request_within_thread(u->sink, 0);
|
|
+
|
|
pa_log_info("Device suspended...");
|
|
|
|
return 0;
|
|
@@ -933,6 +941,7 @@ 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);
|
|
|
|
return 0;
|
|
}
|
|
--
|
|
1.6.0.2
|
|
|