[Spice-devel] [PATCH spice] snd_worker: Don't send empty audio-volume messages

Hans de Goede hdegoede at redhat.com
Mon Apr 1 13:13:27 PDT 2013


If no volume has been set it, we end up sending a volume message with
audio-volume for 0 channels (iow an empty message). This is not useful
and triggers the following warning in spice-gtk:

(remote-viewer:8726): GSpice-WARNING **: set_sink_input_volume() failed:
Invalid argument

Signed-off-by: Hans de Goede <hdegoede at redhat.com>
---
 server/snd_worker.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/server/snd_worker.c b/server/snd_worker.c
index bc7be51..010c152 100644
--- a/server/snd_worker.c
+++ b/server/snd_worker.c
@@ -1100,6 +1100,7 @@ static void on_new_playback_channel(SndWorker *worker)
 {
     PlaybackChannel *playback_channel =
         SPICE_CONTAINEROF(worker->connection, PlaybackChannel, base);
+    SpicePlaybackState *st = SPICE_CONTAINEROF(worker, SpicePlaybackState, worker);
 
     spice_assert(playback_channel);
 
@@ -1107,7 +1108,9 @@ static void on_new_playback_channel(SndWorker *worker)
     if (playback_channel->base.active) {
         snd_set_command((SndChannel *)playback_channel, SND_PLAYBACK_CTRL_MASK);
     }
-    snd_set_command((SndChannel *)playback_channel, SND_PLAYBACK_VOLUME_MASK);
+    if (st->volume.volume_nchannels) {
+        snd_set_command((SndChannel *)playback_channel, SND_PLAYBACK_VOLUME_MASK);
+    }
     if (playback_channel->base.active) {
         reds_disable_mm_timer();
     }
-- 
1.8.1.4



More information about the Spice-devel mailing list