mirror of
				https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
				synced 2025-11-03 09:01:50 -05:00 
			
		
		
		
	make user of pa_channel_map_init_extend() wherever it makes sense
This commit is contained in:
		
							parent
							
								
									132e73b2ef
								
							
						
					
					
						commit
						c2fa11e179
					
				
					 6 changed files with 9 additions and 36 deletions
				
			
		| 
						 | 
					@ -668,26 +668,8 @@ snd_pcm_t *pa_alsa_open_by_device_string(
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        *dev = d;
 | 
					        *dev = d;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (ss->channels != map->channels) {
 | 
					        if (ss->channels != map->channels)
 | 
				
			||||||
            if (!pa_channel_map_init_auto(map, ss->channels, PA_CHANNEL_MAP_ALSA)) {
 | 
					            pa_channel_map_init_extend(map, ss->channels, PA_CHANNEL_MAP_ALSA);
 | 
				
			||||||
                unsigned c;
 | 
					 | 
				
			||||||
                pa_channel_position_t pos;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                pa_log_warn("Device has an unknown channel mapping. This is a limitation of ALSA. Synthesizing channel map.");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                for (c = ss->channels; c > 0; c--)
 | 
					 | 
				
			||||||
                    if (pa_channel_map_init_auto(map, c, PA_CHANNEL_MAP_ALSA))
 | 
					 | 
				
			||||||
                        break;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                pa_assert(c > 0);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                pos = PA_CHANNEL_POSITION_AUX0;
 | 
					 | 
				
			||||||
                for (; c < map->channels; c ++)
 | 
					 | 
				
			||||||
                    map->map[c] = pos++;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                map->channels = ss->channels;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return pcm_handle;
 | 
					        return pcm_handle;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -330,8 +330,7 @@ int pa__init(pa_module*m) {
 | 
				
			||||||
        goto fail;
 | 
					        goto fail;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    pa_assert_se(pa_channel_map_init_auto(&map, channels, PA_CHANNEL_MAP_AUX));
 | 
					    pa_channel_map_init_extend(&map, channels, PA_CHANNEL_MAP_ALSA);
 | 
				
			||||||
    pa_channel_map_init_auto(&map, channels, PA_CHANNEL_MAP_ALSA);
 | 
					 | 
				
			||||||
    if (pa_modargs_get_channel_map(ma, NULL, &map) < 0 || map.channels != channels) {
 | 
					    if (pa_modargs_get_channel_map(ma, NULL, &map) < 0 || map.channels != channels) {
 | 
				
			||||||
        pa_log("Failed to parse channel_map= argument.");
 | 
					        pa_log("Failed to parse channel_map= argument.");
 | 
				
			||||||
        goto fail;
 | 
					        goto fail;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -301,8 +301,7 @@ int pa__init(pa_module*m) {
 | 
				
			||||||
        goto fail;
 | 
					        goto fail;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    pa_assert_se(pa_channel_map_init_auto(&map, channels, PA_CHANNEL_MAP_AUX));
 | 
					    pa_channel_map_init_extend(&map, channels, PA_CHANNEL_MAP_ALSA);
 | 
				
			||||||
    pa_channel_map_init_auto(&map, channels, PA_CHANNEL_MAP_ALSA);
 | 
					 | 
				
			||||||
    if (pa_modargs_get_channel_map(ma, NULL, &map) < 0 || map.channels != channels) {
 | 
					    if (pa_modargs_get_channel_map(ma, NULL, &map) < 0 || map.channels != channels) {
 | 
				
			||||||
        pa_log("failed to parse channel_map= argument.");
 | 
					        pa_log("failed to parse channel_map= argument.");
 | 
				
			||||||
        goto fail;
 | 
					        goto fail;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -162,8 +162,7 @@ static void resolver_cb(
 | 
				
			||||||
        pa_module *m;
 | 
					        pa_module *m;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        ss = u->core->default_sample_spec;
 | 
					        ss = u->core->default_sample_spec;
 | 
				
			||||||
        pa_assert_se(pa_channel_map_init_auto(&cm, ss.channels, PA_CHANNEL_MAP_AUX));
 | 
					        pa_channel_map_init_extend(&cm, ss.channels, PA_CHANNEL_MAP_DEFAULT);
 | 
				
			||||||
        pa_channel_map_init_auto(&cm, ss.channels, PA_CHANNEL_MAP_DEFAULT);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        for (l = txt; l; l = l->next) {
 | 
					        for (l = txt; l; l = l->next) {
 | 
				
			||||||
            char *key, *value;
 | 
					            char *key, *value;
 | 
				
			||||||
| 
						 | 
					@ -188,10 +187,8 @@ static void resolver_cb(
 | 
				
			||||||
            avahi_free(value);
 | 
					            avahi_free(value);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (!channel_map_set && cm.channels != ss.channels) {
 | 
					        if (!channel_map_set && cm.channels != ss.channels)
 | 
				
			||||||
            pa_assert_se(pa_channel_map_init_auto(&cm, ss.channels, PA_CHANNEL_MAP_AUX));
 | 
					            pa_channel_map_init_extend(&cm, ss.channels, PA_CHANNEL_MAP_DEFAULT);
 | 
				
			||||||
            pa_channel_map_init_auto(&cm, ss.channels, PA_CHANNEL_MAP_DEFAULT);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (!pa_sample_spec_valid(&ss)) {
 | 
					        if (!pa_sample_spec_valid(&ss)) {
 | 
				
			||||||
            pa_log("Service '%s' contains an invalid sample specification.", name);
 | 
					            pa_log("Service '%s' contains an invalid sample specification.", name);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -162,8 +162,7 @@ int pa_scache_add_item(
 | 
				
			||||||
    pa_assert(!map || (pa_channel_map_valid(map) && ss && ss->channels == map->channels));
 | 
					    pa_assert(!map || (pa_channel_map_valid(map) && ss && ss->channels == map->channels));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (ss && !map)
 | 
					    if (ss && !map)
 | 
				
			||||||
        if (!(map = pa_channel_map_init_auto(&tmap, ss->channels, PA_CHANNEL_MAP_DEFAULT)))
 | 
					        pa_channel_map_init_extend(&tmap, ss->channels, PA_CHANNEL_MAP_DEFAULT);
 | 
				
			||||||
            return -1;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (chunk && chunk->length > PA_SCACHE_ENTRY_SIZE_MAX)
 | 
					    if (chunk && chunk->length > PA_SCACHE_ENTRY_SIZE_MAX)
 | 
				
			||||||
        return -1;
 | 
					        return -1;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -117,10 +117,7 @@ int pa_sound_file_load(
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (map)
 | 
					    if (map)
 | 
				
			||||||
        if (!pa_channel_map_init_auto(map, ss->channels, PA_CHANNEL_MAP_DEFAULT)) {
 | 
					        pa_channel_map_init_extend(map, ss->channels, PA_CHANNEL_MAP_DEFAULT);
 | 
				
			||||||
            pa_log("Unsupported channel map in file %s", fname);
 | 
					 | 
				
			||||||
            goto finish;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if ((l = pa_frame_size(ss) * sfinfo.frames) > PA_SCACHE_ENTRY_SIZE_MAX) {
 | 
					    if ((l = pa_frame_size(ss) * sfinfo.frames) > PA_SCACHE_ENTRY_SIZE_MAX) {
 | 
				
			||||||
        pa_log("File too large");
 | 
					        pa_log("File too large");
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue