From 5ee094819294027267eafb13d43f833543159c44 Mon Sep 17 00:00:00 2001 From: KimJeongYeon Date: Thu, 26 May 2016 06:52:17 +0900 Subject: [PATCH] sink-input, source-output: Fix crash when sink/source create with volume sharing flag. Crash occurs always as soon as loading new sink(or source) with PA_(SINK|SOURCE)_SHARE_VOLUME_WITH_MASTER flag. Because, below patch does not regarded when a sink enabled volume sharing. - https://review.tizen.org/gerrit/#/c/26447/ [Version] 5.0-83 [Profile] Common [Issue Type] Bug Signed-off-by: KimJeongYeon Change-Id: I6edeadee162fc27d6274a2f61d0f97f74a4319ea --- packaging/pulseaudio.spec | 2 +- src/pulsecore/sink-input.c | 6 +++++- src/pulsecore/source-output.c | 6 +++++- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/packaging/pulseaudio.spec b/packaging/pulseaudio.spec index 29b1089..64aa023 100644 --- a/packaging/pulseaudio.spec +++ b/packaging/pulseaudio.spec @@ -10,7 +10,7 @@ Name: pulseaudio Summary: Improved Linux sound server Version: 5.0 -Release: 82 +Release: 83 Group: Multimedia/Audio License: LGPL-2.1+ URL: http://pulseaudio.org diff --git a/src/pulsecore/sink-input.c b/src/pulsecore/sink-input.c index 2372a83..0d24bb9 100644 --- a/src/pulsecore/sink-input.c +++ b/src/pulsecore/sink-input.c @@ -156,13 +156,17 @@ void pa_sink_input_new_data_set_volume(pa_sink_input_new_data *data, const pa_cv pa_cvolume remapped_sink_volume; pa_assert(data); - pa_assert(data->volume_writable); if ((data->volume_is_set = !!volume)) data->volume = *volume; else return; + if (data->volume_writable == false) { + data->volume_is_set = false; + relative = false; + } + data->volume_is_relative = relative; if (data->sink) { diff --git a/src/pulsecore/source-output.c b/src/pulsecore/source-output.c index ddacd24..c505a7c 100644 --- a/src/pulsecore/source-output.c +++ b/src/pulsecore/source-output.c @@ -97,13 +97,17 @@ void pa_source_output_new_data_set_volume(pa_source_output_new_data *data, const pa_cvolume remapped_source_volume; pa_assert(data); - pa_assert(data->volume_writable); if ((data->volume_is_set = !!volume)) data->volume = *volume; else return; + if (data->volume_writable == false) { + data->volume_is_set = false; + relative = false; + } + data->volume_is_relative = relative; if (data->source) { -- 2.7.4