Pierre Ossman
3648c70422
Fix bad size check in Tight decoder
Fallout from beb59a43
.
5 jaren geleden
Pierre Ossman
beb59a4320
Remove variable length arrays
These are not allowed in C++, and have been made optional in C11.
So let's just get rid of them and any issues they may cause.
5 jaren geleden
Pierre Ossman
b14a6bc1aa
Split out ServerParams from ConnParams
We need to track different things in the server and client, so
separate things to two independent structures to keep things more
clear.
6 jaren geleden
Pierre Ossman
f81148c43a
Avoid integer overflows in pixel size calculations
5 jaren geleden
Pierre Ossman
bf431a6b98
Allow parallel decoding of Tight JPEG rects
The cost is some more load on malloc(), but it should be small
compared to the gains of spreading the CPU heavy JPEG decoding
over multiple CPUs.
8 jaren geleden
Pierre Ossman
e6ad445623
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.
8 jaren geleden
Pierre Ossman
a862add9b5
Decode rectangles in order if needed
Some encodings must be handled in the order they are received.
Make sure we respect this in the decode manager.
8 jaren geleden
Pierre Ossman
570cd5c478
Add flags member to decoders
Allows us to add attributes later that affect of the decoder
manager deals with the decoders.
8 jaren geleden
Pierre Ossman
6f318e4451
Clear up ZlibInStream::reset() behaviour
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).
8 jaren geleden
Pierre Ossman
80b4209b54
Split decoders into a read and decode step
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.
8 jaren geleden
Pierre Ossman
8635062c07
Decouple decoders from CConnection
8 jaren geleden
Pierre Ossman
0c9bd4b0ba
Use PixelBuffer objects as the interface for encoders and decoders
This avoid a lot of unnecessary middle men. This also pushes the
responsibility for pixel format conversion into the encoders and
decoders. The new bufferFromBuffer() is used for direct conversion,
rather than PixelTransformer/TransImageGetter.
10 jaren geleden
Pierre Ossman
668468b3d4
Encoders/decoders should track the connection object
The connection object is a much more appropriate object for the
decoders and encoders to keep track of. Besides the streams, it also
contains state like connection parameters.
10 jaren geleden
Pierre Ossman
bcc295e5a6
Get rid of unnecessary macros as they are only ever set to a single thing
10 jaren geleden
Pierre Ossman
7b5c069d2e
Push encoding specific formats into the encoders and decoders
Keep the generic stream classes clean and general.
10 jaren geleden
Pierre Ossman
4aba19e287
Avoid reader/writer duplication in every encoder/decoder
10 jaren geleden
Pierre Ossman
316a32498b
Get rid of the register mechanism for encoders and decoders
We have no use for it, so let's keep things simple.
10 jaren geleden
DRC
3461d590b7
Remove unneeded EXTRA_ARGS definition
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4761 3789f03b-4d11-0410-bbf8-ca57d06f2519
12 jaren geleden
DRC
33c15e3a3a
If the client and server are using identical pixel formats, then perform Tight decoding directly into the viewer's back buffer, rather than going through the slow fillRect/imageRect routines.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4757 3789f03b-4d11-0410-bbf8-ca57d06f2519
12 jaren geleden
Peter Åstrand
d69bcc4739
Fixed the formatting of a few Cendio copyright lines, so that it is
consistent with the rest of the code.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4677 3789f03b-4d11-0410-bbf8-ca57d06f2519
12 jaren geleden
Pierre Ossman
67b2b2fa7f
Consolidate pixel conversion into the PixelFormat class and optimise the
common cases.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@3636 3789f03b-4d11-0410-bbf8-ca57d06f2519
15 jaren geleden
Constantin Kaplinsky
a2adc8d4cf
Migrating to new directory structure adopted from the RealVNC's source tree. More changes will follow.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@589 3789f03b-4d11-0410-bbf8-ca57d06f2519
18 jaren geleden
Peter Åstrand
e2ab84ec14
Updated copyright year
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@143 3789f03b-4d11-0410-bbf8-ca57d06f2519
19 jaren geleden
Peter Åstrand
1154ebf151
Added RGB24_TO_PIXEL32 macro.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@38 3789f03b-4d11-0410-bbf8-ca57d06f2519
19 jaren geleden
Peter Åstrand
0af24d4282
Implemented client side gradient filter. Only tested with 16 bpp, though.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@35 3789f03b-4d11-0410-bbf8-ca57d06f2519
19 jaren geleden
Peter Åstrand
b04748d18b
Added our copyright notice.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@30 3789f03b-4d11-0410-bbf8-ca57d06f2519
19 jaren geleden
Peter Åstrand
b4a2316372
jpeglib.h should be included via extern "C".
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@28 3789f03b-4d11-0410-bbf8-ca57d06f2519
19 jaren geleden
Peter Åstrand
a6bb770435
JPEG decompression support
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@20 3789f03b-4d11-0410-bbf8-ca57d06f2519
19 jaren geleden
Peter Åstrand
462753d02c
Added basic almost-functional Tight support, from tightrealvnc project. Decoder only.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@14 3789f03b-4d11-0410-bbf8-ca57d06f2519
19 jaren geleden
Constantin Kaplinsky
47ed8d321c
Initial revision
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@2 3789f03b-4d11-0410-bbf8-ca57d06f2519
19 jaren geleden