[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