[Spice-devel] [spice-gtk PATCH v6 0/4] volume-sync from client to guest

Victor Toso victortoso at redhat.com
Tue Apr 14 05:18:40 PDT 2015


spice-gtk:
 - fix unref GstElement
 - pulseaudio get volume from stream if possible otherwise it will
   relay on ext-stream-restore (pulseaudio database)

vdagent-linux:
 - namespace change; (e.g. alsa_something to something_alsa);
 - moved volume-sync handler to vdagent: avoid issues with
   pulseaudio as it is per session as well;

More and more tests: mostly with rhel6/fedora21 as guests;

I tested as much as I can with different scenarios. PulseAudio
backend is currently behaving very well. GStreamer backend may
have some issues as it rely on sink/src element to get the volume:
* pulsesink and pulsesrc: if the stream was initialized at some point
  the value is always what we have on PulseAudio (up-to-date);
  if the stream was never started it gets the default value (100%)
* directsoundsink and directsoundsrc: Both retrieve the volume stored
  in their element and not in the system...

Regarding the vdagent change: alsa-lib may fail to attach to the
"default" handler with 'Connection refused'. As pulseaudio server
starts with user session I moved the volume-sync handler to be in
the session vdagent as well which seems to fix the issue.

Victor Toso (4):
  audio: spice-audio with get mute and volume
  audio: spice-pulse implement async volume-info
  audio: spice-gstaudio implements async volume-info
  agent: sync guest audio with client values

 gtk/channel-main.c       | 141 ++++++++++++++++
 gtk/spice-audio.h        |  28 +++-
 gtk/spice-gstaudio.c     | 191 +++++++++++++++++++++-
 gtk/spice-pulse.c        | 412 +++++++++++++++++++++++++++++++++++++++++++++--
 gtk/spice-session-priv.h |   2 +-
 5 files changed, 761 insertions(+), 13 deletions(-)

-- 
2.1.0



More information about the Spice-devel mailing list