diff options
Diffstat (limited to 'src/pulsecore')
-rw-r--r-- | src/pulsecore/sink.c | 9 | ||||
-rw-r--r-- | src/pulsecore/source.c | 9 |
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; |