[Spice-devel] [spice-protocol PATCH v3] volume-sync: spice-protocol, spice-gtk and linux-vdagent

Victor Toso victortoso at redhat.com
Fri Mar 27 07:09:34 PDT 2015


The volume-sync is done once after agent connects.

gstreamer backend: we get the volume from the sink/src elements. Even if the
playback/record channels are not created we can start the pipeline and retrieve
the last/current/default volume from those elements.
Pulsesink and pulsesrc are more common to be used in linux and the retrieved
value for volume/mute are the last of the application which is stored at
$HOME/.config/pulse/random-num-stream-volumes.tdb

pulse backend: as the communication between application and pulse happens only
by async calls, if the playback/record channel were not created it's not possible
to start pulse and retrieve this values sync without using PA threaded as GST pulse
elements do. For now, spice-pulse become aware of volume changes in the client which
is enough to solve volume-changes with migration (agent re-connect and the volume is
sync with client)

Related to: https://bugzilla.redhat.com/show_bug.cgi?id=1012868

Is worth mention that when the volume-sync happens qemu is aware of the volume
change and by default calls spice-server to inform the client and this is done
with a volume a bit higher then value used in volume-sync.

https://bugs.freedesktop.org/show_bug.cgi?id=89729

v3:
spice-protocol:
- removed flags, using uint8_t is_playback and mute;

spice-gtk:
- fixes with spice-protocol changes
- fixed _spice_reserved padding in spice-audio (-4 pointers);
- drop spice-session changes (getting main-channel)
- drop channel-playback/record changes (sync audio when stream start)
- client sync volume when agent connects:
  In case we don't have audio values yet, start spice-audio to get
  default/last values; spice-gstaudio starts pipeline (playback_start
  and record_start) get the volumes and stop the pipeline.

vd_agent:
- fixes with spice-protocol changes
- setting mute with snd_mixer_selem_set_{playback,capture}_switch_all

Hopefully I didn't forget anything,
Cheers,

Victor Toso (1):
  add volume syncronizatin to protocol

 spice/vd_agent.h | 9 +++++++++
 1 file changed, 9 insertions(+)

-- 
2.1.0



More information about the Spice-devel mailing list