mirror of
				https://gitlab.freedesktop.org/pipewire/pipewire.git
				synced 2025-11-03 09:01:54 -05:00 
			
		
		
		
	pulse-server: add some more supported channel_map values
This commit is contained in:
		
							parent
							
								
									157d6de607
								
							
						
					
					
						commit
						5a94bfc6cd
					
				
					 1 changed files with 69 additions and 5 deletions
				
			
		| 
						 | 
					@ -381,6 +381,69 @@ static inline void channel_map_parse(const char *str, struct channel_map *map)
 | 
				
			||||||
	const char *p = str;
 | 
						const char *p = str;
 | 
				
			||||||
	size_t len;
 | 
						size_t len;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (strcmp(p, "stereo") == 0) {
 | 
				
			||||||
 | 
							*map = (struct channel_map) {
 | 
				
			||||||
 | 
								.channels = 2,
 | 
				
			||||||
 | 
								.map[0] = SPA_AUDIO_CHANNEL_FL,
 | 
				
			||||||
 | 
								.map[1] = SPA_AUDIO_CHANNEL_FR,
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						} else if (strcmp(p, "surround-21") == 0) {
 | 
				
			||||||
 | 
							*map = (struct channel_map) {
 | 
				
			||||||
 | 
								.channels = 3,
 | 
				
			||||||
 | 
								.map[0] = SPA_AUDIO_CHANNEL_FL,
 | 
				
			||||||
 | 
								.map[1] = SPA_AUDIO_CHANNEL_FR,
 | 
				
			||||||
 | 
								.map[2] = SPA_AUDIO_CHANNEL_LFE,
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						} else if (strcmp(p, "surround-40") == 0) {
 | 
				
			||||||
 | 
							*map = (struct channel_map) {
 | 
				
			||||||
 | 
								.channels = 4,
 | 
				
			||||||
 | 
								.map[0] = SPA_AUDIO_CHANNEL_FL,
 | 
				
			||||||
 | 
								.map[1] = SPA_AUDIO_CHANNEL_FR,
 | 
				
			||||||
 | 
								.map[2] = SPA_AUDIO_CHANNEL_RL,
 | 
				
			||||||
 | 
								.map[3] = SPA_AUDIO_CHANNEL_RR,
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						} else if (strcmp(p, "surround-41") == 0) {
 | 
				
			||||||
 | 
							*map = (struct channel_map) {
 | 
				
			||||||
 | 
								.channels = 5,
 | 
				
			||||||
 | 
								.map[0] = SPA_AUDIO_CHANNEL_FL,
 | 
				
			||||||
 | 
								.map[1] = SPA_AUDIO_CHANNEL_FR,
 | 
				
			||||||
 | 
								.map[2] = SPA_AUDIO_CHANNEL_RL,
 | 
				
			||||||
 | 
								.map[3] = SPA_AUDIO_CHANNEL_RR,
 | 
				
			||||||
 | 
								.map[4] = SPA_AUDIO_CHANNEL_LFE,
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						} else if (strcmp(p, "surround-50") == 0) {
 | 
				
			||||||
 | 
							*map = (struct channel_map) {
 | 
				
			||||||
 | 
								.channels = 5,
 | 
				
			||||||
 | 
								.map[0] = SPA_AUDIO_CHANNEL_FL,
 | 
				
			||||||
 | 
								.map[1] = SPA_AUDIO_CHANNEL_FR,
 | 
				
			||||||
 | 
								.map[2] = SPA_AUDIO_CHANNEL_RL,
 | 
				
			||||||
 | 
								.map[3] = SPA_AUDIO_CHANNEL_RR,
 | 
				
			||||||
 | 
								.map[4] = SPA_AUDIO_CHANNEL_FC,
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						} else if (strcmp(p, "surround-51") == 0) {
 | 
				
			||||||
 | 
							*map = (struct channel_map) {
 | 
				
			||||||
 | 
								.channels = 6,
 | 
				
			||||||
 | 
								.map[0] = SPA_AUDIO_CHANNEL_FL,
 | 
				
			||||||
 | 
								.map[1] = SPA_AUDIO_CHANNEL_FR,
 | 
				
			||||||
 | 
								.map[2] = SPA_AUDIO_CHANNEL_RL,
 | 
				
			||||||
 | 
								.map[3] = SPA_AUDIO_CHANNEL_RR,
 | 
				
			||||||
 | 
								.map[4] = SPA_AUDIO_CHANNEL_FC,
 | 
				
			||||||
 | 
								.map[5] = SPA_AUDIO_CHANNEL_LFE,
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						} else if (strcmp(p, "surround-71") == 0) {
 | 
				
			||||||
 | 
							*map = (struct channel_map) {
 | 
				
			||||||
 | 
								.channels = 8,
 | 
				
			||||||
 | 
								.map[0] = SPA_AUDIO_CHANNEL_FL,
 | 
				
			||||||
 | 
								.map[1] = SPA_AUDIO_CHANNEL_FR,
 | 
				
			||||||
 | 
								.map[2] = SPA_AUDIO_CHANNEL_RL,
 | 
				
			||||||
 | 
								.map[3] = SPA_AUDIO_CHANNEL_RR,
 | 
				
			||||||
 | 
								.map[4] = SPA_AUDIO_CHANNEL_FC,
 | 
				
			||||||
 | 
								.map[5] = SPA_AUDIO_CHANNEL_LFE,
 | 
				
			||||||
 | 
								.map[6] = SPA_AUDIO_CHANNEL_SL,
 | 
				
			||||||
 | 
								.map[7] = SPA_AUDIO_CHANNEL_SR,
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						} else {
 | 
				
			||||||
 | 
							map->channels = 0;
 | 
				
			||||||
		while (*p && map->channels < SPA_AUDIO_MAX_CHANNELS) {
 | 
							while (*p && map->channels < SPA_AUDIO_MAX_CHANNELS) {
 | 
				
			||||||
			if ((len = strcspn(p, ",")) == 0)
 | 
								if ((len = strcspn(p, ",")) == 0)
 | 
				
			||||||
				break;
 | 
									break;
 | 
				
			||||||
| 
						 | 
					@ -388,6 +451,7 @@ static inline void channel_map_parse(const char *str, struct channel_map *map)
 | 
				
			||||||
			p += len + strspn(p+len, ",");
 | 
								p += len + strspn(p+len, ",");
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static inline bool channel_map_valid(const struct channel_map *map)
 | 
					static inline bool channel_map_valid(const struct channel_map *map)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue