summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/pulsecore/sink.c9
-rw-r--r--src/pulsecore/source.c9
2 files changed, 16 insertions, 2 deletions
diff --git a/src/pulsecore/sink.c b/src/pulsecore/sink.c
index b68ad3aa..ff4cc173 100644
--- a/src/pulsecore/sink.c
+++ b/src/pulsecore/sink.c
@@ -1763,7 +1763,14 @@ unsigned pa_sink_check_suspend(pa_sink *s) {
pa_sink_input_state_t st;
st = pa_sink_input_get_state(i);
- pa_assert(PA_SINK_INPUT_IS_LINKED(st));
+
+ /* We do not assert here. It is perfectly valid for a sink input to
+ * be in the INIT state (i.e. created, marked done but not yet put)
+ * and we should not care if it's unlinked as it won't contribute
+ * towarards our busy status.
+ */
+ if (!PA_SINK_INPUT_IS_LINKED(st))
+ continue;
if (st == PA_SINK_INPUT_CORKED)
continue;
diff --git a/src/pulsecore/source.c b/src/pulsecore/source.c
index 415c54bc..412a3db9 100644
--- a/src/pulsecore/source.c
+++ b/src/pulsecore/source.c
@@ -996,7 +996,14 @@ unsigned pa_source_check_suspend(pa_source *s) {
pa_source_output_state_t st;
st = pa_source_output_get_state(o);
- pa_assert(PA_SOURCE_OUTPUT_IS_LINKED(st));
+
+ /* We do not assert here. It is perfectly valid for a source output to
+ * be in the INIT state (i.e. created, marked done but not yet put)
+ * and we should not care if it's unlinked as it won't contribute
+ * towarards our busy status.
+ */
+ if (!PA_SOURCE_OUTPUT_IS_LINKED(st))
+ continue;
if (st == PA_SOURCE_OUTPUT_CORKED)
continue;