mirror of
				https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
				synced 2025-10-29 05:40:23 -04:00 
			
		
		
		
	format: Fix channel map handling
Channel map handling in the extended API was broken. Thanks for Milos_SD for pointing this out on IRC.
This commit is contained in:
		
							parent
							
								
									f4eccad1e6
								
							
						
					
					
						commit
						117c714594
					
				
					 2 changed files with 9 additions and 7 deletions
				
			
		|  | @ -193,11 +193,9 @@ pa_bool_t pa_format_info_to_sample_spec(pa_format_info *f, pa_sample_spec *ss, p | |||
|     if (map) { | ||||
|         pa_channel_map_init(map); | ||||
| 
 | ||||
|         if (!pa_format_info_get_prop_string(f, PA_PROP_FORMAT_CHANNEL_MAP, &m)) | ||||
|             goto out; | ||||
| 
 | ||||
|         if (m && pa_channel_map_parse(map, m) == NULL) | ||||
|             goto out; | ||||
|         if (pa_format_info_get_prop_string(f, PA_PROP_FORMAT_CHANNEL_MAP, &m)) | ||||
|             if (pa_channel_map_parse(map, m) == NULL) | ||||
|                 goto out; | ||||
|     } | ||||
| 
 | ||||
|     ret = TRUE; | ||||
|  | @ -281,7 +279,10 @@ pa_bool_t pa_format_info_get_prop_string(pa_format_info *f, const char *key, cha | |||
|     pa_assert(key); | ||||
|     pa_assert(v); | ||||
| 
 | ||||
|     pa_return_val_if_fail(str = pa_proplist_gets(f->plist, key), FALSE); | ||||
|     str = pa_proplist_gets(f->plist, key), FALSE; | ||||
|     if (!str) | ||||
|         return FALSE; | ||||
| 
 | ||||
|     o = json_tokener_parse(str); | ||||
|     pa_return_val_if_fail(!is_error(o), FALSE); | ||||
|     if (json_object_get_type(o) != json_type_string) { | ||||
|  |  | |||
|  | @ -262,7 +262,8 @@ int pa_sink_input_new( | |||
|          * to using the sample spec and channel map after all decisions w.r.t. | ||||
|          * routing are complete. */ | ||||
|         pa_idxset *tmp = pa_idxset_new(NULL, NULL); | ||||
|         pa_format_info *f = pa_format_info_from_sample_spec(&data->sample_spec, &data->channel_map); | ||||
|         pa_format_info *f = pa_format_info_from_sample_spec(&data->sample_spec, | ||||
|                 data->channel_map_is_set ? &data->channel_map : NULL); | ||||
|         pa_idxset_put(tmp, f, NULL); | ||||
|         pa_sink_input_new_data_set_formats(data, tmp); | ||||
|     } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Arun Raghavan
						Arun Raghavan