summaryrefslogtreecommitdiffstats
path: root/src/pulsecore/sink-input.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2008-10-07 22:42:13 +0200
committerLennart Poettering <lennart@poettering.net>2008-10-07 22:42:13 +0200
commit624f220aa6b9e985ac3a14a4ef08e79bf8356723 (patch)
treee845da911d2a460d64314eae17b1bac05f544e01 /src/pulsecore/sink-input.c
parent1e513c342059fdce3d2694bae4c649b3af88e4a0 (diff)
instead of resetting virtual_volume unconditionally on initialization, do so only when no volume was set before
Diffstat (limited to 'src/pulsecore/sink-input.c')
-rw-r--r--src/pulsecore/sink-input.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/pulsecore/sink-input.c b/src/pulsecore/sink-input.c
index 9a3c49cb..bd4d769b 100644
--- a/src/pulsecore/sink-input.c
+++ b/src/pulsecore/sink-input.c
@@ -150,13 +150,16 @@ pa_sink_input* pa_sink_input_new(
pa_return_null_if_fail(pa_channel_map_valid(&data->channel_map));
pa_return_null_if_fail(data->channel_map.channels == data->sample_spec.channels);
- if (!data->volume_is_set)
+ if (!data->volume_is_set) {
pa_cvolume_reset(&data->volume, data->sample_spec.channels);
+ pa_cvolume_reset(&data->virtual_volume, data->sample_spec.channels);
+ }
pa_return_null_if_fail(pa_cvolume_valid(&data->volume));
pa_return_null_if_fail(data->volume.channels == data->sample_spec.channels);
- data->virtual_volume = data->volume;
+ pa_return_null_if_fail(pa_cvolume_valid(&data->virtual_volume));
+ pa_return_null_if_fail(pa_cvolume_compatible(&data->virtual_volume.channels, &data->sample_spec));
if (!data->muted_is_set)
data->muted = FALSE;