Commit Graph

4543 Commits

Author SHA1 Message Date
Armin Novak
84d4ec009c Added error messages for not implemented functions. 2013-08-26 18:59:29 +02:00
Armin Novak
83e9adf30d Thread timed join now only available with _GUN_SOURCE. 2013-08-26 18:59:29 +02:00
Armin Novak
2863a55f5b Implemented timeouts for WaitForSingleObject.
Added assertions for functions not implemented.
2013-08-26 18:59:22 +02:00
Norbert Federa
df7311b4f9 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.
(cherry picked from commit ccc5d1b279)
2013-08-26 15:31:34 +02:00
Bernhard Miklautz
d817ef3516 android: updated toolchain file
* support for ndk version r8d+
* improved x86_64 host machine support
* support non-release NDK layouts
(cherry picked from commit 553f7c24f7)
2013-08-26 15:29:07 +02:00
Norbert Federa
75f23925cd codec/rfx: added multithreaded encoder
(cherry picked from commit 0d916527bc)
2013-08-26 15:28:53 +02:00
Norbert Federa
41ce9a0969 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.
(cherry picked from commit 3a58934eb2)
2013-08-26 15:27:32 +02:00
Norbert Federa
434ac77b83 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).
(cherry picked from commit 2b25b4a520)
2013-08-26 15:27:15 +02:00
Norbert Federa
47b17b5386 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.
(cherry picked from commit 938a0890a3)
2013-08-26 15:26:22 +02:00
Armin Novak
d67624684f Added proper find_feature check for JPEG library.
(cherry picked from commit 4d13b27a02)
2013-08-26 15:26:15 +02:00
Bernhard Miklautz
deb9d2bc8e Merge pull request #1389 2013-08-26 14:53:40 +02:00
Armin Novak
b6d06ec012 Added libusb detection CMake script. 2013-08-26 14:41:47 +02:00
Armin Novak
c22b539153 Fixed linking with libusb, now linking against correct library. 2013-08-26 14:41:47 +02:00
Armin Novak
fe221cdc56 Now using libraries detected by CMake for linking against libusb. 2013-08-26 14:41:47 +02:00
Armin Novak
67808b8bc3 Added proper CMake checks for libraries linked with urbdrc 2013-08-26 14:41:47 +02:00
Norbert Federa
f25f2e6055 winpr: improve and fix locking for data structures
- Improved/completed(almost) winpr's critical section implementation
- Replaced WaitForSingleObject locking with critical sections

Note:
WaitForSingleObject should _never_ be used for granular low-contention
locks as it _always_ enters the kernel.

Just replacing WaitForSingleObject locking in Bufferpool with
EnterCriticalSection boosts the multithreaded rfx decoder
performance by almost 400% on win32.
(pull #1388 - cherry picked from commit 81ef251fc8)
2013-08-26 12:53:43 +02:00
Bernhard Miklautz
e5bdfc5eed Fixed typo(cherry picked from commit 558d40b18c) 2013-08-26 12:45:23 +02:00
Vic Lee
0fc2d1d1d2 libfreerdp-core/fastpath: fix memory leak when sending large packet.
(cherry picked from commit 21796ad73d)
2013-08-26 12:44:59 +02:00
Marc-André Moreau
14d4adb901 Merge pull request #1403 from dpoe/stable-1.1
fix per-device CAL licensing
2013-08-14 06:59:50 -07:00
Daryl Poe
d6d0d81d08 fix per-device CAL licensing 2013-08-07 16:28:31 -06:00
Bernhard Miklautz
fd8fc31ce6 Merge pull request #1378 from dpoe/stable-1.1
careful with passwd in compatibility.c
2013-07-30 05:11:03 -07:00
Daryl Poe
a4a5baf0da careful with passwd in compatibility.c 2013-07-29 16:50:38 -06:00
Norbert Federa
aca7d9366e 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);
(cherry picked from commit 1d384ce863)
2013-07-29 20:31:08 +02:00
Bernhard Miklautz
f3019b2b40 Merge pull request #1373 from dpoe/stable-1.1
fix segfault due to pulse input race condition
2013-07-29 09:18:02 -07:00
Daryl Poe
be51676541 fix segfault due to pulse input race condition 2013-07-26 13:54:20 -06:00
Bernhard Miklautz
359c5d258e Merge pull request #1371 from dpoe/stable-1.1
cover the case of servers asking for cached bitmaps they have never defi...
2013-07-26 02:45:45 -07:00
Daryl Poe
46a691db02 cover the case of servers asking for cached bitmaps they have never defined 2013-07-25 15:01:56 -06:00
Marc-André Moreau
cd68f79519 channels/disp: remove RDP8.1 Preview MS-RDPEDISP support from 1.1 stable branch (will be included in next release) 2013-07-16 15:21:17 -04:00
Marc-André Moreau
18a3f37d06 Merge pull request #1354 from awakecoding/master
Multitouch, MacFreeRDP, PubSub
2013-07-16 11:57:34 -07:00
Marc-André Moreau
67b972a021 mfreerdp: fix cursor rendering 2013-07-16 14:44:49 -04:00
Marc-André Moreau
a2992b06b7 freerdp: merge with master 2013-07-15 17:37:46 -04:00
Marc-André Moreau
ba69071d04 Merge branch 'master' of github.com:FreeRDP/FreeRDP 2013-07-15 17:14:40 -04:00
Marc-André Moreau
fe62e8c69b Merge branch 'master' of github.com:mrthebunny/FreeRDP 2013-07-15 17:14:20 -04:00
Marc-André Moreau
b0450f556e channels/disp: initial MS-RDPEDISP support (8.1 Preview build) 2013-07-15 10:43:38 -04:00
Bernhard Miklautz
738cd19478 Merge pull request #1353 from nfedera/fix-2013-07-15-01
libfreerdp-gdi: added gdi_surface_frame_marker
2013-07-15 06:15:37 -07:00
Norbert Federa
e0e337e278 libfreerdp-gdi: added gdi_surface_frame_marker
Frame markes are not really implemented. Just SendFrameAcknowledge on
SURFACECMD_FRAMEACTION_END if settings->FrameAcknowledge > 0

This fixes issue #1352
2013-07-15 15:00:18 +02:00
Bernhard Miklautz
e3de8333f8 Merge pull request #1351 from akallabeth/master
Fix for Issue #1349
2013-07-15 05:09:42 -07:00
Armin Novak
6e6581ab87 Fix for Issue #1349 2013-07-15 10:20:24 +02:00
Benoît LeBlanc
44ead029f7 MacFreeRDP: fixed incorrect invalidation region that caused "tiles". Removed unused variables. 2013-07-11 11:19:21 -07:00
Marc-André Moreau
a306d3f9fc channels/rdpei: fix multitouch with Word 2013 2013-07-11 11:04:20 -07:00
Marc-André Moreau
5926fa36dd libfreerdp-client: use PubSub for OnChannelConnected/OnChannelDisconnected 2013-07-11 08:53:15 -07:00
Marc-André Moreau
f5c2181218 channels/disp: update 2013-07-10 14:04:43 -07:00
Bernhard Miklautz
780d451afa Merge pull request #1345 from nfedera/feat-2013-07-10-01
codec/rfx: use function pointer for rlgr codec
2013-07-10 01:00:21 -07: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
Marc-André Moreau
b93898e5ec client: add option for MS-RDPEDISP (/disp) 2013-07-09 16:10:59 -04:00
Marc-André Moreau
eca98fe8cc channels/disp: initial RDP8.1 MS-RDPEDISP implementation 2013-07-08 18:36:03 -04:00
Bernhard Miklautz
7572be0405 Merge pull request #1342 from hardeepmonty/refactor/fastpath_variable_association
fixed error on compilation WITH_DEBUG_RDP ON that was raising due to wrong variable in debug statement.
2013-07-08 02:23:43 -07:00
Benoît LeBlanc
163cc975d9 Merge branch 'master' of git://github.com/awakecoding/FreeRDP
# By Marc-André Moreau
# Via Marc-André Moreau
* 'master' of git://github.com/awakecoding/FreeRDP:
  libwinpr-utils: implement ListDictionary
2013-07-07 22:02:09 -04:00
Monty
f8fa2f9f5d fixed error on compilation WITH_DEBUG_RDP ON that was raising due to wrong variable in debug statement 2013-07-07 12:14:38 +05:30
Benoît LeBlanc
f9bac0fce9 Added public API function
freerdp_client_write_connection_file()

For now, all settings are written to the RDP file. This can be switched with the WRITE_ALL_SETTINGS define in file.c
2013-07-05 23:20:56 -04:00