summaryrefslogtreecommitdiffstats
path: root/rfb
diff options
context:
space:
mode:
Diffstat (limited to 'rfb')
-rw-r--r--rfb/rfb.h8
-rw-r--r--rfb/rfbproto.h34
2 files changed, 38 insertions, 4 deletions
diff --git a/rfb/rfb.h b/rfb/rfb.h
index e068e76..0d11357 100644
--- a/rfb/rfb.h
+++ b/rfb/rfb.h
@@ -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 */