aboutsummaryrefslogtreecommitdiffstats
path: root/common/rfb/TightDecoder.h
Commit message (Collapse)AuthorAgeFilesLines
* Move basic data types to core libraryPierre Ossman2025-02-131-7/+7
| | | | | | | Make it clearer what is protocol handling and what is just general plumbing. This is one step of several.
* Reduce header #include:sPierre Ossman2025-02-131-1/+0
| | | | | Make compile times faster by reducing the number of headers included in other headers.
* Mark overridden virtual functionsPierre Ossman2024-06-241-12/+11
| | | | | Use the new "override" keyword to properly differentiate between new virtual methods, and existing virtual methods being overridden.
* Consistently use uint8_t for data buffersPierre Ossman2023-03-181-3/+3
| | | | | These will always be byte streams at heart, so let's try to keep them with a proper type. Should make it clearer how they will be used.
* Use stdint typesPierre Ossman2023-02-011-5/+5
| | | | | Avoid having our own custom stuff and instead use the modern, standard types, for familiarity.
* Use templates for optimized codePierre Ossman2023-02-011-12/+6
| | | | | Avoid preprocessor magic and instead rely on templating to generate optimized functions for performance critical code.
* Change streams to be asynchronousPierre Ossman2020-05-211-1/+1
| | | | | | | | | | Major restructuring of how streams work. Neither input nor output streams are now blocking. This avoids stalling the rest of the client or server when a peer is slow or unresponsive. Note that this puts an extra burden on users of streams to make sure they are allowed to do their work once the underlying transports are ready (e.g. monitoring fds).
* Split out ServerParams from ConnParamsPierre Ossman2018-11-011-3/+3
| | | | | | We need to track different things in the server and client, so separate things to two independent structures to keep things more clear.
* Allow parallel decoding of Tight JPEG rectsPierre Ossman2015-11-271-1/+0
| | | | | | 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.
* Allow conditional dependencies between rects when decodingPierre Ossman2015-11-271-0/+7
| | | | | | 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.
* Split decoders into a read and decode stepPierre Ossman2015-11-271-24/+21
| | | | | | | | 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.
* Decouple decoders from CConnectionPierre Ossman2015-11-271-2/+3
|
* Move image encoding logic into a central EncodeManager classPierre Ossman2014-07-141-11/+0
| | | | | | | | This allows us to apply a lot more server logic independently of which encoder is in use. Most of this class are things moved over from the Tight encoder.
* Use PixelBuffer objects as the interface for encoders and decodersPierre Ossman2014-07-141-2/+2
| | | | | | | 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.
* Encoders/decoders should track the connection objectPierre Ossman2014-07-071-1/+1
| | | | | | 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.
* Push encoding specific formats into the encoders and decodersPierre Ossman2014-07-071-0/+2
| | | | Keep the generic stream classes clean and general.
* Avoid reader/writer duplication in every encoder/decoderPierre Ossman2014-07-071-1/+0
|
* Get rid of the register mechanism for encoders and decodersPierre Ossman2014-07-071-4/+2
| | | | We have no use for it, so let's keep things simple.
* Further optimizations (avoiding single-byte copies and InStream processing ↵DRC2011-11-041-8/+8
| | | | | | overhead) git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4763 3789f03b-4d11-0410-bbf8-ca57d06f2519
* If the client and server are using identical pixel formats, then perform ↵DRC2011-11-031-0/+32
| | | | | | 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
* Migrating to new directory structure adopted from the RealVNC's source tree. ↵Constantin Kaplinsky2006-05-251-0/+49
More changes will follow. git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@589 3789f03b-4d11-0410-bbf8-ca57d06f2519