On Mon, Mar 30, 2015 at 04:12:29PM +0200, Marc-André Lureau wrote: > On Mon, Mar 30, 2015 at 3:23 PM, Victor Toso <victortoso@xxxxxxxxxx> wrote: > > > This is done only once in order to get the last volume/mute/channels > > value of each stream. The main pourpose of it is when we want to > > volume-sync when the client connects. > > > > The volume events are handy for all the other volume-sync possibilities > > like migration. Without it, we may send the wrong value to the guest. > > > > > Even when using volume restore only? With sync functions, yes. > > > > > channel-main: > > > > - use g_idle_add in audio-sync functions to work around the delay of > > getting > > > > this values of pulseaudio. This is not significantly high in my > > enviroment > > > > (three function calls). Using gstreamer backend it did not fail as it > > start > > > > the pipeline to get the values. > > > > > > What's the guarantee that volume has been received when that idle is run? > > > > Well, you are right. If gstreamer/pulse backend fails for whatever > > reason this will not stop. Do you think a trying a fix number of times > > is fine? > > > > > No :) But I would rather make get_volume() async to properly sync when > volume is received (and wait sync before playback/record start to avoid > glitch) Fair enough. I will: - remove the volume-restore that I just added; - include async calls to spice-audio (keeping the sync); - using the async calls of pulse to get volume/mute; I'll send the v5 soon. Thanks. _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel