[Spice-devel] [spice-common v3 02/11] protocol: add preferred video codec message

Frediano Ziglio fziglio at redhat.com
Wed Dec 14 21:30:01 UTC 2016


> 
> Hi,
> 
> On Wed, Dec 14, 2016 at 02:48:45PM -0500, Frediano Ziglio wrote:
> > > 
> > > From: Victor Toso <me at victortoso.com>
> > > 
> > > Client might want to choose a preferred video codec for streaming for
> > > different reasons which having hardware decoder support being the most
> > > interest one.
> > > 
> > > This message allows the client to send an array of video codecs in
> > > order of preference.
> > > 
> > > Signed-off-by: Victor Toso <victortoso at redhat.com>
> > > ---
> > >  common/messages.h | 5 +++++
> > >  spice.proto       | 5 +++++
> > >  2 files changed, 10 insertions(+)
> > > 
> > > diff --git a/common/messages.h b/common/messages.h
> > > index 516a345..5316cc0 100644
> > > --- a/common/messages.h
> > > +++ b/common/messages.h
> > > @@ -644,6 +644,11 @@ typedef struct SpiceMsgcPortEvent {
> > >      uint8_t event;
> > >  } SpiceMsgcPortEvent;
> > >  
> > > +typedef struct SpiceMsgcDisplayPreferredVideoCodecType {
> > > +    uint32_t num_of_codecs;
> > > +    uint8_t codecs[0];
> > 
> > This is weird the type of codecs[0] suggest there can be only up
> > to 256 codecs while num_of_codecs type suggest there can be
> > much more. And taking into account that the enumeration starts
> > with 1 even specifying the full 1-255 range can't take more
> > than 255 items.
> 
> True! Having num_of_codecs as uint8_t is enough? Supporting 255 codecs
> would be incredible :)
> 

Yes, I think uint8 in the protocol file would be better.

> > 
> > > +} SpiceMsgcDisplayPreferredVideoCodecType;
> > > +
> > >  typedef struct SpiceMsgcDisplayPreferredCompression {
> > >      uint8_t image_compression;
> > >  } SpiceMsgcDisplayPreferredCompression;
> > > diff --git a/spice.proto b/spice.proto
> > > index 0bfc515..758f9bb 100644
> > > --- a/spice.proto
> > > +++ b/spice.proto
> > > @@ -985,6 +985,11 @@ channel DisplayChannel : BaseChannel {
> > >  
> > >      message {
> > >      } gl_draw_done;
> > > +
> > > +    message {
> > > +        uint32 num_of_codecs;
> > > +        video_codec_type codecs[num_of_codecs] @end;
> > > +    } preferred_video_codec_type;
> > >  };
> > >  
> > >  flags16 keyboard_modifier_flags {
> > 

Frediano


More information about the Spice-devel mailing list