mirror of
https://gitlab.uni-freiburg.de/opensourcevdi/spice-protocol
synced 2025-12-26 22:55:30 +00:00
Lossy compression of RGBA images (on WAN connection)
The RGB channels are compressed using JPEG. The alpha channel is compressed using LZ.
This commit is contained in:
parent
e8ee21132b
commit
1f3c193ceb
14
spice.proto
14
spice.proto
@ -294,6 +294,7 @@ enum8 image_type {
|
||||
JPEG,
|
||||
FROM_CACHE_LOSSLESS,
|
||||
ZLIB_GLZ_RGB,
|
||||
JPEG_ALPHA,
|
||||
};
|
||||
|
||||
flags8 image_flags {
|
||||
@ -321,6 +322,10 @@ flags8 bitmap_flags {
|
||||
TOP_DOWN,
|
||||
};
|
||||
|
||||
flags8 jpeg_alpha_flags {
|
||||
TOP_DOWN,
|
||||
};
|
||||
|
||||
enum8 image_scale_mode {
|
||||
INTERPOLATE,
|
||||
NEAREST,
|
||||
@ -477,6 +482,13 @@ struct ZlibGlzRGBData {
|
||||
uint8 data[data_size] @end @nomarshal;
|
||||
} @ctype(SpiceZlibGlzRGBData);
|
||||
|
||||
struct JPEGAlphaData {
|
||||
jpeg_alpha_flags flags;
|
||||
uint32 jpeg_size;
|
||||
uint32 data_size;
|
||||
uint8 data[data_size] @end @nomarshal;
|
||||
} @ctype(SpiceJPEGAlphaData);
|
||||
|
||||
struct Surface {
|
||||
uint32 surface_id;
|
||||
};
|
||||
@ -500,6 +512,8 @@ struct Image {
|
||||
LZPLTData lzplt_data @ctype(SpiceLZPLTData);
|
||||
case ZLIB_GLZ_RGB:
|
||||
ZlibGlzRGBData zlib_glz_data @ctype(SpiceZlibGlzRGBData);
|
||||
case JPEG_ALPHA:
|
||||
JPEGAlphaData jpeg_alpha_data @ctype(SpiceJPEGAlphaData);
|
||||
case SURFACE:
|
||||
Surface surface_data;
|
||||
} u @end;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user