aboutsummaryrefslogtreecommitdiffstats
path: root/common/rfb/DecodeManager.h
Commit message (Collapse)AuthorAgeFilesLines
* Subclass exceptions from std::exceptionPierre Ossman2024-11-061-3/+2
| | | | | Make sure our exceptions are part of the standard exception class hierarchy.
* Mark overridden virtual functionsPierre Ossman2024-06-241-1/+1
| | | | | Use the new "override" keyword to properly differentiate between new virtual methods, and existing virtual methods being overridden.
* Log decoding stats on disconnectPierre Ossman2021-11-041-0/+11
| | | | | Can be helpful to see what encodings were actually used during a connection, and how they performed.
* 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-1/+1
| | | | | | We need to track different things in the server and client, so separate things to two independent structures to keep things more clear.
* rfb: Fix struct-vs-class warningsSteve Kondik2017-07-081-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Clang doesn't like when struct and class are used to refer to the same thing interchangeably. Fixes all instances of: In file included from /home/shade/dev/tigervnc/common/rfb/CConnection.cxx:29: In file included from /home/shade/dev/tigervnc/common/rfb/CConnection.h:28: /home/shade/dev/tigervnc/common/rfb/DecodeManager.h:35:3: error: class 'Exception' was previously declared as a struct [-Werror,-Wmismatched-tags] class Exception; ^ /home/shade/dev/tigervnc/common/rdr/Exception.h:32:10: note: previous use is here struct Exception { ^ /home/shade/dev/tigervnc/common/rfb/DecodeManager.h:35:3: note: did you mean struct here? class Exception; ^~~~~ struct /home/shade/dev/tigervnc/common/rfb/DecodeManager.h:43:3: error: class 'Rect' was previously declared as a struct [-Werror,-Wmismatched-tags] class Rect; ^ /home/shade/dev/tigervnc/common/rfb/Rect.h:68:10: note: previous use is here struct Rect { ^ /home/shade/dev/tigervnc/common/rfb/DecodeManager.h:43:3: note: did you mean struct here? class Rect; ^~~~~ struct
* Propagate exceptions from worker threads back to main threadPierre Ossman2015-11-271-1/+9
|
* Decode overlapping rectangles in orderPierre Ossman2015-11-271-0/+2
|
* Make the decoder multi-threadedPierre Ossman2015-11-271-1/+48
| | | | | | | 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.
* Split decoders into a read and decode stepPierre Ossman2015-11-271-0/+3
| | | | | | | | 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 classPierre Ossman2015-11-271-0/+44
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.