mirror of
				https://gitlab.freedesktop.org/pipewire/pipewire.git
				synced 2025-11-03 09:01:54 -05:00 
			
		
		
		
	pulse-server: set the SINK_SET_FORMATS flag
When we have an iec958Codecs property on the node, we can use it to configure the codecs on the sink.
This commit is contained in:
		
							parent
							
								
									49eb31f670
								
							
						
					
					
						commit
						ea7a731106
					
				
					 3 changed files with 5 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -281,6 +281,8 @@ void collect_device_info(struct pw_manager_object *device, struct pw_manager_obj
 | 
			
		|||
				volume_parse_param(p->param, &dev_info->volume_info, monitor);
 | 
			
		||||
				dev_info->have_volume = true;
 | 
			
		||||
			}
 | 
			
		||||
			dev_info->have_iec958codecs = spa_pod_find_prop(p->param,
 | 
			
		||||
					NULL, SPA_PROP_iec958Codecs) != NULL;
 | 
			
		||||
			break;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -63,6 +63,7 @@ struct device_info {
 | 
			
		|||
	struct channel_map map;
 | 
			
		||||
	struct volume_info volume_info;
 | 
			
		||||
	unsigned int have_volume:1;
 | 
			
		||||
	unsigned int have_iec958codecs:1;
 | 
			
		||||
 | 
			
		||||
	uint32_t device;
 | 
			
		||||
	uint32_t active_port;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3488,6 +3488,8 @@ static int fill_sink_info(struct client *client, struct message *m,
 | 
			
		|||
		flags |= SINK_HW_VOLUME_CTRL;
 | 
			
		||||
	if (SPA_FLAG_IS_SET(dev_info.volume_info.flags, VOLUME_HW_MUTE))
 | 
			
		||||
		flags |= SINK_HW_MUTE_CTRL;
 | 
			
		||||
	if (dev_info.have_iec958codecs)
 | 
			
		||||
		flags |= SINK_SET_FORMATS;
 | 
			
		||||
 | 
			
		||||
	if (client->quirks & QUIRK_FORCE_S16_FORMAT)
 | 
			
		||||
		dev_info.ss.format = SPA_AUDIO_FORMAT_S16;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue