[Spice-devel] [PATCH spice-common 5/6] video streaming: add support for frames of different sizes

Christophe Fergeau cfergeau at redhat.com
Tue Apr 10 03:30:07 PDT 2012


Looks good
On Sun, Apr 08, 2012 at 06:42:37PM +0300, Yonit Halperin wrote:
> Add SPICE_MSG_DISPLAY_STREAM_DATA_SIZED, for stream_data message
> that also contains the size and destination box of the data.
> The server can send such messages only to clients with
> SPICE_DISPLAY_CAP_SIZED_STREAM.
> 
> Signed-off-by: Yonit Halperin <yhalperi at redhat.com>
> ---
>  common/messages.h |   15 ++++++++++++++-
>  spice.proto       |   19 ++++++++++++++++---
>  spice1.proto      |    8 ++++++--
>  3 files changed, 36 insertions(+), 6 deletions(-)
> 
> diff --git a/common/messages.h b/common/messages.h
> index 58e8bee..f7bc32a 100644
> --- a/common/messages.h
> +++ b/common/messages.h
> @@ -307,13 +307,26 @@ typedef struct SpiceMsgDisplayStreamCreate {
>      SpiceClip clip;
>  } SpiceMsgDisplayStreamCreate;
>  
> -typedef struct SpiceMsgDisplayStreamData {
> +typedef struct SpiceStreamDataHeader {
>      uint32_t id;
>      uint32_t multi_media_time;
> +} SpiceStreamDataHeader;
> +
> +typedef struct SpiceMsgDisplayStreamData {
> +    SpiceStreamDataHeader base;
>      uint32_t data_size;
>      uint8_t data[0];
>  } SpiceMsgDisplayStreamData;
>  
> +typedef struct SpiceMsgDisplayStreamDataSized {
> +    SpiceStreamDataHeader base;
> +    uint32_t width;
> +    uint32_t height;
> +    SpiceRect dest;
> +    uint32_t data_size;
> +    uint8_t data[0];
> +} SpiceMsgDisplayStreamDataSized;
> +
>  typedef struct SpiceMsgDisplayStreamClip {
>      uint32_t id;
>      SpiceClip clip;
> diff --git a/spice.proto b/spice.proto
> index 513fe87..71be9ac 100644
> --- a/spice.proto
> +++ b/spice.proto
> @@ -591,6 +591,11 @@ struct String {
>      } u @anon;
>  };
>  
> +struct StreamDataHeader {
> +	uint32 id;
> +	uint32 multi_media_time;
> +};
> +
>  channel DisplayChannel : BaseChannel {
>   server:
>      message {
> @@ -637,10 +642,9 @@ channel DisplayChannel : BaseChannel {
>      } stream_create = 122;
>  
>      message {
> -	uint32 id;
> -	uint32 multi_media_time;
> +	StreamDataHeader base;
>  	uint32 data_size;
> -	uint8 data[data_size] @end  @nomarshal;
> +	uint8 data[data_size] @end @nomarshal;
>      } stream_data;
>  
>      message {
> @@ -785,6 +789,15 @@ channel DisplayChannel : BaseChannel {
>  	uint32 surface_id;
>      } @ctype(SpiceMsgSurfaceDestroy) surface_destroy;
>  
> +    message {
> +	StreamDataHeader base;
> +	uint32 width;
> +	uint32 height;
> +	Rect dest;
> +	uint32 data_size;
> +	uint8 data[data_size] @end @nomarshal;
> +    } stream_data_sized;
> +
>   client:
>      message {
>  	uint8 pixmap_cache_id;
> diff --git a/spice1.proto b/spice1.proto
> index fa2524b..2ed1058 100644
> --- a/spice1.proto
> +++ b/spice1.proto
> @@ -533,6 +533,11 @@ struct String {
>      } u @anon;
>  };
>  
> +struct StreamDataHeader {
> +	uint32 id;
> +	uint32 multi_media_time;
> +};
> +
>  channel DisplayChannel : BaseChannel {
>   server:
>      message {
> @@ -580,8 +585,7 @@ channel DisplayChannel : BaseChannel {
>      } stream_create = 122;
>  
>      message {
> -	uint32 id;
> -	uint32 multi_media_time;
> +	StreamDataHeader base;
>  	uint32 data_size;
>  	uint32 pad_size @zero;
>  	uint8 data[data_size] @end  @nomarshal;
> -- 
> 1.7.7.6
> 
> _______________________________________________
> Spice-devel mailing list
> Spice-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/spice-devel
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/spice-devel/attachments/20120410/78dd4bde/attachment-0001.pgp>


More information about the Spice-devel mailing list