mirror of
https://gitlab.uni-freiburg.de/opensourcevdi/spice-common
synced 2026-08-08 11:38:08 +00:00
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:
parent
178c7eaff6
commit
22fc0b0145
@ -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
|
||||
19
spice.proto
19
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;
|
||||
|
||||
@ -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;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user