]> code.delx.au - pulseaudio/commitdiff
core: cache requested latency only when we are running, not while we are still constr...
authorLennart Poettering <lennart@poettering.net>
Fri, 8 May 2009 00:02:36 +0000 (02:02 +0200)
committerLennart Poettering <lennart@poettering.net>
Fri, 8 May 2009 00:04:48 +0000 (02:04 +0200)
src/pulsecore/sink.c
src/pulsecore/source.c

index 3eb759cc0866bdc64d8c0612442f4e3e9f58b915..0f594dafadce3737591af6e48697a186f894b1a8 100644 (file)
@@ -1858,8 +1858,11 @@ pa_usec_t pa_sink_get_requested_latency_within_thread(pa_sink *s) {
     if (result != (pa_usec_t) -1)
         result = PA_CLAMP(result, s->thread_info.min_latency, s->thread_info.max_latency);
 
-    s->thread_info.requested_latency = result;
-    s->thread_info.requested_latency_valid = TRUE;
+    if (PA_SINK_IS_LINKED(s->thread_info.state)) {
+        /* Only cache if properly initialized */
+        s->thread_info.requested_latency = result;
+        s->thread_info.requested_latency_valid = TRUE;
+    }
 
     return result;
 }
index 92387f60c1b02699cafd7d6a8f4092e6baa1ede8..47bc5fb2941077d37f389fad8ef931047d2dd954 100644 (file)
@@ -1113,8 +1113,11 @@ pa_usec_t pa_source_get_requested_latency_within_thread(pa_source *s) {
     if (result != (pa_usec_t) -1)
         result = PA_CLAMP(result, s->thread_info.min_latency, s->thread_info.max_latency);
 
-    s->thread_info.requested_latency = result;
-    s->thread_info.requested_latency_valid = TRUE;
+    if (PA_SOURCE_IS_LINKED(s->thread_info.state)) {
+        /* Only cache this if we are fully set up */
+        s->thread_info.requested_latency = result;
+        s->thread_info.requested_latency_valid = TRUE;
+    }
 
     return result;
 }