From d7b14624cbb9ed7b9df3532658e1edba8da606a6 Mon Sep 17 00:00:00 2001 From: DRC Date: Mon, 6 Nov 2017 17:25:41 -0600 Subject: 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. --- CMakeLists.txt | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'CMakeLists.txt') 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} -- cgit v1.2.1