Commit Graph

4804 Commits

Author SHA1 Message Date
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
Armin Novak
7d27062edd Using WaitForMultipleObjects now to reduce CPU load. 2013-08-13 14:04:17 +02:00
Marc-André Moreau
f8e870a258 libwinpr-utils: implement asynchronous mode for ListDictionary 2013-08-12 17:48:32 -04:00
Marc-André Moreau
e91f2516e5 libfreerdp-codec: fix automatic growing of the encode stream size 2013-08-12 13:13:27 -04:00
Marc-André Moreau
356186ed54 Merge branch 'master' of github.com:awakecoding/FreeRDP 2013-08-12 12:09:44 -04:00
Marc-André Moreau
5964bf2fbb Merge branch 'master' of github.com:FreeRDP/FreeRDP 2013-08-12 12:01:34 -04:00
Armin Novak
c39d99b02d winpr config.h now generated in binary tree. 2013-08-12 13:51:18 +02:00
Armin Novak
1a681ad117 Moved generated tables.c to binary folder. 2013-08-12 13:41:11 +02:00
Armin Novak
2f45f68521 Generating config.h now in binray tree. 2013-08-12 12:53:04 +02:00
Armin Novak
d41f2fa2ed Added links to documentation of message sequences for clipboard data exchange. 2013-08-12 12:47:47 +02:00
Armin Novak
dc998d255b Merge branch 'master' of https://github.com/FreeRDP/FreeRDP 2013-08-12 11:57:21 +02:00
Marc-André Moreau
a9c9d87849 Merge branch 'master' of github.com:awakecoding/FreeRDP 2013-08-09 21:23:29 -04:00
Marc-André Moreau
bb30ceb006 mfreerdp: cleanup 2013-08-09 21:23:08 -04:00
Marc-André Moreau
c998f0b173 Merge pull request #1413 from nfedera/fix-2013-08-10-01
codec/rfx: fix multithreaded encoder
2013-08-09 15:53:08 -07: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
Armin Novak
a57f1302f4 Fixed invalid package size allocation and calculation in cliprdr_process_format_list_event
Enabled and fixed error handling in cliprdr_process_format_list_response
2013-08-09 16:23:00 +02:00
Armin Novak
ebb36d4019 Merge branch 'master' of https://github.com/FreeRDP/FreeRDP 2013-08-09 16:17:22 +02:00
Marc-André Moreau
d9a4b350af libfreerdp-core: fix leak in listener 2013-08-08 21:24:07 -04:00
Marc-André Moreau
f010a4d360 Merge pull request #1409 from alexpilotti/master
Fixes libwinpr build issue on Windows
2013-08-08 16:53:12 -07:00
Alessandro Pilotti
644e0efa76 Fixes libwinpr build issue on Windows
Adds conditional statements in file.c to solve a Posix portability
issue on Windows introduced with the following commit:

913d532e0d
2013-08-09 02:45:31 +03:00
Marc-André Moreau
2847c8819e mfreerdp: fix out of source build 2013-08-08 16:38:50 -04:00
Marc-André Moreau
b164453d75 mfreerdp: fix 32-bit and universal build 2013-08-08 16:10:23 -04:00
Marc-André Moreau
1d1d04149c mfreerdp: cleanup makefiles 2013-08-08 15:49:24 -04:00
Norbert Federa
4f5522f099 Merge pull request #1406 from bmiklautz/android_toolchain
android: updated toolchain file
2013-08-08 09:59:12 -07:00
Bernhard Miklautz
553f7c24f7 android: updated toolchain file
* support for ndk version r8d+
* improved x86_64 host machine support
* support non-release NDK layouts
2013-08-08 16:23:11 +02:00
Armin Novak
44c80c29cc Fixed #1404, using WaitForMultipleObjects now. 2013-08-08 14:46:21 +02:00
Armin Novak
ca215eea69 Merge branch 'master' of https://github.com/FreeRDP/FreeRDP 2013-08-08 14:43:42 +02:00
Bernhard Miklautz
558d40b18c Fixed typo 2013-08-08 12:41:04 +02:00
Armin Novak
1925939e8f Merge branch 'master' of https://github.com/FreeRDP/FreeRDP 2013-08-08 08:41:13 +02:00
Marc-André Moreau
f1c0ffb130 libfreerdp-core: fix sending of bitmap updates 2013-08-07 23:46:17 -04:00
Marc-André Moreau
8ca74a2766 libfreerdp-core: add support for server-side bitmap updates 2013-08-07 21:47:03 -04:00
Marc-André Moreau
0e8dfb9e77 Merge pull request #1390 from awakecoding/master
Server-side core fixes, WinPR waitable timers & named pipes, Multitouch fixes
2013-08-07 13:39:29 -07:00
Marc-André Moreau
e31b9b7709 libwinpr-pipe: add missing link dependency 2013-08-07 16:00:21 -04:00
Marc-André Moreau
a9bf93ed6a libwinpr-pipe: add missing link dependencies for test code 2013-08-07 15:56:05 -04:00
Marc-André Moreau
34f9985add freerdp: merge with master 2013-08-07 15:48:57 -04:00
Marc-André Moreau
ebee0d3f21 Merge pull request #1402 from nfedera/fix-2013-08-07-03
codec/rfx: added multithreaded encoder
2013-08-07 12:36:19 -07:00
Marc-André Moreau
331933635c Merge pull request #1401 from nfedera/fix-2013-08-07-02
libwinpr-utils: Use criticalsection with spincount
2013-08-07 12:35:46 -07:00
Marc-André Moreau
ecad3aa416 Merge pull request #1397 from nfedera/fix-2013-08-07-01
libwinpr-sync: New complete critical section code
2013-08-07 12:35:06 -07:00
Norbert Federa
0d916527bc codec/rfx: added multithreaded encoder 2013-08-07 18:22:42 +02:00
Norbert Federa
3a58934eb2 libwinpr-utils: Use criticalsection with spincount
Use InitializeCriticalSectionAndSpinCount instead of IntializeCriticalSection.
Using spin counts for critical sections of short duration enables the calling
thread to avoid the wait operation in most situations which can dramatically
improve the overall performance on multiprocessor systems.

On Linux this change has no effect because the new winpr critical section
implementation does not use the SpinCount field under Linux because the NPTL
synchronization primitives are implemented using the extremely performant
futex system calls which have this magic already built in.

However, on Mac OS X this change improved the overall performance of the
multithreaded RemoteFX decoder by 25 percent.

I've used a SpinCount of 4000 which avoided 99 percent of the wait calls.
This value is also used by Microsoft's heap manager for its per-heap
critical sections.

Note: This change requires pull request #1397 to be merged.
2013-08-07 18:16:01 +02:00
Norbert Federa
2b25b4a520 libwinpr-sync: New complete critical section code
- Complete implementation including recursion support
- Added an intensive ctest (TestSynchCritical)
- Struct members are used exactly as Windows does it internally:
  LockCount starts at -1, RecursionCount at 0
- Same performance optimizations as internally on Windows:
    - Fast lock acquisition path using CAS -> SpinCount -> wait
    - SpinCount automatically disabled on uniprocessor systems
- On Linux SpinCount is disabled because it provided no advantage over NPTL/futex in all tests

Support for CRITICAL_SECTION's DebugInfo is not yet included (but trivial to add).
2013-08-07 10:20:04 +02:00
Armin Novak
d8bd4397e9 Added generated documentation files to gitignore. 2013-08-07 09:19:16 +02:00
richterger
505facbb6f Fix off by one problem in StreamPool allocation 2013-08-07 08:01:33 +02:00
richterger
3246dcff22 Fixed memory corruption problems within client redirect
- set freed pointers to NULL to avoid double free
- realloc mppc to cleanly restart compression
- avoid releaseing StreamPool from already freed transport after client redirect
2013-08-07 07:58:34 +02:00
Armin Novak
9b95c55574 Replaced xmlto with xsltproc to word around a bug preventing manpages
to be build, when there are spaces in the build path.
2013-08-06 15:02:36 +02:00