]> code.delx.au - pulseaudio/commitdiff
sink,source: Fix corked stream handling in update_rate()
authorArun Raghavan <arun.raghavan@collabora.co.uk>
Mon, 7 Nov 2011 06:01:42 +0000 (11:31 +0530)
committerArun Raghavan <arun.raghavan@collabora.co.uk>
Mon, 7 Nov 2011 06:01:42 +0000 (11:31 +0530)
This fixes the conditional that checks for corked streams and prevents
rate updates.

src/pulsecore/sink.c
src/pulsecore/source.c

index eb67b47a1a6795e2025a915db9664e7ed91b30d7..99acb2fc776ddc956b556625806dbdca82ecee2d 100644 (file)
@@ -1385,9 +1385,10 @@ pa_bool_t pa_sink_update_rate(pa_sink *s, uint32_t rate, pa_bool_t passthrough)
             desired_rate = rate; /* use stream sampling rate, discard default/alternate settings */
         }
 
-        if (passthrough || pa_sink_linked_by(s) == 0) {
-            pa_sink_suspend(s, TRUE, PA_SUSPEND_IDLE); /* needed before rate update, will be resumed automatically */
-        }
+        if (!passthrough && pa_sink_linked_by(s) > 0)
+            return FALSE;
+
+        pa_sink_suspend(s, TRUE, PA_SUSPEND_IDLE); /* needed before rate update, will be resumed automatically */
 
         if (s->update_rate(s, desired_rate) == TRUE) {
             /* update monitor source as well */
index 361780aeb7f16d03e5836f66ed8d83d80ad2ab50..ac814925e243a4df9486517f2867b924a1dcc7a1 100644 (file)
@@ -972,9 +972,10 @@ pa_bool_t pa_source_update_rate(pa_source *s, uint32_t rate, pa_bool_t passthrou
             desired_rate = rate; /* use stream sampling rate, discard default/alternate settings */
         }
 
-        if (passthrough || pa_source_linked_by(s) == 0) {
-            pa_source_suspend(s, TRUE, PA_SUSPEND_IDLE); /* needed before rate update, will be resumed automatically */
-        }
+        if (!passthrough && pa_source_linked_by(s) > 0)
+            return FALSE;
+
+        pa_source_suspend(s, TRUE, PA_SUSPEND_IDLE); /* needed before rate update, will be resumed automatically */
 
         if (s->update_rate(s, desired_rate) == TRUE) {
             pa_log_info("Changed sampling rate successfully ");