[Spice-devel] [spice-gtk PATCH v4 0/6] volume-sync - spice-gtk updates

Victor Toso victortoso at redhat.com
Mon Mar 30 07:25:57 PDT 2015


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 at redhat.com> 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.


More information about the Spice-devel mailing list