summaryrefslogtreecommitdiffstats
path: root/spice.proto
diff options
context:
space:
mode:
authorYonit Halperin <yhalperi@redhat.com>2010-06-20 17:18:56 +0300
committerAlexander Larsson <alexl@redhat.com>2010-06-21 15:18:26 +0200
commit537280f183d3a35e8dee8a20238c71e7440cb28c (patch)
treefdec86a392b8cde474b8e1b5c85f03bb6caf441e /spice.proto
parent25bb38f643af6f0015df369a22176275b6ebfae0 (diff)
downloadspice-537280f183d3a35e8dee8a20238c71e7440cb28c.tar.gz
spice-537280f183d3a35e8dee8a20238c71e7440cb28c.tar.xz
spice-537280f183d3a35e8dee8a20238c71e7440cb28c.zip
Lossy compression of RGBA images (on WAN connection)
The RGB channels are compressed using JPEG. The alpha channel is compressed using LZ.
Diffstat (limited to 'spice.proto')
-rw-r--r--spice.proto14
1 files changed, 14 insertions, 0 deletions
diff --git a/spice.proto b/spice.proto
index 84d3fa98..dbd3dde1 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;