Allow conditional dependencies between rects when decoding
Some encodings only cause dependencies between rects some of the
time. Make sure we can allow parallel decoding of those rect that
aren't dependent on each other.
This implements the basic infrastructure for multi-threaded
decoding of rects. However there is just one thread reading data
and one thread decoding it. More logic is needed to safely decode
multiple rects at the same time.
It previously only did a reset of the ZlibInStream object, not the
underlying zlib stream. It also had the side effect of flushing
the underlying stream and disassociating from it.
Clear things up by changing the naming, and introducing a proper
reset function (which is needed by the Tight decoder).
We need to split these steps up in preparation for multi-core
support. Reading needs to be done in a serial manner, whilst
decoding can be done in parallel.
This also involved a rather large cleanup of the Tight decoder.
Delegate decoder object management to a separate class
Done in preparation for multi-core decoding. Keeps the complexity
out of the other classes. This also moves ownership of the
framebuffer in to CConnection. It's the CConnection object that is
aware of the threads and how to synchronise with them. Therefore
the ownership of the framebuffer must also be there to make sure
it isn't deleted whilst threads are working.
Xvnc does not understand -i as an alias to -interface anymore (since commit f8e3b34c69)
but it is still listed in the man page.
Fix man accordingly
Signed-off-by: Kir Kolyshkin <kir@openvz.org>
On some systems, the build was picking up jpeglib.h from the system
include directories, and if the system's version of libjpeg[-turbo] used
a different API/ABI version than the one specified in JPEG_LIBRARY, this
led to a "Wrong JPEG library version" error at run time.