diff --git a/src/modules/module-echo-cancel.c b/src/modules/module-echo-cancel.c index 1aa142ed1..a646a4efe 100644 --- a/src/modules/module-echo-cancel.c +++ b/src/modules/module-echo-cancel.c @@ -401,6 +401,14 @@ static void input_state_changed(void *data, enum pw_stream_state old, pw_stream_flush(impl->source, false); pw_stream_flush(impl->capture, false); break; + case PW_STREAM_STATE_UNCONNECTED: + pw_log_info("%p: input unconnected", impl); + pw_impl_module_schedule_destroy(impl->module); + break; + case PW_STREAM_STATE_ERROR: + pw_log_error("%p: input error: %s", impl, error); + pw_impl_module_schedule_destroy(impl->module); + break; default: break; } @@ -466,6 +474,14 @@ static void output_state_changed(void *data, enum pw_stream_state old, pw_stream_flush(impl->sink, false); pw_stream_flush(impl->playback, false); break; + case PW_STREAM_STATE_UNCONNECTED: + pw_log_info("%p: output unconnected", impl); + pw_impl_module_schedule_destroy(impl->module); + break; + case PW_STREAM_STATE_ERROR: + pw_log_error("%p: output error: %s", impl, error); + pw_impl_module_schedule_destroy(impl->module); + break; default: break; } diff --git a/src/modules/module-filter-chain.c b/src/modules/module-filter-chain.c index 143204186..3015e6819 100644 --- a/src/modules/module-filter-chain.c +++ b/src/modules/module-filter-chain.c @@ -605,6 +605,14 @@ static void state_changed(void *data, enum pw_stream_state old, pw_stream_flush(impl->capture, false); graph_reset(graph); break; + case PW_STREAM_STATE_UNCONNECTED: + pw_log_info("module %p: unconnected", impl); + pw_impl_module_schedule_destroy(impl->module); + break; + case PW_STREAM_STATE_ERROR: + pw_log_error("module %p: error: %s", impl, error); + pw_impl_module_schedule_destroy(impl->module); + break; default: break; }