Re: [PATCH spice-server] streaming: Restart streams on video-codec changes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Jul 11, 2019 at 10:35 AM Frediano Ziglio <fziglio@xxxxxxxxxx> wrote:
>
> >
> > Interrupt the video streams when the user changes the preferred
> > video-codecs (dcc_handle_preferred_video_codec_type) or when the host
> > admin updates the list of video-codecs allowed
> > (display_channel_set_video_codecs).
> >
> > The video streaming will be automatically restarted by spice
> > video-detection rules.
>
> I suppose it would be more smart to check if the used codec is still
> fine and also if a single client wants to change the list of codecs
> it would be good to check all clients. On the other hand the list
> of codecs is not supposed to be changed much and the support for
> multiple clients is something never been production ready and disabled
> (only an experimental feature with plenty of bugs)

for my understanding, how is the multi-client supposed to work? they
all see the same screen/outputs, or each of them have a different
seat, fully independent?
in the first case, we should look for the video codecs that are
supported by all clients,
in the second case, I guess the video encoding should (in theory) be
independent for each of the outputs?

but indeed it could have been worth checking if the video codec to use
actually changed, I'll look at it


> Acked
>
> Frediano
>
> > ---
> >  server/dcc.c             | 2 ++
> >  server/display-channel.c | 2 ++
> >  2 files changed, 4 insertions(+)
> >
> > diff --git a/server/dcc.c b/server/dcc.c
> > index 71d09b77..86893ffe 100644
> > --- a/server/dcc.c
> > +++ b/server/dcc.c
> > @@ -1198,6 +1198,8 @@ static int
> > dcc_handle_preferred_video_codec_type(DisplayChannelClient *dcc,
> >
> >      /* New client preference */
> >      dcc_update_preferred_video_codecs(dcc);
> > +    video_stream_detach_and_stop(DCC_TO_DC(dcc));
> > +
> >      return TRUE;
> >  }
> >
> > diff --git a/server/display-channel.c b/server/display-channel.c
> > index 4677c261..75266598 100644
> > --- a/server/display-channel.c
> > +++ b/server/display-channel.c
> > @@ -255,6 +255,8 @@ void display_channel_set_video_codecs(DisplayChannel
> > *display, GArray *video_cod
> >      g_clear_pointer(&display->priv->video_codecs, g_array_unref);
> >      display->priv->video_codecs = g_array_ref(video_codecs);
> >      g_object_notify(G_OBJECT(display), "video-codecs");
> > +
> > +    video_stream_detach_and_stop(display);
> >  }
> >
> >  GArray *display_channel_get_video_codecs(DisplayChannel *display)
_______________________________________________
Spice-devel mailing list
Spice-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/spice-devel




[Index of Archives]     [Linux Virtualization]     [Linux Virtualization]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]