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
- fixed invalid, missing or additional arguments
- removed all type casts from arguments
- added missing (void*) typecasts for %p arguments
- use inttypes defines where appropriate
win32/msvc cc does not recognize the %z format specifier which caused
invalid references and segfaults on win32.
Until FreeRDP gets format specifier macros we'll cast size_t to
unsigned long and use the %lu specifier.
Also simplified winpr_backtrace_symbols() a little bit and fixed it
to allocate the correct amount of bytes for the return buffer.
"libfreerdp" consisted of multiple (small) single libraries. If the cmake
option MONOLITHIC was used only one library was build combining all of
the libfreerdp-* libraries.
The only exceptions to this are libfreerdp-server and libfreerdp-client these
are build as separate libraries.
This commit obsoltes non-monolithic builds and makes monolithic builds
the default. The cmake option MONOLITHIC is also removed.