mirror of
				https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
				synced 2025-11-03 09:01:50 -05:00 
			
		
		
		
	if the channel map was modified due to PA_SINK_INPUT_FIX_CHANNELS, remap the specified volume properly
This commit is contained in:
		
							parent
							
								
									e1dbc75eb8
								
							
						
					
					
						commit
						e053fa03f7
					
				
					 1 changed files with 3 additions and 2 deletions
				
			
		| 
						 | 
					@ -171,6 +171,8 @@ pa_sink_input* pa_sink_input_new(
 | 
				
			||||||
    if (flags & PA_SINK_INPUT_FIX_RATE)
 | 
					    if (flags & PA_SINK_INPUT_FIX_RATE)
 | 
				
			||||||
        data->sample_spec.rate = data->sink->sample_spec.rate;
 | 
					        data->sample_spec.rate = data->sink->sample_spec.rate;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    original_cm = data->channel_map;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (flags & PA_SINK_INPUT_FIX_CHANNELS) {
 | 
					    if (flags & PA_SINK_INPUT_FIX_CHANNELS) {
 | 
				
			||||||
        data->sample_spec.channels = data->sink->sample_spec.channels;
 | 
					        data->sample_spec.channels = data->sink->sample_spec.channels;
 | 
				
			||||||
        data->channel_map = data->sink->channel_map;
 | 
					        data->channel_map = data->sink->channel_map;
 | 
				
			||||||
| 
						 | 
					@ -180,8 +182,7 @@ pa_sink_input* pa_sink_input_new(
 | 
				
			||||||
    pa_assert(pa_channel_map_valid(&data->channel_map));
 | 
					    pa_assert(pa_channel_map_valid(&data->channel_map));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /* Due to the fixing of the sample spec the volume might not match anymore */
 | 
					    /* Due to the fixing of the sample spec the volume might not match anymore */
 | 
				
			||||||
    if (data->volume.channels != data->sample_spec.channels)
 | 
					    pa_cvolume_remap(&data->volume, &original_cm, &data->channel_map);
 | 
				
			||||||
        pa_cvolume_set(&data->volume, data->sample_spec.channels, pa_cvolume_avg(&data->volume));
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (data->resample_method == PA_RESAMPLER_INVALID)
 | 
					    if (data->resample_method == PA_RESAMPLER_INVALID)
 | 
				
			||||||
        data->resample_method = core->resample_method;
 | 
					        data->resample_method = core->resample_method;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue