summaryrefslogtreecommitdiffstats
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorDRC <information@virtualgl.org>2017-11-06 17:25:41 -0600
committerDRC <information@virtualgl.org>2018-01-22 16:49:11 -0600
commitd7b14624cbb9ed7b9df3532658e1edba8da606a6 (patch)
tree8f741c88d3d1b49d091f36238e57c84b574421b2 /CMakeLists.txt
parent6814e946e0afed20a6ef0f45a9bcbfeda2e77706 (diff)
downloadlibtdevnc-d7b14624cbb9ed7b9df3532658e1edba8da606a6.tar.gz
libtdevnc-d7b14624cbb9ed7b9df3532658e1edba8da606a6.zip
Include Tight decoding optimizations from TurboVNC
- As with the encoder, the decoder now uses the TurboJPEG wrapper, which allows it to decode JPEG images directly into the framebuffer. This eliminates a buffer copy (CopyRectangle()) as well as the expensive RGB pixel conversion in DecompressJpegRectBPP(). The TurboJPEG wrapper performs RGB pixel conversion more optimally, and only when necessary (it uses the libjpeg-turbo colorspace extensions when available, in order to avoid RGB conversion.) - The other Tight subencoding types are also now decoded directly into the framebuffer, which eliminates buffer copies. - The Tight decoder now supports the rfbTightNoZlib extension, which allows the server to bypass zlib compression when Compression Level 0 is selected. The encoder already supports this extension. Passing the data stream through zlib when Compression Level 0 is selected needlessly wastes CPU time, since all zlib is doing is copying the data internally into its own structures.
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt7
1 files changed, 7 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index f605202..caf1832 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -317,6 +317,13 @@ set(LIBVNCCLIENT_SOURCES
${COMMON_DIR}/minilzo.c
)
+if(JPEG_FOUND)
+ set(LIBVNCCLIENT_SOURCES
+ ${LIBVNCCLIENT_SOURCES}
+ ${COMMON_DIR}/turbojpeg.c
+ )
+endif()
+
if(GNUTLS_FOUND)
set(LIBVNCCLIENT_SOURCES
${LIBVNCCLIENT_SOURCES}