module: handle error and unconnected states

Unload the module on error/unconnected
This commit is contained in:
Wim Taymans 2022-04-20 19:33:18 +02:00
parent 26471ff2da
commit f205a09ade
2 changed files with 24 additions and 0 deletions

View file

@ -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;
}