Commit Graph

70 Commits

Author SHA1 Message Date
Jay Sorg
06e7db4e6b codec: minor change 2012-07-26 11:15:41 -07:00
xangis
76166628f4 Windows build complains about missing jpeg_decompress. Used WITH_JPEG
ifdef to make it happier.
2012-07-25 14:50:04 -07:00
Jay Sorg
c3e9966429 added cmake option to compile jpeg, off by default 2012-07-24 18:26:24 -07: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
Anthony Tong
a1551d0dc9 cmake: fix x86 & -DWITH_SSE2=ON build
issue #536
2012-04-22 08:45:28 -05:00
Bernhard Miklautz
1d32894775 Changed some functions from inline to static inline
This fixes inline build issues with clang.
http://clang.llvm.org/compatibility.html#inline
2012-04-04 15:23:16 +02:00
Jay Sorg
6aa7eaf627 mppc: moved to libfreerdp-codec 2012-03-29 20:57:26 -07:00
Marc-André Moreau
02cc7665fe wfreerdp: fix compilation warnings 2012-03-23 18:26:03 -04:00
Vic Lee
66d3799f5e nsc: add SSE2 optimization for nsc encoder. 2012-03-18 23:25:07 +08: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
4ecb7546f8 nsc: use memcpy instead of loop. 2012-03-07 11:42:37 +08:00
Vic Lee
7d8a2bfaef nsc: allocate extra 16 bytes for output buffer in case of alignment. 2012-03-07 11:31:10 +08:00
Vic Lee
28b203e57f nsc: add profiler. 2012-03-06 22:42:57 +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
Michael Osborne
d588e30a38 correct colors for 16-bit displays 2012-03-02 16:49:52 -06:00
Philippe Auphelle
bfe6743629 Restore not-in-place bitmap flip (saves one memcpy() per flipped scanline) 2012-02-28 17:08:14 +01:00
Philippe Auphelle
6040f10ca9 Merge remote-tracking branch 'upstream/master' 2012-02-07 15:03:48 +01:00
Marc-André Moreau
66cd849229 xfreerdp-server: improve XShm encoding 2012-02-04 18:18:46 -05:00
Philippe Auphelle
68afff5faa Merge remote-tracking branch 'upstream/master' 2012-02-03 14:44:10 +01:00
Marc-André Moreau
b4e542ba46 libfreerdp-core: fix multiple memory leaks detected by valgrind 2012-02-01 18:42:20 -05:00
Philippe Auphelle
7267eafe0f Merge remote-tracking branch 'upstream/master' 2012-01-26 10:57:18 +01:00
Philippe Auphelle
37eb0717fa Merge remote-tracking branch 'upstream/master' 2012-01-25 13:55:55 +01:00
cool
d344a7e456 nscodec final color bug fix 2012-01-24 21:06:48 -11:00
Bernhard Miklautz
e9f1de751b build: Added option WITH_NEON
Enables neon optimized rfx decoder
2012-01-24 09:04:02 +01:00
Philippe Auphelle
50b0b74bc4 Merge remote-tracking branch 'upstream/master' 2012-01-17 13:01:38 +01:00
Marc-André Moreau
949bce4d54 wfreerdp: fix warnings and color conversion 2012-01-16 11:40:18 -05:00
Philippe Auphelle
7671f4a15b Merge remote-tracking branch 'upstream/master' 2012-01-11 16:45:51 +01:00
Marc-André Moreau
c7cc745575 libfreerdp-codec: add freerdp_convert_color_var() 2012-01-09 18:45:36 -05:00
louyihua
7b30f732f2 libfreerdp-codec: RDVH may return more than one channels in TS_RFX_CHANNELS message. 2012-01-10 05:18:31 +08:00
Marc-André Moreau
26cd7bc476 libfreerdp-core: add support for raw planes in RDP6 bitmap decompression 2012-01-04 19:55:31 -05:00
Philippe Auphelle
9007a3aacf Merge remote-tracking branch 'upstream/master' 2012-01-04 17:44:44 +01:00
Marc-André Moreau
9dff0cd7f5 libfreerdp-core: clarification of bitmap decompression 2012-01-03 18:22:42 -05:00
cool
8908aab34b fix complete 2012-01-01 16:07:58 -11:00
cool
ca79a7dcb2 fixed color bug 2012-01-01 16:03:27 -11:00
Marc-André Moreau
e95dcc4c5e libfreerdp-core: fix decompression of color brushes 2011-12-30 14:23:47 -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
Norbert Federa
d3a801db6c codec: RemoteFX YCbCr/RGB conversion optimization
Replaced the non-accelerated rgb to ycbcr encoder (rfx_encode.c) to use 32-bit
integer multiplication with shifted factors: 2 times faster

The accelerated SSE2 rgb to ycbcr encoder (rfx_sse2.c) was completely changed
and simplified in order to make use of the SSE2 signed 16-bit integer
multiplication: 2 times faster

Also modified the non-accelerated ycbcr to rgb decoder (rfx_encode.c) to use
32-bit integer multiplications with shifted factors instead of floating point
multiplications: 3 times faster
2011-12-29 18:01:20 +01:00
Norbert Federa
04518f0b42 codec: fixed and accelerated RemoteFX ycbcr-to-rgb decoder
The current ycbcr decoder was loosing some bits because cr/cb was multiplied by
the shifted factors.
Instead one should multiply by the non-shifted factors and shift the result.
The effects of these lost bits are easily seen by comparing the colors of a
RemoteFX session with the colors of a plain RDP session - they are just wrong ;)

I've replaced the bit-magic from the non non-accelerated version (rfx_decode.c)
and replaced it with simple float multiplications using the compiler's implicit
integer conversions. On several test machines this was even a little bit faster.

The accelerated SSE2 ycbcr decoder (rfx_sse2.c) was completely changed in order
to make use of the SSE2 signed 16-bit integer multiplication.
Fortunately the factors in the conversion matrix are so small that we can
easily shift them to the maximum possible 16-bit signed integer value without
loosing any information and use _mm_mulhi_epi16 which takes the upper 16 bits
of the 32-bit result.

The SSE2 ycbcr decoder is now much simpler and about 40 percent faster.
2011-12-27 16:18:02 +01: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
louyihua
32ff6a0b69 wfreerdp: enable SSE2 acceleration for RemoteFX under Visual C++ 2011-12-21 08:32:04 +08:00
Philippe Auphelle
91cb869359 Merge remote-tracking branch 'upstream/master' 2011-12-13 11:07:50 +01:00
Marc-André Moreau
243090323d libfreerdp-core: fix offscreen cache capabilities, add --composition option 2011-12-12 19:20:52 -05:00
Philippe Auphelle
fd7eca49a9 Fix spelling mistake in a comment. 2011-12-12 15:49:44 +01: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