summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2010-02-22 03:22:28 +0100
committerLennart Poettering <lennart@poettering.net>2010-02-22 03:22:28 +0100
commita469d44e6993c4e9e7a53ac91ed53eacb500e279 (patch)
treee5695a867b8ef2bd2765019379e1102ced3b3d5f
parentb2e9fb6f6e12a3eab8a41c67017507e60d616e2a (diff)
suspend-on-idle: resume audio device even for initially corked streams
We need to resume audio devices even for streams that are created in corked stat, so that the latency ranges of the audio device are known during the initial latency negotiation. If we don't the latency negotiation will be based on placeholder data and changed later on which clients do not expect. This should fix issues with Skype. https://bugzilla.redhat.com/show_bug.cgi?id=554929
-rw-r--r--src/modules/module-suspend-on-idle.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/src/modules/module-suspend-on-idle.c b/src/modules/module-suspend-on-idle.c
index 7adaa0b1..cfb78792 100644
--- a/src/modules/module-suspend-on-idle.c
+++ b/src/modules/module-suspend-on-idle.c
@@ -145,8 +145,9 @@ static pa_hook_result_t sink_input_fixate_hook_cb(pa_core *c, pa_sink_input_new_
pa_assert(data);
pa_assert(u);
- if (data->flags & PA_SINK_INPUT_START_CORKED)
- return PA_HOOK_OK;
+ /* We need to resume the audio device here even for
+ * PA_SINK_INPUT_START_CORKED, since we need the device parameters
+ * to be fully available while the stream is set up. */
if ((d = pa_hashmap_get(u->device_infos, data->sink)))
resume(d);
@@ -161,9 +162,6 @@ static pa_hook_result_t source_output_fixate_hook_cb(pa_core *c, pa_source_outpu
pa_assert(data);
pa_assert(u);
- if (data->flags & PA_SOURCE_OUTPUT_START_CORKED)
- return PA_HOOK_OK;
-
if (data->source->monitor_of)
d = pa_hashmap_get(u->device_infos, data->source->monitor_of);
else