video streaming: add support for frames of different sizes

rhbz #813826, #815426

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.
This commit is contained in:
Yonit Halperin 2012-04-24 08:34:30 +03:00
parent 178c7eaff6
commit 22fc0b0145
4 changed files with 37 additions and 7 deletions

View File

@ -308,13 +308,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;

@ -1 +1 @@
Subproject commit 2d24f61aae4f92746940fd1c0daf546c7a51dae8
Subproject commit bf0daeb3a3c834133e781439f76b1c702470581b

View File

@ -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;

View File

@ -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;