mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-03 09:01:54 -05:00
stream: don't call suspended callback when disconnecting
This commit is contained in:
parent
7f086da39e
commit
091b420b0b
1 changed files with 8 additions and 7 deletions
|
|
@ -226,9 +226,10 @@ static void stream_state_changed(void *data, enum pw_stream_state old,
|
||||||
enum pw_stream_state state, const char *error)
|
enum pw_stream_state state, const char *error)
|
||||||
{
|
{
|
||||||
pa_stream *s = data;
|
pa_stream *s = data;
|
||||||
|
pa_context *c = s->context;
|
||||||
|
|
||||||
pw_log_debug("stream %p: state '%s'->'%s'", s, pw_stream_state_as_string(old),
|
pw_log_debug("stream %p: state '%s'->'%s' (%d)", s, pw_stream_state_as_string(old),
|
||||||
pw_stream_state_as_string(state));
|
pw_stream_state_as_string(state), s->state);
|
||||||
|
|
||||||
if (s->state == PA_STREAM_TERMINATED)
|
if (s->state == PA_STREAM_TERMINATED)
|
||||||
return;
|
return;
|
||||||
|
|
@ -239,7 +240,7 @@ static void stream_state_changed(void *data, enum pw_stream_state old,
|
||||||
break;
|
break;
|
||||||
case PW_STREAM_STATE_UNCONNECTED:
|
case PW_STREAM_STATE_UNCONNECTED:
|
||||||
if (!s->disconnecting) {
|
if (!s->disconnecting) {
|
||||||
pa_context_set_error(s->context, PA_ERR_KILLED);
|
pa_context_set_error(c, PA_ERR_KILLED);
|
||||||
pa_stream_set_state(s, PA_STREAM_FAILED);
|
pa_stream_set_state(s, PA_STREAM_FAILED);
|
||||||
} else {
|
} else {
|
||||||
pa_stream_set_state(s, PA_STREAM_TERMINATED);
|
pa_stream_set_state(s, PA_STREAM_TERMINATED);
|
||||||
|
|
@ -249,16 +250,16 @@ static void stream_state_changed(void *data, enum pw_stream_state old,
|
||||||
pa_stream_set_state(s, PA_STREAM_CREATING);
|
pa_stream_set_state(s, PA_STREAM_CREATING);
|
||||||
break;
|
break;
|
||||||
case PW_STREAM_STATE_PAUSED:
|
case PW_STREAM_STATE_PAUSED:
|
||||||
if (!s->suspended && s->suspended_callback) {
|
if (!s->suspended && !c->disconnect && s->suspended_callback) {
|
||||||
s->suspended = true;
|
|
||||||
s->suspended_callback(s, s->suspended_userdata);
|
s->suspended_callback(s, s->suspended_userdata);
|
||||||
}
|
}
|
||||||
|
s->suspended = true;
|
||||||
break;
|
break;
|
||||||
case PW_STREAM_STATE_STREAMING:
|
case PW_STREAM_STATE_STREAMING:
|
||||||
if (s->suspended && s->suspended_callback) {
|
if (s->suspended && !c->disconnect && s->suspended_callback) {
|
||||||
s->suspended = false;
|
|
||||||
s->suspended_callback(s, s->suspended_userdata);
|
s->suspended_callback(s, s->suspended_userdata);
|
||||||
}
|
}
|
||||||
|
s->suspended = false;
|
||||||
configure_device(s);
|
configure_device(s);
|
||||||
configure_buffers(s);
|
configure_buffers(s);
|
||||||
pa_stream_set_state(s, PA_STREAM_READY);
|
pa_stream_set_state(s, PA_STREAM_READY);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue