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)
 | 
			
		||||
{
 | 
			
		||||
	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_stream_state_as_string(state));
 | 
			
		||||
	pw_log_debug("stream %p: state  '%s'->'%s' (%d)", s, pw_stream_state_as_string(old),
 | 
			
		||||
			pw_stream_state_as_string(state), s->state);
 | 
			
		||||
 | 
			
		||||
	if (s->state == PA_STREAM_TERMINATED)
 | 
			
		||||
		return;
 | 
			
		||||
| 
						 | 
				
			
			@ -239,7 +240,7 @@ static void stream_state_changed(void *data, enum pw_stream_state old,
 | 
			
		|||
		break;
 | 
			
		||||
	case PW_STREAM_STATE_UNCONNECTED:
 | 
			
		||||
		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);
 | 
			
		||||
		} else {
 | 
			
		||||
			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);
 | 
			
		||||
		break;
 | 
			
		||||
	case PW_STREAM_STATE_PAUSED:
 | 
			
		||||
		if (!s->suspended && s->suspended_callback) {
 | 
			
		||||
			s->suspended = true;
 | 
			
		||||
		if (!s->suspended && !c->disconnect && s->suspended_callback) {
 | 
			
		||||
			s->suspended_callback(s, s->suspended_userdata);
 | 
			
		||||
		}
 | 
			
		||||
		s->suspended = true;
 | 
			
		||||
		break;
 | 
			
		||||
	case PW_STREAM_STATE_STREAMING:
 | 
			
		||||
		if (s->suspended && s->suspended_callback) {
 | 
			
		||||
			s->suspended = false;
 | 
			
		||||
		if (s->suspended && !c->disconnect && s->suspended_callback) {
 | 
			
		||||
			s->suspended_callback(s, s->suspended_userdata);
 | 
			
		||||
		}
 | 
			
		||||
		s->suspended = false;
 | 
			
		||||
		configure_device(s);
 | 
			
		||||
		configure_buffers(s);
 | 
			
		||||
		pa_stream_set_state(s, PA_STREAM_READY);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue