Commit Graph

59 Commits

Author SHA1 Message Date
Armin Novak 75c0ecb362 Fixed coverity issue 1047564 2013-09-05 12:14:33 +02:00
Armin Novak c05daf9f74 Fixed coverity issue 1047621 2013-09-05 12:14:31 +02:00
Vic Lee 86e783e4fb libfreerdp-codec/rfx: fix memory corruptions. 2013-09-03 20:27:08 +08:00
Marc-André Moreau 08dce6e090 libfreerdp-codec: add support for passing pointer to beginning of buffer for RemoteFX encoding 2013-08-14 20:35:00 -04:00
Marc-André Moreau 2d3d5acf1e libfreerdp-codec: initial support for RemoteFX fragmented encoding 2013-08-14 13:19:01 -04:00
Marc-André Moreau 5e6325d62c libfreerdp-codec: start exporting split encode/write rfx api 2013-08-14 10:14:47 -04:00
Marc-André Moreau dfbd4cb9fb libfreerdp-codec: refactor encoder to use message-centric interface 2013-08-13 17:50:05 -04:00
Marc-André Moreau fe25303656 libfreerdp-codec: internal refactoring 2013-08-13 17:18:59 -04:00
Marc-André Moreau c8b85e19a4 libfreerdp-codec: separate tile encoding from writing 2013-08-13 14:13:05 -04:00
Marc-André Moreau 4e6f1f5a4b libfreerdp-codec: use pooled buffers for channel encoding 2013-08-13 13:45:28 -04:00
Marc-André Moreau 482e836ad8 libfreerdp-codec: refactor internal rfx_compose_message_tile 2013-08-13 11:09:54 -04:00
Marc-André Moreau 916a4eee4b libfreerdp-codec: start making use of RFX_TILE structure for encoding 2013-08-13 10:30:22 -04:00
Marc-André Moreau 3e4dc73280 libfreerdp-codec: split stream parsing from tile decoding 2013-08-13 10:09:32 -04:00
Marc-André Moreau b972830841 libfreerdp-codec: make use of ObjectPool for tiles 2013-08-13 09:34:15 -04:00
Marc-André Moreau e91f2516e5 libfreerdp-codec: fix automatic growing of the encode stream size 2013-08-12 13:13:27 -04:00
Norbert Federa ccc5d1b279 codec/rfx: fix multithreaded encoder
Some component of the encoder chain (I suspect the rlgr encoder) expects
the output buffer to be zeroed. The multithreaded RemoteFX encoder uses
wStreams from the StreamPool which are reused and not zeroed out of
course. For now, in order to prevent data corruption we clear the stream.
2013-08-10 00:28:35 +02:00
Norbert Federa 0d916527bc codec/rfx: added multithreaded encoder 2013-08-07 18:22:42 +02:00
Norbert Federa 938a0890a3 codec/rfx: removed unnecessary WaitForSingleObject
The WaitForSingleObject call on TilePool's event is called with a zero time-out
interval and the event is a manual reset event ... thus no locking or waiting
is involved anyways and Queue_Dequeue may very well return NULL independently
of calling WaitForSingleObject which is already correctly handled.
2013-07-30 13:02:43 +02:00
Norbert Federa 1d384ce863 codec/rfx: removed unused queue TileQueue
Declared, created, deleted but not used:

    git grep TileQueue
    libfreerdp/codec/rfx_types.h: wQueue* TileQueue;
    libfreerdp/codec/rfx.c:       context->priv->TileQueue = Queue_New(TRUE, -1, -1);
    libfreerdp/codec/rfx.c:       Queue_Free(context->priv->TileQueue);
2013-07-17 10:01:56 +02:00
Norbert Federa b9c8ac6527 codec/rfx: use function pointer for rlgr codec
Option to switch the rlgr implementation during runtime - exactly
like we do it with the ycbcr, dwt and quantization functions.
2013-07-10 07:14:26 +02:00
Norbert Federa df7526f888 codec/rfx: Fixed bufferpool size used for RemoteFX
y_r_buffer, cb_g_buffer, cr_b_buffer and dwt_buffer are all word arrays (16bit)
but obviously the bufferpool size was calculated based on the wrong assumption
that these are 32 bit values in commit 37a59efbe3
2013-07-05 12:30:13 +02:00
Norbert Federa 40976a91b7 utils/profiler: fix unix build 2013-06-27 13:43:29 +02:00
Norbert Federa b2108839b0 utils: fix broken stopwatch implementation
Stopwatch (in the way it is used) must be able to measure the wall
clock time with high resolution but used clock() which is not
appropriate for this purpose:
On POSIX systems clock() returns the processor time used by the
program. On Windows clock() does measure the wall clock time but
has only a resolution of 1ms (if at all).
This also renders the freerdp profiler unusable.

This commit changes stopwatch to use the performance counters
on Windows and gettimeofday() for the rest.

Also added a warning about invalid profiling results to the
RemoteFX codec if rfxcontext->priv->UseThreads is enabled because
stopwatch is currently not used in a thread safe way.

Also see GitHub Issue #1325
2013-06-27 13:00:54 +02:00
Vic Lee 6551815991 libfreerdp-codec/rfx: fix a memory leak. 2013-06-20 12:10:01 +08:00
Vic Lee b194ddc211 libfreerdp-codec/rfx: dwSize must be initialized. 2013-06-14 12:16:04 +08:00
Marc-André Moreau fdf3ddcf9e freerdp: purge deprecated stream utils 2013-05-08 17:48:30 -04:00
Marc-André Moreau fd230443c5 freerdp: purge old stream utils 2013-05-08 16:27:21 -04:00
Marc-André Moreau 5b92413843 freerdp: purge deprecated stream utils 2013-05-08 16:09:16 -04:00
Marc-André Moreau b4cac74136 xfreerdp-server: fix RemoteFX encoding 2013-05-01 18:15:55 -04:00
Marc-André Moreau 51715636a5 freerdp: remove some deprecated stream utils 2013-04-29 22:35:15 -04:00
Marc-André Moreau a8201b0d1b libwinpr-utils: combine old and new stream utils 2013-03-21 15:19:33 -04:00
Martin Fleisz 2e8a0983dd codec: Added padding to rfx buffers for SSE/NEON code 2013-03-05 17:36:26 +01:00
Bernhard Miklautz 23a7ef6c47 codec/rfx: use sysinfo to detect sse2/neon
This also moves (sse2) detection code out of the client into the decoder.
2013-03-01 09:02:14 +01:00
Martin Fleisz b8fd4b5227 codec: Fixed NEON CPU detection compile issue, primitives_get race condition in rfx decoding 2013-02-22 03:37:39 -08:00
Martin Fleisz 1cfb4a4e77 codec: Fixed NEON detection and incorrect RFX decoding 2013-02-21 07:08:46 -08:00
Marc-André Moreau f49c92d6fe Merge pull request #932 from hardening/remoteFxChecks
Add checks on RemoteFX
2013-02-02 13:30:54 -08:00
C-o-r-E bbfc724db9 libfreerdp: fix slash 2013-01-30 19:56:58 -05:00
C-o-r-E a39ef9980f Merge remote-tracking branch 'upstream/master' 2013-01-30 19:05:35 -05:00
Corey C b23cde57a6 libfreerdp: missing include 2013-01-30 18:55:22 -05:00
hardening ebfec72e88 Add checks on RemoteFX 2013-01-28 22:23:10 +01:00
Marc-André Moreau ebefab1de4 libfreerdp-codec: add processor count detection and auto-enabling of threads in RemoteFX decoder 2013-01-23 19:21:14 -05:00
Marc-André Moreau a5b66e3766 libfreerdp-codec: fix build on Windows 2013-01-23 11:48:31 -05:00
Marc-André Moreau 94ad538185 libfreerdp-codec: added registry keys for multithreaded RemoteFX decoder 2013-01-22 21:54:13 -05:00
Marc-André Moreau 22f374ac36 libfreerdp-codec: implement buffer pooling for RemoteFX 2013-01-22 21:24:04 -05:00
Marc-André Moreau f5d9b06252 libwinpr-utils: added buffer pool 2013-01-22 20:36:08 -05:00
Marc-André Moreau 37a59efbe3 libfreerdp-codec: use _aligned_free for RemoteFX buffers 2013-01-22 18:32:17 -05:00
Marc-André Moreau 438a727c6b libfreerdp-codec: start parallel decoding of RemoteFX tiles 2013-01-22 18:14:50 -05:00
Marc-André Moreau 9a7bcbb084 libfreerdp-codec: remove old RemoteFX tile pool 2013-01-20 20:44:30 -05:00
Daryl Poe b64408975d freerdp primitives library 2013-01-18 15:32:58 -07:00
Marc-André Moreau 8a32de3801 libfreerdp: purged source tree from deprecated memory utils 2012-11-21 21:22:06 -05:00