Commit Graph

188 Commits

Author SHA1 Message Date
akallabeth ae5a30438e Fixed undefined behaviour 2020-05-20 15:10:07 +02:00
akallabeth a139caf73a Fixed undefined behaviour in primitives shift 2020-05-20 15:10:07 +02:00
Armin Novak ebf44f80eb Fixed format string warnings. 2020-04-11 09:43:01 +02:00
Armin Novak 66352741f2 Added fallbacks for primitives auto detection.
When using primitives auto detection it was possible that no
primitive implementation was chosen at all.
This now skips broken implementations and falls back to generic
primitives if no other implementation does work.
2020-03-02 11:40:35 +01:00
Armin Novak ea25900f4c Fixed #5855: YCoCg to RGB conversion color order 2020-01-22 17:28:22 +01:00
Armin Novak 61d2e84fdc Fixed inverted color formats in YCoCgRToRGB_8u_AC4R 2020-01-14 17:45:20 +01:00
Martin Fleisz 71feb974ac
Merge pull request #5739 from akallabeth/improve_function_hiding
Improve function hiding
2019-12-02 11:31:35 +01:00
Armin Novak 7c243da6e1 Remove symbols exported by accident. 2019-12-02 10:57:31 +01:00
David Fort 22f954970a primitives: use host pointers for openCL
Using host pointers may skip the need for copying buffers.
2019-11-29 11:59:09 +01:00
Armin Novak 3aa6047b3a Updated primitive function const correctness. 2019-11-22 13:21:39 +01:00
Armin Novak e347c7b3de Added YUV444 kernel 2019-11-22 13:21:39 +01:00
Armin Novak b3a3a6b9c2 Fixed intialization of opencl primitives and warnings. 2019-11-22 13:21:39 +01:00
David Fort 6123920a2e opencl: inline the openCL program in the source code 2019-11-22 13:21:39 +01:00
Armin Novak 00e9efd189 Fixed init code. 2019-11-22 13:21:39 +01:00
Armin Novak 733c70cd25 Fixed primitives cleanup code. 2019-11-22 13:21:39 +01:00
Armin Novak 0a3721587a Cleaned up primitives code. 2019-11-22 13:21:39 +01:00
David Fort 5f0943f0fe primitives: add openCL support
This patch adds the basic infrastructure to have openCL acceleration.
For now only YUV2RGB is implemented but other operations could be
implemented.
The primitives have been massively reworked so that we have an autodetect
mode that will pick the best implementation automatically by performing a
benchmark.

Sponsored-by: Rangee Gmbh(http://www.rangee.com)
2019-11-22 13:21:39 +01:00
Armin Novak 6afa413669 Modified primitives function pointer to take const pointer to const data 2019-11-14 10:46:24 +01:00
Armin Novak 72ca88f49c Reformatted to new style 2019-11-07 10:53:54 +01:00
Armin Novak ca4a1d19a5 Silenced some unused parameter warnings. 2019-05-08 12:21:31 +02:00
Armin Novak 0bacb30608 Fixed sign-compare warnings 2019-04-05 09:13:24 +02:00
Armin Novak 2a582ed197 Fixed NULL dereferences and uninitialized values 2019-01-30 16:11:10 +01:00
Armin Novak 98bc4358e0 Fixed padding of general_yCbCrToRGB_16s8u_P3AC4R* functions. 2018-11-28 11:05:45 +01:00
Armin Novak 62c1696d4c Removed use of unchecked sprintf 2018-08-27 14:34:42 +02:00
Armin Novak 6d3beabd54 Removed unused variables in tests. 2018-08-24 13:40:36 +02:00
Mike Gilbert 9460f4292b primitives: ensure primitives_get() returns a populated struct
Fixes: https://github.com/FreeRDP/FreeRDP/issues/4658
2018-05-16 17:08:15 -04:00
Armin Novak b5668e35b0 Fixed format string mismatch. 2018-04-05 10:49:24 +02:00
Armin Novak 2bda3a30b0 Fixed integer to float type cast. 2018-04-04 10:45:07 +02:00
Armin Novak b0fe199060 Fixed intrinsic integer overflow.
Adding 128 in 8bit is not possible due to range [-128,127].
Instead subtract -128, that should eliminate the overflow.
2018-04-04 10:43:31 +02:00
Armin Novak e0d112d548 Removed all calls to WLog_Init and WLog_Uninit
Since the calls are no longer required remove their usage.
2018-04-03 13:06:41 +02:00
Armin Novak 1a902c249c Fix PROFILER_* macros
Add the semicolon to the macro to allow clean
undefinition if the profiler is not used.
This used to break VisualC compilers.
2018-02-15 11:30:38 +01:00
Armin Novak 1d99696db2 Fixed AVC444 YUV conversion matrix 2018-02-07 11:23:33 +01:00
Armin Novak 53cdd95de0 Refactored RGB to AVC444v2 2018-02-07 10:48:43 +01:00
Armin Novak eb8e9cb410 Added SSSE3 UV average to AVC444v1 2018-02-07 10:48:43 +01:00
Armin Novak 46159c4cab Added UV average to AVC444v1 2018-02-07 10:48:43 +01:00
Armin Novak c82610c304 Deactiveate optimized primitives if no implementation compiled. 2018-01-30 14:53:53 +01:00
Armin Novak 8f7bc7990f Added SSE optimized RGB to AVC444 frame split and test. 2018-01-30 11:17:16 +01:00
Armin Novak ce10e22b86 Added optimized C function for specific color format. 2018-01-30 11:17:15 +01:00
Armin Novak f27ee2e3ab Split optimized YUV implementations to separate files. 2018-01-30 11:17:15 +01:00
David Fort 5e48664695 primitives: use INIT_ONCE instead of static booleans
This may prevent some race conditions
2018-01-29 00:25:20 +01:00
Martin Haimberger 94a58bd18d YUV conversation: fixed luma frame creation
in the conversation function general_RGBToAVC444YUVv2_ANY
2018-01-12 00:16:45 -08:00
Armin Novak 23e1afb44a Added new and optimized YUV primitives.
* RGBToAVC444YUVv2: Split a RGB frame in luma and/or chroma v2 YUV420 frames
* RGBX specific versions of RGBToAVC444YUV and RGBToYUV420_8u_P3AC4R
2018-01-10 14:46:18 +01:00
Armin Novak e4766c656e Fixed missing initialization warnings. 2017-12-21 11:04:32 +01:00
Armin Novak 57958cb178 Fixed #3810: Renamed color functions 2017-11-24 13:21:43 +01:00
Norbert Federa eea2f306d3 primitives/yuv: fix endianess issue 2017-10-19 11:55:13 +02:00
Bernhard Miklautz 52fbfb7b12 fix clang warnings, directly include wtypes.h (#4097)
* build: clang use -Wno-unused-command-line-argument

With clang 5.0 builds are quite noisy otherwise.

* Directly include wtypes.h

Directly include winpr/wtypes.h where _fseeki64 or _ftelli64 is used.

* fix build warnings with clang 5

clang version: 5.0.0-svn310678-1~exp1 (branches/release_50)
Warning: parentheses-equality

* fix build warnings with clang 5

clang version: 5.0.0-svn310678-1~exp1 (branches/release_50)
Warning: tautological-compare

* fix build warnings with clang 5

clang version: 5.0.0-svn310678-1~exp1 (branches/release_50)
Warning:
incompatible pointer types passing 'size_t *' (aka 'unsigned
long *') to parameter of type 'UINT32 *' (aka 'unsigned int *')
[-Wincompatible-pointer-types]
2017-08-29 09:09:38 +02:00
Armin Novak b51a103b70 Fixed uninitialized values. 2017-07-20 09:35:41 +02:00
Armin Novak 8b9e3fa51e Fixed use of reserved keywords for include guards. 2017-07-20 09:35:41 +02:00
Norbert Federa 36b8f54c5e Fixed a few compiler warnings 2017-07-10 17:52:05 +02:00
Armin Novak f1a296a32e Fixed AVC444v2 NEON chroma decoder. 2017-04-18 15:08:44 +02:00