diff options
Diffstat (limited to 'rfb')
-rw-r--r-- | rfb/rfb.h | 8 | ||||
-rw-r--r-- | rfb/rfbproto.h | 34 |
2 files changed, 38 insertions, 4 deletions
@@ -599,6 +599,10 @@ typedef struct _rfbClientRec { #if defined(LIBVNCSERVER_HAVE_LIBJPEG) || defined(LIBVNCSERVER_HAVE_LIBPNG) int tightCompressLevel; #endif +#ifdef LIBVNCSERVER_HAVE_TURBOVNC + /* TurboVNC Encoding support (extends TightVNC) */ + int tightSubsampLevel; +#endif #endif /* Ultra Encoding support */ @@ -871,6 +875,10 @@ extern rfbBool rfbSendRectEncodingZlib(rfbClientPtr cl, int x, int y, int w, #define TIGHT_DEFAULT_COMPRESSION 6 +#ifdef LIBVNCSERVER_HAVE_TURBOVNC +#define TIGHT_DEFAULT_SUBSAMP 0 +#endif + extern rfbBool rfbTightDisableGradient; extern int rfbNumCodedRectsTight(rfbClientPtr cl, int x,int y,int w,int h); diff --git a/rfb/rfbproto.h b/rfb/rfbproto.h index c6dfd2c..d99fbe5 100644 --- a/rfb/rfbproto.h +++ b/rfb/rfbproto.h @@ -13,7 +13,9 @@ */ /* + * Copyright (C) 2009-2010 D. R. Commander. All Rights Reserved. * Copyright (C) 2005 Rohit Kumar, Johannes E. Schindelin + * Copyright (C) 2004-2008 Sun Microsystems, Inc. All Rights Reserved. * Copyright (C) 2000-2002 Constantin Kaplinsky. All Rights Reserved. * Copyright (C) 2000 Tridia Corporation. All Rights Reserved. * Copyright (C) 1999 AT&T Laboratories Cambridge. All Rights Reserved. @@ -457,6 +459,8 @@ typedef struct { /* * Special encoding numbers: + * 0xFFFFFD00 .. 0xFFFFFD05 -- subsampling level + * 0xFFFFFE00 .. 0xFFFFFE64 -- fine-grained quality level (0-100 scale) * 0xFFFFFF00 .. 0xFFFFFF0F -- encoding-specific compression levels; * 0xFFFFFF10 .. 0xFFFFFF1F -- mouse cursor shape data; * 0xFFFFFF20 .. 0xFFFFFF2F -- various protocol extensions; @@ -465,6 +469,17 @@ typedef struct { * 0xFFFFFFF0 .. 0xFFFFFFFF -- cross-encoding compression levels. */ +#ifdef LIBVNCSERVER_HAVE_TURBOVNC +#define rfbEncodingFineQualityLevel0 0xFFFFFE00 +#define rfbEncodingFineQualityLevel100 0xFFFFFE64 +#define rfbEncodingSubsamp1X 0xFFFFFD00 +#define rfbEncodingSubsamp4X 0xFFFFFD01 +#define rfbEncodingSubsamp2X 0xFFFFFD02 +#define rfbEncodingSubsampGray 0xFFFFFD03 +#define rfbEncodingSubsamp8X 0xFFFFFD04 +#define rfbEncodingSubsamp16X 0xFFFFFD05 +#endif + #define rfbEncodingCompressLevel0 0xFFFFFF00 #define rfbEncodingCompressLevel1 0xFFFFFF01 #define rfbEncodingCompressLevel2 0xFFFFFF02 @@ -719,12 +734,19 @@ typedef struct { * bit 3: if 1, then compression stream 3 should be reset; * bits 7-4: if 1000 (0x08), then the compression type is "fill", * if 1001 (0x09), then the compression type is "jpeg", - * if 1001 (0x0A), then the compression type is "png", - * if 0xxx, then the compression type is "basic", + * (TurboVNC) if 1010 (0x0A), then the compression type is "basic" + * and no Zlib compression was used, + * (TurboVNC) if 1110 (0x0E), then the compression type is "basic", + * no Zlib compression was used, and a "filter id" byte follows + * this byte, + * (TightVNC) if 1010 (0x0A), then the compression type is "png", + * if 0xxx, then the compression type is "basic" and Zlib + * compression was used, * values greater than 1010 are not valid. * - * If the compression type is "basic", then bits 6..4 of the - * compression control byte (those xxx in 0xxx) specify the following: + * If the compression type is "basic" and Zlib compression was used, then bits + * 6..4 of the compression control byte (those xxx in 0xxx) specify the + * following: * * bits 5-4: decimal representation is the index of a particular zlib * stream which should be used for decompressing the data; @@ -836,7 +858,11 @@ typedef struct { #define rfbTightExplicitFilter 0x04 #define rfbTightFill 0x08 #define rfbTightJpeg 0x09 +#ifdef LIBVNCSERVER_HAVE_TURBOVNC +#define rfbTightNoZlib 0x0A +#else #define rfbTightPng 0x0A +#endif #define rfbTightMaxSubencoding 0x0A /* Filters to improve compression efficiency */ |