Re: [PATCH spice-gtk v5 5/9] spicy: implement preferred video codec type

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

 



Hi,

On Wed, Jan 18, 2017 at 11:29:45AM +0100, Pavel Grunt wrote:
> On Fri, 2017-01-06 at 09:18 +0100, Victor Toso wrote:
> > From: Victor Toso <me@xxxxxxxxxxxxxx>
> > 
> > Similar to preferred video compression, a radio button showing
> > mjpeg,
> > vp8 and h264 in case server has the proper [0] capability
> > 
> > [0] SPICE_DISPLAY_CAP_PREF_VIDEO_CODEC_TYPE
> > 
> > Signed-off-by: Victor Toso <victortoso@xxxxxxxxxx>
> > ---
> >  src/spicy.c | 41 +++++++++++++++++++++++++++++++++++++++++
> >  1 file changed, 41 insertions(+)
> > 
> > diff --git a/src/spicy.c b/src/spicy.c
> > index c502428..c8d29dd 100644
> > --- a/src/spicy.c
> > +++ b/src/spicy.c
> > @@ -651,6 +651,9 @@ static const GtkActionEntry entries[] = {
> >          .name        = "CompressionMenu",
> >          .label       = "_Preferred image compression",
> >      },{
> > +        .name        = "VideoCodecTypeMenu",
> > +        .label       = "_Preferred video codec type",
> > +    },{
> >          .name        = "HelpMenu",
> >          .label       = "_Help",
> >      },{
> > @@ -816,6 +819,22 @@ static const GtkRadioActionEntry
> > compression_entries[] = {
> >      }
> >  };
> >  
> > +static const GtkRadioActionEntry video_codec_type_entries[] = {
> > +    {
> > +        .name  = "mjpeg",
> > +        .label = "mjpeg",
> > +        .value = SPICE_VIDEO_CODEC_TYPE_MJPEG,
> > +    },{
> > +        .name  = "vp8",
> > +        .label = "vp8",
> > +        .value = SPICE_VIDEO_CODEC_TYPE_VP8,
> > +    },{
> > +        .name  = "h264",
> > +        .label = "h264",
> > +        .value = SPICE_VIDEO_CODEC_TYPE_H264,
> > +    }
> > +};
> > +
> >  static char ui_xml[] =
> >  "<ui>\n"
> >  "  <menubar action='MainMenu'>\n"
> > @@ -864,6 +883,11 @@ static char ui_xml[] =
> >  #endif
> >  "        <menuitem action='off'/>\n"
> >  "      </menu>\n"
> > +"      <menu action='VideoCodecTypeMenu'>\n"
> > +"        <menuitem action='mjpeg'/>\n"
> > +"        <menuitem action='vp8'/>\n"
> > +"        <menuitem action='h264'/>\n"
> > +"      </menu>\n"
> >  "    </menu>\n"
> >  "    <menu action='HelpMenu'>\n"
> >  "      <menuitem action='About'/>\n"
> > @@ -916,6 +940,14 @@ static void compression_cb(GtkRadioAction
> > *action G_GNUC_UNUSED,
> >                                                 gtk_radio_action_get
> > _current_value(current));
> >  }
> >  
> > +static void video_codec_type_cb(GtkRadioAction *action
> > G_GNUC_UNUSED,
> > +                                GtkRadioAction *current,
> > +                                gpointer user_data)
> > +{
> > +    spice_display_change_preferred_video_codec_type(SPICE_CHANNEL(u
> > ser_data),
> > +                                                    gtk_radio_actio
> > n_get_current_value(current));
> > +}
> > +
> >  static void
> >  spice_window_class_init (SpiceWindowClass *klass)
> >  {
> > @@ -970,6 +1002,15 @@ static SpiceWindow
> > *create_spice_window(spice_connection *conn, SpiceChannel *ch
> >          GtkAction *compression_menu_action =
> > gtk_action_group_get_action(win->ag, "CompressionMenu");
> >          gtk_action_set_sensitive(compression_menu_action, FALSE);
> >      }
> > +    gtk_action_group_add_radio_actions(win->ag,
> > video_codec_type_entries,
> > +                                       G_N_ELEMENTS(video_codec_typ
> > e_entries), -1,
> > +                                       G_CALLBACK(video_codec_type_
> > cb), win->display_channel);
> > +    if (!spice_channel_test_capability(win->display_channel,
> > +                                       SPICE_DISPLAY_CAP_PREF_VIDEO
> > _CODEC_TYPE)) {
> > +        GtkAction *video_codec_type_menu_action =
> > +            gtk_action_group_get_action(win->ag,
> > "VideoCodecTypeMenu");
> > +        gtk_action_set_sensitive(video_codec_type_menu_action,
> > FALSE);
> > +    }
> 
> you can also disable unavailable codecs at this point.

Okay, will do!

Thanks for reviewing

>
> Pavel
> 
> 
> >      gtk_ui_manager_insert_action_group(win->ui, win->ag, 0);
> >      gtk_window_add_accel_group(GTK_WINDOW(win->toplevel),
> >                                 gtk_ui_manager_get_accel_group(win-
> > >ui));

Attachment: signature.asc
Description: PGP signature

_______________________________________________
Spice-devel mailing list
Spice-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/spice-devel

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