Commit Graph

2889 Commits

Author SHA1 Message Date
Martin Fleisz
e97c4b57a4 Merge pull request #3754 from akallabeth/asm3
NEON and SSSE3 decoder optimisations
2017-02-14 09:23:21 +01:00
Armin Novak
e3ed91ea7a Optimized clear codec line copy. 2017-02-13 17:29:29 +01:00
Armin Novak
3644d8dfbd Fixed YUV444ToRGB, do not discard chroma frame. 2017-02-13 16:11:11 +01:00
Armin Novak
4f705b99ec Fixed primitives sign test buffer size. 2017-02-13 16:09:57 +01:00
Armin Novak
e60cc9bdd9 NEON optimized YCoCg conversion. 2017-02-13 16:09:28 +01:00
Armin Novak
a791ab0b17 Added NEON and SSSE3 YCbCr conversion functions. 2017-02-13 16:08:37 +01:00
Armin Novak
b1e3bab8ef Added NEON and SSSE3 YUV conversion optimisations. 2017-02-13 16:00:12 +01:00
Armin Novak
85d8157b41 Limit RFX update region to screen. 2017-02-13 15:26:21 +01:00
Armin Novak
57db52237c Fixed AVC444 luma/chroma checks. 2017-02-10 08:31:32 +01:00
Armin Novak
ef0a7cf5d1 Fixed missing chroma data for AVC444 2017-02-09 19:55:40 +01:00
Armin Novak
7ef90497c7 Respect width and height in rfx_process_message 2017-02-09 12:36:54 +01:00
David Fort
4e0003533e Parses the SupportStatusInfoPdu early capability and send it to clients if supported 2017-02-09 11:50:46 +01:00
David Fort
6d8969ece6 Merge pull request #3747 from nfedera/improve-generic-rgb-to-yuv420
primitives: RGB to YUV420 (non SIMD) optimizations
2017-02-07 11:19:25 +01:00
Norbert Federa
490473d26f primitives: RGB to YUV420 (non SIMD) optimizations
- added a dedicated non-simd encoder for BGR[AX] source formats
- simplified the generic RgbToYuv420 encoder and fixed the crash
  with odd dimensions
2017-02-06 15:48:52 +01:00
Norbert Federa
246801ec11 Merge pull request #3740 from akallabeth/gdi_color_conversion
Fix for GDI color decoding issues.
2017-02-06 15:13:56 +01:00
Armin Novak
8845b3ffa2 Added warning for unsupported color depth. 2017-02-06 10:31:43 +01:00
Norbert Federa
cb5dfd831f primitives: added SSSE3 rgb to yuv420 encoder
Currently supported source pixel formats are:
- PIXEL_FORMAT_BGRA32
- PIXEL_FORMAT_BGRX32

Support for PIXEL_FORMAT_RGB[XA]32 can simply be added if
required (see the comment in prim_YUV_opt.c).

On my old 3.1 GHz Core i5-2400 the new SSSE3 function can convert
over 900 1080p BGRX frames per second.

The current non-optimized C version (which supports all pixel formats)
can't do more than 40 yuv conversions per second on this cpu.

---------------------------+---------+-------------+-----------+-------
RGB TO YUV420 1080p 32bit  |   COUNT |       TOTAL |       AVG |    FPS
---------------------------+---------+-------------+-----------+-------
general_RGBToYUV420        |     500 |    13.1776s | 0.026355s |     38
ssse3_RGBToYUV420          |     500 |     0.5320s | 0.001064s |    940

Also fixed an error in TestPrimitivesYUV which generated resolutions
with height or width set to zero
2017-02-03 13:56:50 +01:00
Norbert Federa
6001cb710d Merge pull request #3717 from akallabeth/prim_fixes
Fixed primitives.
2017-02-01 11:11:27 +01:00
Armin Novak
df764f5aad Fixed GDI color decoding issues. 2017-02-01 11:02:23 +01:00
Armin Novak
16de1bca2b Removed unused profiler. 2017-01-31 14:18:28 +01:00
Martin Fleisz
c2eacd3b31 Build: Use correct pdb names when installing with symbols 2017-01-31 13:32:51 +01:00
Armin Novak
dbfbd5b086 Fixed argument order of yCbCrToRGB_16s8u_P3AC4R 2017-01-31 10:49:59 +01:00
Armin Novak
c4122d342c Added performance profiler to YUV test. 2017-01-31 10:31:34 +01:00
Armin Novak
a926c73641 Fixed compiler warning. 2017-01-31 10:05:45 +01:00
Armin Novak
d7426d4516 Reverted RGB2V 2017-01-31 10:04:00 +01:00
akallabeth
0d0eb78838 Merge pull request #3725 from chipitsine/master
make cppcheck even more happier
2017-01-27 18:49:35 +01:00
David Fort
a6dbc32cf3 Added missing const modifiers for source pointers in codecs 2017-01-27 11:23:08 +01:00
Ilya Shipitsin
12f5368819 make cppcheck even more happier:
[channels/tsmf/client/gstreamer/tsmf_X11.c:317] -> [channels/tsmf/client/gstreamer/tsmf_X11.c:322]: (warning) Either the condition '!decoder' is redundant or there is possible null pointer dereference: decoder.
[channels/tsmf/client/gstreamer/tsmf_X11.c:470] -> [channels/tsmf/client/gstreamer/tsmf_X11.c:475]: (warning) Either the condition '!decoder' is redundant or there is possible null pointer dereference: decoder.
[channels/tsmf/client/gstreamer/tsmf_X11.c:472] -> [channels/tsmf/client/gstreamer/tsmf_X11.c:475]: (warning) Either the condition '!decoder' is redundant or there is possible null pointer dereference: decoder.
[channels/tsmf/client/tsmf_media.c:179] -> [channels/tsmf/client/tsmf_media.c:181]: (warning) Either the condition '!stream' is redundant or there is possible null pointer dereference: stream.
[client/Windows/wf_cliprdr.c:2219] -> [client/Windows/wf_cliprdr.c:2222]: (warning) Either the condition '!formatDataResponse' is redundant or there is possible null pointer dereference: formatDataResponse
[client/Windows/wf_cliprdr.c:2445] -> [client/Windows/wf_cliprdr.c:2448]: (warning) Either the condition '!fileContentsResponse' is redundant or there is possible null pointer dereference: fileContentsResponse.
[client/X11/xf_cliprdr.c:911] -> [client/X11/xf_cliprdr.c:913]: (warning) Either the condition '!clipboard' is redundant or there is possible null pointer dereference: clipboard.
[client/X11/xf_graphics.c:504] -> [client/X11/xf_graphics.c:506]: (warning) Either the condition '!xfc' is redundant or there is possible null pointer dereference: xfc.
[libfreerdp/core/transport.c:861] -> [libfreerdp/core/transport.c:863]: (warning) Either the condition '!transport' is redundant or there is possible null pointer dereference: transport.
[server/shadow/shadow_server.c:777] -> [server/shadow/shadow_server.c:791]: (warning) Either the condition '!server' is redundant or there is possible null pointer dereference: server.
[server/shadow/shadow_server.c:778] -> [server/shadow/shadow_server.c:791]: (warning) Either the condition '!server' is redundant or there is possible null pointer dereference: server.
[server/shadow/shadow_server.c:779] -> [server/shadow/shadow_server.c:791]: (warning) Either the condition '!server' is redundant or there is possible null pointer dereference: server.
[server/shadow/shadow_server.c:781] -> [server/shadow/shadow_server.c:791]: (warning) Either the condition '!server' is redundant or there is possible null pointer dereference: server.
[server/shadow/shadow_server.c:782] -> [server/shadow/shadow_server.c:791]: (warning) Either the condition '!server' is redundant or there is possible null pointer dereference: server.
[server/shadow/shadow_server.c:783] -> [server/shadow/shadow_server.c:791]: (warning) Either the condition '!server' is redundant or there is possible null pointer dereference: server.
[server/shadow/shadow_server.c:784] -> [server/shadow/shadow_server.c:791]: (warning) Either the condition '!server' is redundant or there is possible null pointer dereference: server.
[server/shadow/shadow_server.c:785] -> [server/shadow/shadow_server.c:791]: (warning) Either the condition '!server' is redundant or there is possible null pointer dereference: server.
[server/shadow/shadow_server.c:787] -> [server/shadow/shadow_server.c:791]: (warning) Either the condition '!server' is redundant or there is possible null pointer dereference: server.
[server/shadow/shadow_server.c:789] -> [server/shadow/shadow_server.c:791]: (warning) Either the condition '!server' is redundant or there is possible null pointer dereference: server.
2017-01-26 14:44:19 +05:00
Armin Novak
d39f4a4d3d Removed unused functions. 2017-01-24 12:54:02 +01:00
Armin Novak
b04b8303e6 Using faster transformation for RFX decoder. 2017-01-24 11:37:24 +01:00
Armin Novak
0d6fb17921 Fixed NEON primitives. 2017-01-24 09:08:03 +01:00
Armin Novak
dd430f78f6 Fixed YUV tests. 2017-01-24 09:08:03 +01:00
Armin Novak
adcd09cd46 Enabled ASM primitives. 2017-01-24 09:08:03 +01:00
Bernhard Miklautz
924a84b324 Merge pull request #3708 from akallabeth/termination_fixes
Client channel shutdown fixes
2017-01-23 15:47:39 +01:00
Armin Novak
7ed99623df Fixed channel connected status. 2017-01-23 14:18:19 +01:00
Armin Novak
b233afc076 Fixed uninitialized variable warning. 2017-01-23 13:27:30 +01:00
Armin Novak
00c32f62d3 Fixed alpha channel for color formats without. 2017-01-23 11:32:26 +01:00
Armin Novak
6188a12b37 Fixed planar with if local framebuffer is 16bpp 2017-01-23 11:32:25 +01:00
Bernhard Miklautz
85da68c334 Merge pull request #3703 from akallabeth/prim_optimize
[PERFORMANCE] Inlined heavily used functions
2017-01-23 10:39:02 +01:00
David Fort
f68888a978 Add a callback that allows to adjust monitors layout
This callback is useful in server mode when you want to adjust the monitor
layout just before the server monitor layout PDU is built and sent.
2017-01-19 18:05:44 +01:00
David Fort
e775a2a46f Treat the result of the Capabilities callback
The result was ignored. Plus return the correct value in case of licence error (-1
instead of FALSE).
2017-01-19 17:57:44 +01:00
Armin Novak
34eb0e5d9d Progressive structs to private header for tests. 2017-01-18 16:41:02 +01:00
Armin Novak
d9810dd7a4 Progressive struct now opaque. 2017-01-18 16:16:29 +01:00
Armin Novak
ace5100e21 Progressive conversion and speed fixes
* Using destination color format and precomputed tile stride
* Using preallocated logger
2017-01-18 15:28:53 +01:00
Armin Novak
7198970a4e Removed obsolete primitive usage. 2017-01-18 15:28:53 +01:00
Armin Novak
7e4c6c6a48 Optimized functions, removed duplicates. 2017-01-18 15:28:53 +01:00
Armin Novak
9cf6af36fb Inlined shift operations. 2017-01-18 15:28:53 +01:00
Armin Novak
326aafc7f8 Inlined freerdp_image_copy helpers. 2017-01-18 15:28:53 +01:00
Armin Novak
da84552ba7 Inlined interleaved helper functions. 2017-01-18 15:28:53 +01:00
Armin Novak
6be6eb2f18 Optimized freerdp_image_fill 2017-01-18 15:28:53 +01:00