Commit Graph

252 Commits

Author SHA1 Message Date
erbth
7828725413 YUV data conversion of H.264 implementation (egfx):
only convert invalid areas
SIMD SSSE3 conversion in primitives
compiling all primitives sources with optimization

and cleanup after last merge
2014-09-09 00:13:18 +02:00
erbth
cbc8b3a7e1 Merge branch 'egfx' of https://github.com/awakecoding/freerdp into egfx_new
Conflicts:
	channels/drdynvc/client/dvcman.c
	include/freerdp/codec/h264.h
	libfreerdp/codec/h264.c		after this merge h264 doesn't work anymore!!
	libfreerdp/utils/svc_plugin.c
2014-09-08 16:56:45 +02:00
Marc-André Moreau
f14b0e0195 libfreerdp-codec: cleanup h264 decoder 2014-09-05 19:11:03 -04:00
erbth
25593c7250 H.264: converting only clipping rects to XRGB 2014-09-02 22:16:56 +02:00
Marc-André Moreau
6abd9e6be0 libfreerdp-codec: add more progressive test functions 2014-09-02 13:31:40 -04:00
Marc-André Moreau
49cede6e01 libfreerdp-codec: add separate sign array 2014-08-28 15:14:01 -04:00
Marc-André Moreau
e15baf6184 libfreerdp-codec: add code for SRL parsing 2014-08-28 12:14:28 -04:00
Marc-André Moreau
32766b0647 libfreerdp-codec: start computing BitPos 2014-08-27 17:02:15 -04:00
Marc-André Moreau
656dd760c5 libfreerdp-codec: fix sub-band diffing 2014-08-26 16:15:22 -04:00
Marc-André Moreau
4773403243 libfreerdp-codec: partial YCbCr diffing support 2014-08-26 14:36:33 -04:00
Marc-André Moreau
2cffa7d8f4 libfreerdp-codec: make use of progressive quantization factors 2014-08-25 17:58:38 -04:00
Marc-André Moreau
ed7312501c libfreerdp-codec: fix progressive quantization shifts 2014-08-21 19:43:37 -04:00
Marc-André Moreau
68b3d0476b libfreerdp-codec: start work on progressive inverse DWT 2014-08-19 14:48:09 -04:00
Marc-André Moreau
82a53057a1 Merge pull request #2023 from ptsekov/software-gdi-improvements
Software GDI improvements
2014-08-18 16:22:23 -04:00
Pavel Tsekov
53e19e0da7 Fix conversion of 24bpp bitmaps to 32bpp fb when
CLRCONV_INVERT and/or CLRCONV_ALPHA is set.
* include/freerdp/codec/color.h (RGB32_to_BGR32): New inline function.
* libfreerdp/codec/color.c:
(freerdp_image_convert_24bpp): Fix CLRCONV_ALPHA and CLRCONV_INVERT
processing for 32bpp destination.
Unroll the conversion loop to process four pixels in one go using
32-bit load and store operations.
2014-08-14 00:31:15 +03:00
Pavel Tsekov
c51c5df2ff * include/freerdp/codec/color.h:
(freerdp_color_convert_drawing_order_color_to_gdi_color): Declare new
function.
* libfreerdp/codec/color.c:
(freerdp_color_convert_drawing_order_color_to_gdi_color): Implement.
(freerdp_image_convert_8bpp): Properly use the ARGB32/ABGR32/RGB32/BGR32
macros when converting 8bpp data to 32bpp.
(freerdp_image_convert_32bpp): Fix CLRCONV_ALPHA and CLRCONV_INVERT
processing for 32bpp destination.
(freerdp_mono_image_convert): Use ARGB32/ABGR32 when converting to 32bpp
and CLRCONV_ALPHA is set.
* libfreerdp/core/orders.c: Color data from drawing orders is
interpreted in big endian mode.
* libfreerdp/core/update.c (update_read_palette): Likewise.
* libfreerdp/gdi/16bpp.c (gdi_get_color_16bpp): GDI colors are stored as
RGB now.
* libfreerdp/gdi/32bpp.c (gdi_get_color_32bpp): Likewise.
* libfreerdp/gdi/gdi.c:
Use freerdp_color_convert_drawing_order_color_to_gdi_color() to convert
from drawing order color representation to GDI color representation
troughout.
* libfreerdp/gdi/graphics.c (gdi_Glyph_BeginDraw): Likewise.
(gdi_Glyph_EndDraw): Likewise.
2014-08-07 00:58:58 +03:00
Marc-André Moreau
2653c5420f libfreerdp-codec: start processing tiles in progressive rfx 2014-08-06 10:23:14 -04:00
Marc-André Moreau
22d3b6c74b libfreerdp-codec: remove old RemoteFX RLGR implementation in favour of faster one 2014-08-05 21:41:58 -04:00
Marc-André Moreau
14a3ff94eb libfreerdp-codec: simplify block reading logic 2014-08-01 09:44:00 -04:00
Marc-André Moreau
574c1789b7 libfreerdp-codec: start processing progressive tiles 2014-07-31 15:08:54 -04:00
Marc-André Moreau
800be2f680 libfreerdp-codec: complete parsing of progressive codec block arrays 2014-07-29 17:37:46 -04:00
Marc-André Moreau
2b3cd39026 libfreerdp-codec: more parsing of progressive data blocks 2014-07-29 12:38:29 -04:00
Marc-André Moreau
a3de93d867 libfreerdp-codec: start parsing progressive codec 2014-07-28 23:41:16 -04:00
Marc-André Moreau
0c408c213c libfreerdp-codec: stub progressive codec decompressor 2014-07-28 17:42:23 -04:00
Mike McDonald
4370c26e0d Added the ability to decode H.264 frames using libavcodec and refactored code to make it a little cleaner. 2014-07-14 09:59:57 -04:00
Marc-André Moreau
03c91a92d1 libfreerdp-codec: add more egfx h264 debugging 2014-07-09 16:41:36 -04:00
Marc-André Moreau
2f26ed58e5 libfreerdp-codec: reduce ClearCodec memory usage 2014-07-08 11:37:27 -04:00
Marc-André Moreau
d6a37d641e libfreerdp-codec: fix C++ headers 2014-07-07 22:24:17 -04:00
Marc-André Moreau
7489675ab9 libfreerdp-codec: fix ClearCodec RLEX decoding 2014-07-07 14:16:05 -04:00
Marc-André Moreau
0ed7d3e6be libfreerdp-codec: fix some ClearCodec flag checking 2014-07-05 16:29:28 -04:00
Marc-André Moreau
bde954107d Merge branch 'egfx' of github.com:vworkspace/FreeRDP into egfx
Conflicts:
	client/X11/xf_gfx.c
2014-07-03 12:03:39 -04:00
Marc-André Moreau
4b80c46ae4 libfreerdp-codec: improve ClearCodec robustness 2014-07-02 14:51:46 -04:00
Marc-André Moreau
e20cfc1e2c libfreerdp-codec: simplify ClearCodec code 2014-07-02 13:45:19 -04:00
Mike McDonald
4d3d78c487 Initial implementation of H.264 decoder for MS-RDPEGFX 2014-07-01 23:28:09 -04:00
Marc-André Moreau
4a4f4308b5 libfreerdp-codec: improve ClearCodec error checking 2014-07-01 16:32:36 -04:00
Marc-André Moreau
f304d8cc20 libfreerdp-codec: more ClearCodec vBar caching 2014-07-01 14:38:54 -04:00
Marc-André Moreau
8a5591bdef libfreerdp-codec: add ClearCodec glyph cache 2014-07-01 09:55:52 -04:00
Marc-André Moreau
de7d452d37 libfreerdp-codec: fix ClearCodec unit tests 2014-07-01 09:10:32 -04:00
Marc-André Moreau
49cd7806d9 libfreerdp-codec: improve ClearCodec decompressor 2014-06-26 17:08:51 -04:00
Marc-André Moreau
dd36617093 libfreerdp-codec: improve clear_decompress function parameters 2014-06-25 18:39:28 -04:00
Marc-André Moreau
ea3822c357 libfreerdp-codec: cleanup planar decoder 2014-06-18 17:46:22 -04:00
Marc-André Moreau
425763d30a libfreerdp-codec: start offering more flexible planar codec decompression 2014-06-17 16:44:24 -04:00
Marc-André Moreau
d69316198f xfreerdp: add egfx support for planar codec 2014-06-17 16:15:30 -04:00
Marc-André Moreau
61eb7f2f8e libfreerdp-codec: fix ClearCodec decoding 2014-06-13 17:30:13 -04:00
Marc-André Moreau
0e27f5abe4 libfreerdp-codec: start working on clearcodec decompressor 2014-06-13 12:17:16 -04:00
Marc-André Moreau
eeb7cd2cb2 xfreerdp: initial egfx bitmap caching 2014-06-13 08:36:09 -04:00
Marc-André Moreau
ae02b5b512 xfreerdp: start handling egfx surface-to-surface 2014-06-12 16:13:12 -04:00
Marc-André Moreau
b4ba2c7a38 libfreerdp-codec: optimize zgfx bitstream 2014-06-05 15:41:42 -04:00
Marc-André Moreau
161e7b0026 libfreerdp-codec: simplify zgfx segment processing 2014-06-05 14:52:27 -04:00
Marc-André Moreau
d6e955e6f1 channels/rdpgfx: stub bitmap decompression 2014-06-03 20:51:28 -04:00
Marc-André Moreau
a50e4d16fc libfreerdp-codec: integrate basic RDP8 decompression support 2014-06-03 14:29:55 -04:00
Marc-André Moreau
abd833c27e libfreerdp-codec: stub new ZGFX (RDP8) bulk compressor/decompressor 2014-06-03 13:38:10 -04:00
Marc-André Moreau
18cac3d4dd libfreerdp-codec: cleanup context state flushing 2014-05-26 12:43:30 -04:00
Marc-André Moreau
8c7fbe3394 libfreerdp-codec: fix xcrush level-1 compressor 2014-05-25 21:39:25 -04:00
Marc-André Moreau
d2d8c482fc libfreerdp-codec: cleanup and fix XCrush context flush synchronization 2014-05-25 21:21:51 -04:00
Marc-André Moreau
8d8e0c24fe libfreerdp-codec: improve xcrush compressor error checking 2014-05-23 17:38:10 -04:00
Marc-André Moreau
55e096a82f libfreerdp-codec: add xcrush match optimization and output generation 2014-05-23 13:59:34 -04:00
Marc-André Moreau
ee935a3760 libfreerdp-codec: add match info functions 2014-05-22 17:38:01 -04:00
Marc-André Moreau
0363196923 libfreerdp-core: add xcrush signature db 2014-05-22 00:18:56 -04:00
Marc-André Moreau
fd23b2f041 libfreerdp-codec: add xcrush rolling hash chunker 2014-05-21 22:55:45 -04:00
Marc-André Moreau
1c081c965f Merge branch 'xcrush' of github.com:awakecoding/FreeRDP 2014-05-08 16:11:55 -04:00
Marc-André Moreau
88bee1fa6d libfreerdp-codec: start working on xcrush compressor 2014-05-05 20:47:30 -04:00
Marc-André Moreau
9162fcc7d8 libfreerdp-codec: start working on XCrush decompressor 2014-05-04 21:50:17 -04:00
Marc-André Moreau
77790874c8 libfreerdp-codec: stub XCrush data compression 2014-05-04 19:46:40 -04:00
Hardening
9848314a5d More fixes in DSP 2014-04-29 10:32:16 +02:00
Marc-André Moreau
ab7958ffb2 libfreerdp-codec: fix NCrush compressor 2014-04-20 23:19:09 -04:00
Marc-André Moreau
bb656a6e7e Merge branch 'master' of github.com:awakecoding/FreeRDP into ncrush
Conflicts:
	libfreerdp/core/bulk.c
2014-04-20 21:59:10 -04:00
Marc-André Moreau
d08b6fe4bd libfreerdp-codec: fix handling of PACKET_AT_FRONT, PACKET_FLUSHED in MPPC compression 2014-04-20 21:28:09 -04:00
Marc-André Moreau
acf119f9f3 libfreerdp-codec: improve ncrush compressor 2014-04-01 12:18:13 -04:00
Marc-André Moreau
add42dfdb9 libfreerdp-codec: ncrush compressor update 2014-03-30 23:12:07 -04:00
Marc-André Moreau
ed89354da8 libfreerdp-codec: start work on NCrush compressor 2014-03-29 17:55:17 -04:00
Marc-André Moreau
83ddb7b82c libfreerdp-codec: fix unit test compilation 2014-03-29 12:37:16 -04:00
Marc-André Moreau
5951a9178c libfreerdp-codec: remove old NCrush decompressor 2014-03-16 21:16:53 -04:00
Marc-André Moreau
698cae2052 libfreerdp-codec: start hooking new NCrush decompressor 2014-03-16 20:54:07 -04:00
Marc-André Moreau
882f3098b3 libfreerdp-codec: add more NCrush tables, decode literals and CopyOffsets 2014-03-16 15:51:35 -04:00
Marc-André Moreau
2570e064ce libfreerdp-codec: add NCrush unit tests and tables 2014-03-15 22:18:22 -04:00
Marc-André Moreau
47ed6002f6 libfreerdp-codec: stub ncrush bulk compression 2014-03-15 14:03:05 -04:00
Marc-André Moreau
85049299e0 libfreerdp-core: improve MPPC compress/decompress function definitions 2014-03-11 21:42:27 -04:00
Marc-André Moreau
98f98c95e9 libfreerdp-codec: remove old MPPC decompressor, fix RDP4 MPPC 2014-03-10 16:19:47 -04:00
Marc-André Moreau
f31676e4e4 libfreerdp-codec: make MPPC compressor produce output identical to Microsoft implementation 2014-03-10 15:06:23 -04:00
Marc-André Moreau
61ecd0ff31 libfreerdp-core: add bulk.c to handle bulk compression in a centralized place 2014-03-10 11:41:10 -04:00
Marc-André Moreau
4310089102 libfreerdp-core: add options for specifying compression level 2014-03-10 11:16:36 -04:00
Marc-André Moreau
ad7ed25d30 libfreerdp-codec: reduce amount of MPPC context variables 2014-03-09 20:45:42 -04:00
Marc-André Moreau
6c89e3cff7 libfreerdp-codec: initial MPPC decompression support 2014-03-09 19:55:52 -04:00
Marc-André Moreau
d9a2fb4ff9 libfreerdp-codec: start MPPC compressor 2014-03-08 17:38:47 -05:00
Marc-André Moreau
95127d5632 libfreerdp-codec: start testing MPPC against large buffer 2014-03-05 18:03:39 -05:00
Marc-André Moreau
cea902deb8 libfreerdp-codec: produce correct LOM/CO sequences 2014-03-05 15:29:04 -05:00
Marc-André Moreau
35a289e14a libfreerdp-codec: start new MPPC compressor 2014-03-03 16:15:29 -05:00
Marc-André Moreau
c697941de2 libfreerdp-codec: add new freerdp_image_copy function with detailed parameters 2014-02-28 21:51:29 -05:00
Marc-André Moreau
aca0b9996d Merge branch 'remoteFx_fix2' of https://github.com/hardening/FreeRDP into hardening-remoteFx_fix2
Conflicts:
	libfreerdp/codec/test/CMakeLists.txt
2014-02-15 11:06:09 -05:00
Hardening
0915060f40 Fixes before pullreq
Replaced zmalloc by calloc.
Moved region from utils to codec.
Fixed some typo and corner cases.
2014-02-05 16:24:46 +01:00
Marc-André Moreau
3bd5fda4a8 libfreerdp-codec: port MPPC unit tests 2014-02-05 08:37:13 -05:00
Marc-André Moreau
1add4e628f libfreerdp-codec: make planar codec encoder context reusable 2013-12-08 17:06:59 -05:00
Marc-André Moreau
d30656d441 libfreerdp-codec: start implementing uncompressed RDP6 planar codec 2013-11-25 22:26:08 -05:00
Marc-André Moreau
ee36541fb7 freerdp: merge with master 2013-09-03 18:49:48 -04:00
Vic Lee
86e783e4fb libfreerdp-codec/rfx: fix memory corruptions. 2013-09-03 20:27:08 +08:00
Marc-André Moreau
f69f4285b1 libfreerdp-codec: use partitioned buffers for RemoteFX encoding/decoding 2013-08-19 18:39:19 -04:00
Marc-André Moreau
d7656ada48 libfreerdp-codec: fix NSCodec encoding and buffer pool usage 2013-08-19 18:21:34 -04:00
Marc-André Moreau
0fd705c6c7 channels/cliprdr: start server-side implementation 2013-08-16 16:46:47 -04:00
Marc-André Moreau
9f25c4fc25 libfreerdp-codec: initial working fragmented NSCodec encoder 2013-08-15 13:13:02 -04:00
Marc-André Moreau
1e5118116d libfreerdp-codec: start implementing split NSCodec encoder 2013-08-14 23:16:13 -04:00
Marc-André Moreau
2d3d5acf1e libfreerdp-codec: initial support for RemoteFX fragmented encoding 2013-08-14 13:19:01 -04:00
Marc-André Moreau
5e6325d62c libfreerdp-codec: start exporting split encode/write rfx api 2013-08-14 10:14:47 -04:00
Marc-André Moreau
dfbd4cb9fb libfreerdp-codec: refactor encoder to use message-centric interface 2013-08-13 17:50:05 -04:00
Marc-André Moreau
fe25303656 libfreerdp-codec: internal refactoring 2013-08-13 17:18:59 -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
Marc-André Moreau
ba69071d04 Merge branch 'master' of github.com:FreeRDP/FreeRDP 2013-07-15 17:14:40 -04: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
0ee7ca5741 libfreerdp-codec: add bitmap encoder 2013-07-04 16:31:54 -04:00
Marc-André Moreau
8c8a82c31f libfreerdp-utils: purge old STREAM utils 2013-03-21 16:45:25 -04:00
Marc-André Moreau
a8201b0d1b libwinpr-utils: combine old and new stream utils 2013-03-21 15:19:33 -04:00
Marc-André Moreau
96fa4f462f libfreerdp-codec: move audio format processing code to codec library 2013-03-07 14:43:21 -05:00
Martin Fleisz
8c2d60f62c codec: got rid of nsc_context_set_cpu_opt 2013-03-05 10:52:18 +01:00
Bernhard Miklautz
23a7ef6c47 codec/rfx: use sysinfo to detect sse2/neon
This also moves (sse2) detection code out of the client into the decoder.
2013-03-01 09:02:14 +01:00
Marc-André Moreau
22c804e6ad channels/rdpsnd: refactoring 2013-02-19 17:47:55 -05:00
Daryl Poe
b64408975d freerdp primitives library 2013-01-18 15:32:58 -07:00
Marc-André Moreau
709e66a596 libfreerdp: header cleanup 2012-12-14 00:25:48 -05:00
Marc-André Moreau
d251538252 libwinpr: fix build on linux 2012-10-18 22:05:06 -04:00
Jay Sorg
e4307a547a win32: added cursor shape support(mono) 2012-10-16 11:06:23 -07:00
Marc-André Moreau
9d064171a7 freerdp: get rid of old types 2012-10-09 03:26:39 -04:00
Marc-André Moreau
1bf8a45519 freerdp: change uint8, sint8, uint16, sint16 to BYTE, INT8, UINT16, INT16 2012-10-09 03:01:37 -04:00
Marc-André Moreau
1ed644786c freerdp: change boolean type to BOOL type 2012-10-09 02:38:39 -04:00
Marc-André Moreau
e60a092d81 freerdp: fix headers 2012-10-08 23:02:04 -04:00
Marc-André Moreau
6dcc8e73ee libfreerdp-utils: get rid of rdpBlob 2012-09-24 04:40:32 -04:00
Jim Grandy
cc2fdd6da2 Pushing jpeg codec support, used in xrdp's offscreen surface remoting technique. Will likely be superceded by use of jpeg2000. 2012-06-26 16:57:18 -07:00
Mads Kiilerich
5ada0a43ec codec: export mppc functions so it can be build on windows 2012-03-30 23:28:07 +02:00
Jay Sorg
6aa7eaf627 mppc: moved to libfreerdp-codec 2012-03-29 20:57:26 -07:00
Vic Lee
15baa1bbb4 nsc: implement nsc encoder. 2012-03-18 16:34:39 +08:00
Vic Lee
774cb53e61 nsc: add encoder API. 2012-03-16 12:04:38 +08:00
Vic Lee
32d7afc7b7 nsc: add pixel format API. 2012-03-15 16:55:29 +08:00
Vic Lee
b74d324592 rfx: rename pixel format constants. 2012-03-13 19:02:19 +08:00
Vic Lee
20de74d811 nsc: refactor nsc decoder #4
o move private struct to nsc_types.h
o move nsc_decode() function in nsc_context as pointer
2012-03-06 22:41:16 +08:00
Vic Lee
d2153e9ef2 nsc: refactor nsc decoder #3
o combine colorloss recovery, chroma supersampling and color space conversion
  in one step
o define private struct and hide the internal buffer
o make internal buffer reusable in the same session
2012-03-06 18:52:28 +08:00
Vic Lee
0c0dd5df10 nsc: refactor nsc decoder #2
o Change nsc_stream member to be static
o Rename some variables
o Planes member (originally pdata) does not need to be STREAM
2012-03-05 18:34:29 +08:00
Vic Lee
3fa2c4830e nsc: refactor nsc decoder #1
o the decoded argb buffer can be reused to enhance performance
o pass width, height and bpp through nsc_process_message() call
o rename nsc_context_destroy to nsc_context_free and make it actually free the context
2012-03-05 17:32:14 +08:00
Marc-André Moreau
b4e542ba46 libfreerdp-core: fix multiple memory leaks detected by valgrind 2012-02-01 18:42:20 -05:00
Marc-André Moreau
c7cc745575 libfreerdp-codec: add freerdp_convert_color_var() 2012-01-09 18:45:36 -05:00
Marc-André Moreau
2d34a62ce8 libfreerdp-codec: fix color conversion issues for OpaqueRect with --gdi sw,hw 2011-12-30 10:00:03 -05:00
David Sundstrom
622375cef2 Detect when sever visual has an inverted color map and invert all color conversions.
Remote spurious printf() in code
2011-12-21 17:00:09 -06:00
Philippe Auphelle
711f4b2202 Refactored bitmap_flip in bitmap.c to use freerdp_bitmap_flip in color.c. Added in place "bitmap flip" in freerdp_bitmap_flip, changed bitmap_decompress (in bitmap.c) to use it. 2011-12-12 14:41:31 +01:00
Vic Lee
19f818a089 rfx: add rfx_context_set_cpu_opt() APi to replace passing rdpSettings. 2011-10-29 22:01:50 +08:00
Anthony Tong
ce59c2226f cmake/sse2: initial sse2 detect 2011-10-25 00:32:06 -05:00
Marc-André Moreau
9165505e0d xfreerdp: improved 8bpp support 2011-10-21 12:17:04 -04:00
Marc-André Moreau
f6cd71026e xfreerdp: started bitmap caching support 2011-10-04 21:29:01 -04:00
Marc-André Moreau
a758908c63 wfreerdp: start GDI implementation 2011-10-04 16:05:09 -04:00
Marc-André Moreau
f43c9c462f libfreerdp-codec: NSCodec code style cleanup 2011-10-02 21:07:07 -04:00