]> code.delx.au - pulseaudio/blobdiff - src/modules/module-combine-sink.c
combine-sink: fix segfault
[pulseaudio] / src / modules / module-combine-sink.c
index 9b71cfbc83cf4f4ee9504e7c0bf3a9bf5f6b5c94..deabcebbd43959ca586de955d75f70007c406f5b 100644 (file)
@@ -216,11 +216,13 @@ static void adjust_rates(struct userdata *u) {
 
     PA_IDXSET_FOREACH(o, u->outputs, idx) {
         uint32_t new_rate = base_rate;
-        uint32_t current_rate = o->sink_input->sample_spec.rate;
+        uint32_t current_rate;
 
         if (!o->sink_input || !PA_SINK_IS_OPENED(pa_sink_get_state(o->sink)))
             continue;
 
+        current_rate = o->sink_input->sample_spec.rate;
+
         if (o->total_latency != target_latency)
             new_rate += (uint32_t) (((double) o->total_latency - (double) target_latency) / (double) u->adjust_time * (double) new_rate);