mirror of
				https://gitlab.freedesktop.org/pipewire/pipewire.git
				synced 2025-11-03 09:01:54 -05:00 
			
		
		
		
	module: handle error and unconnected states
Unload the module on error/unconnected
This commit is contained in:
		
							parent
							
								
									26471ff2da
								
							
						
					
					
						commit
						f205a09ade
					
				
					 2 changed files with 24 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -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;
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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;
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue