audio/pw: Report more accurate error when connecting to PipeWire fails
According to its man page [1], pw_context_connect() sets errno on failure: Returns a Core on success or NULL with errno set on error. It may be handy to see errno when figuring out why PipeWire failed to connect. That leaves us with just one possible path to reach 'fail_error' label which is then moved to that path and also its error message is adjusted slightly. 1: https://docs.pipewire.org/group__pw__core.html#ga5994e3a54e4ec718094ca02a1234815b Signed-off-by: Michal Privoznik <mprivozn@redhat.com> Reviewed-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-ID: <3a78811ad5b0e87816b7616ab21d2eeef00b9c52.1726647033.git.mprivozn@redhat.com>
This commit is contained in:
parent
ab10297a4a
commit
4cd78a3db2
@ -769,13 +769,15 @@ qpw_audio_init(Audiodev *dev, Error **errp)
|
|||||||
pw->core = pw_context_connect(pw->context, NULL, 0);
|
pw->core = pw_context_connect(pw->context, NULL, 0);
|
||||||
if (pw->core == NULL) {
|
if (pw->core == NULL) {
|
||||||
pw_thread_loop_unlock(pw->thread_loop);
|
pw_thread_loop_unlock(pw->thread_loop);
|
||||||
goto fail_error;
|
error_setg_errno(errp, errno, "Failed to connect to PipeWire instance");
|
||||||
|
goto fail;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pw_core_add_listener(pw->core, &pw->core_listener,
|
if (pw_core_add_listener(pw->core, &pw->core_listener,
|
||||||
&core_events, pw) < 0) {
|
&core_events, pw) < 0) {
|
||||||
pw_thread_loop_unlock(pw->thread_loop);
|
pw_thread_loop_unlock(pw->thread_loop);
|
||||||
goto fail_error;
|
error_setg(errp, "Failed to add PipeWire listener");
|
||||||
|
goto fail;
|
||||||
}
|
}
|
||||||
if (wait_resync(pw) < 0) {
|
if (wait_resync(pw) < 0) {
|
||||||
pw_thread_loop_unlock(pw->thread_loop);
|
pw_thread_loop_unlock(pw->thread_loop);
|
||||||
@ -785,8 +787,6 @@ qpw_audio_init(Audiodev *dev, Error **errp)
|
|||||||
|
|
||||||
return g_steal_pointer(&pw);
|
return g_steal_pointer(&pw);
|
||||||
|
|
||||||
fail_error:
|
|
||||||
error_setg(errp, "Failed to initialize PW context");
|
|
||||||
fail:
|
fail:
|
||||||
if (pw->thread_loop) {
|
if (pw->thread_loop) {
|
||||||
pw_thread_loop_stop(pw->thread_loop);
|
pw_thread_loop_stop(pw->thread_loop);
|
||||||
|
Loading…
Reference in New Issue
Block a user