aboutsummaryrefslogtreecommitdiffstats
path: root/common/rfb/TightEncoder.cxx
Commit message (Collapse)AuthorAgeFilesLines
* Standardize on sentence case in titlesMadeleine (ThinLinc team)2024-11-111-1/+1
| | | | The reason for this is to keep a consistency through out the project.
* Avoid shadowing variablesPierre Ossman2024-06-241-2/+2
| | | | | It's a source of confusion and possibly bugs to reuse the same variable name for multiple things.
* Use nullptr in all C++ codePierre Ossman2024-06-241-2/+2
| | | | | It's more readable than 0, and a bit safer than NULL, so let's try to follow modern norms.
* Use stdint typesPierre Ossman2023-02-011-15/+15
| | | | | Avoid having our own custom stuff and instead use the modern, standard types, for familiarity.
* Use templates for optimized codePierre Ossman2023-02-011-13/+140
| | | | | Avoid preprocessor magic and instead rely on templating to generate optimized functions for performance critical code.
* Explicitly mark unused parametersPierre Ossman2023-01-041-1/+1
| | | | | This allows us to separate accidentally unused, from explicitly unused parameters, which allows us to turn on such checks in the compiler.
* Don't include palette to full color methodsPierre Ossman2023-01-041-3/+3
| | | | They have no need for it, so let's simplify things.
* Be consistent in including config.hPierre Ossman2021-12-301-0/+5
| | | | | | The generally recommended way is to include it from source files, not headers. We had a mix of both. Let's try to be consistent and follow the recommended way.
* Generalise corking to all output streamsPierre Ossman2020-05-211-0/+2
| | | | | The principle can be used in a more general fashion than just TCP streams.
* Rename ConnParams to ClientParamsPierre Ossman2018-11-011-2/+1
| | | | | | Now that we've split out server state to ServerParams, ConnParams only contains state for a client. Rename the class and variables to reflect this.
* Fix mistake in TightEncoder::setCompressLevel.Michal Srb2016-05-061-1/+1
|
* Fix bad signed/unsigned comparisonsPierre Ossman2015-03-031-1/+1
| | | | | Either by casting, or switching to a more appropriate type for the variable.
* Remove unused variablesPierre Ossman2015-03-031-1/+1
|
* Move image encoding logic into a central EncodeManager classPierre Ossman2014-07-141-326/+179
| | | | | | | | 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-7/+6
| | | | | | | 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-6/+7
| | | | | | 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.
* Remove full support for colour mapsPierre Ossman2014-07-071-3/+3
| | | | | | | | | Gets rid of a loooot of code and complexity. Colour map clients are still supported through an automatically generated map, but we lose the ability to develop a client or server that uses colour maps internally.
* Push encoding specific formats into the encoders and decodersPierre Ossman2014-07-071-0/+18
| | | | Keep the generic stream classes clean and general.
* Avoid reader/writer duplication in every encoder/decoderPierre Ossman2014-07-071-1/+1
|
* Remove partial update functionalityPierre Ossman2014-07-071-8/+7
| | | | | | Get rid of the ability of encoders to only send part of the rectangle they are given as we don't want partial updates anyway.
* Merge the "V3" message classes into the normal onesPierre Ossman2014-07-071-0/+1
| | | | We have no need for this abstraction so let's keep things simple.
* Make the subsampling setting follow the common stylePierre Ossman2014-07-071-19/+15
|
* Get rid of the register mechanism for encoders and decodersPierre Ossman2014-07-071-5/+0
| | | | We have no use for it, so let's keep things simple.
* Reduce dependencies on TransImageGetter.hPierre Ossman2014-07-071-0/+1
|
* Fix regression caused by r4841. That patch assumed that JPEG encoding ↵DRC2012-02-131-16/+0
| | | | | | always uses the raw buffer, which is not true. If pixel translation is necessary, then JPEG images will sometimes be encoded from the translated (intermediate) buffer instead. git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4852 3789f03b-4d11-0410-bbf8-ca57d06f2519
* The Tight encoder uses the pixel buffer as a scratch pad, which doesn'tPierre Ossman2012-01-301-0/+16
| | | | | | | | | work so well with the new optimisation to feed it the raw frame buffer. Reorganise and clean up the code to handle this, and make the raw frame buffer pointer const so that we might avoid such bugs in the future. git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4841 3789f03b-4d11-0410-bbf8-ca57d06f2519
* Increase the default compression level to cater to a broader range of usersPierre Ossman2011-11-201-1/+2
| | | | | | | | (bandwidth is often the limiting factor, rather than CPU). Further increases give little returns, so 2 is currently deemed the best tradeoff. git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4811 3789f03b-4d11-0410-bbf8-ca57d06f2519
* Fix compiler warnings uncovered with -WallDRC2011-11-031-1/+0
| | | | git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4752 3789f03b-4d11-0410-bbf8-ca57d06f2519
* Add support for TurboVNC pseudo-encodings and Grayscale JPEG compression so ↵DRC2011-08-191-2/+22
| | | | | | that, when a TurboVNC viewer is connected, the TigerVNC Server will behave exactly like the TurboVNC Server. git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4641 3789f03b-4d11-0410-bbf8-ca57d06f2519
* Fix compiler warning in Visual C++DRC2011-08-191-3/+3
| | | | git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4638 3789f03b-4d11-0410-bbf8-ca57d06f2519
* Further optimizations to the Tight encoder to eliminate getImage() overhead. ↵DRC2011-08-171-53/+42
| | | | | | The encoder now directly accesses the framebuffer for solid rectangle computation, JPEG encoding, and color counting (if pixel translation is not required.) Also moved everything in tightEncode.h into the TightEncoder class to eliminate all of the static mess (this will be important later on if we decide to multi-thread the encoder.) git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4631 3789f03b-4d11-0410-bbf8-ca57d06f2519
* Ported encoding optimizations from TurboVNC. The changes to the Tight ↵DRC2011-08-111-28/+228
| | | | | | parameters were determined through extensive low-level profiling (see http://www.virtualgl.org/pmwiki/uploads/About/turbototiger.pdf). The other enhancements involved: (1) porting the solid subrectangle pre-computation code from TightVNC/TurboVNC (it makes a pretty big difference-- see report), (2) encapsulating the JPEG encoder in its own class (this eliminates a buffer copy, and the JPEG buffer is now set to a decent size where it shouldn't ever need to be paged or re-allocated, except in rare corner cases), (3) adding support for last rect. encoding (necessary to support the solid rectangle pre-computation enhancements. git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4626 3789f03b-4d11-0410-bbf8-ca57d06f2519
* Change JPEG quality/subsampling map to produce meaningful compression ↵DRC2009-03-121-10/+28
| | | | | | ratios, as defined by the VirtualGL project study of rendered frames from SPECviewperf 9 git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@3666 3789f03b-4d11-0410-bbf8-ca57d06f2519
* Tweak the quality to JPEG settings mapping a bit.Pierre Ossman2009-03-111-10/+10
| | | | | | | | | The percieved quality isn't really linear compared to the actual quality setting, so make it a bit more top heavy. Also disable color subsampling at some levels and make the highest quality lossless. git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@3660 3789f03b-4d11-0410-bbf8-ca57d06f2519
* Migrating to new directory structure adopted from the RealVNC's source tree. ↵Constantin Kaplinsky2006-05-251-0/+193
More changes will follow. git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@589 3789f03b-4d11-0410-bbf8-ca57d06f2519