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

Victor Toso victortoso at redhat.com
Thu Jul 11 08:47:50 UTC 2019


Hi,

On Thu, Jul 11, 2019 at 04:35:05AM -0400, Frediano Ziglio 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.

Ah, that's a good point. I missed it.

> 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)

Yes, but it is nice to keep in mind. I'd say that we only change
the ongoing stream if not to disrupt existing connected clients,
a check that can be added in the future if we need 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 at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/spice-devel
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/spice-devel/attachments/20190711/d86b8758/attachment.sig>


More information about the Spice-devel mailing list