While decoding RemoteFX encoded frames is multithreaded, decoding RemoteFX Progressive frames is not, although both codecs work relatively similarly. This is especially noticeable with frames, that have a resolution larger than 1920x1080 pixels. decompress_tile_first() and decompress_tile_upgrade() can both run in different threads at the same time for different tiles without necessary adjustments. So, do exactly that using the ThreadPool that already exists in the RFX_CONTEXT to decrease the decoding time and therefore increase the performance. On a 3K display (2880x1620 pixels) this makes out of a choppy experience a fluid experience.
FreeRDP: A Remote Desktop Protocol Implementation
FreeRDP is a free implementation of the Remote Desktop Protocol (RDP), released under the Apache license. Enjoy the freedom of using your software wherever you want, the way you want it, in a world where interoperability can finally liberate your computing experience.
Resources
Project website: https://www.freerdp.com/
Issue tracker: https://github.com/FreeRDP/FreeRDP/issues
Sources: https://github.com/FreeRDP/FreeRDP/
Downloads: https://pub.freerdp.com/releases/
Wiki: https://github.com/FreeRDP/FreeRDP/wiki
API documentation: https://pub.freerdp.com/api/
IRC channel: #freerdp @ irc.freenode.net
Mailing list: https://lists.sourceforge.net/lists/listinfo/freerdp-devel
Microsoft Open Specifications
Information regarding the Microsoft Open Specifications can be found at: http://www.microsoft.com/openspecifications/
A list of reference documentation is maintained here: https://github.com/FreeRDP/FreeRDP/wiki/Reference-Documentation
Compilation
Instructions on how to get started compiling FreeRDP can be found on the wiki: https://github.com/FreeRDP/FreeRDP/wiki/Compilation