summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYonit Halperin <yhalperi@redhat.com>2010-06-20 17:18:56 +0300
committerMarc-André Lureau <marcandre.lureau@gmail.com>2012-03-20 15:25:44 +0100
commit1f3c193cebafd44cd588aca14ccbf2c309115f65 (patch)
treece74ffb218d12b8396a21f6ce34ba19156954a9e
parente8ee21132bda530122a9bb5e33d117f5e7937204 (diff)
Lossy compression of RGBA images (on WAN connection)
The RGB channels are compressed using JPEG. The alpha channel is compressed using LZ.
-rw-r--r--spice.proto14
1 files changed, 14 insertions, 0 deletions
diff --git a/spice.proto b/spice.proto
index 84d3fa9..dbd3dde 100644
--- a/spice.proto
+++ b/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;