Commit Graph

3224 Commits

Author SHA1 Message Date
Armin Novak
aff9a22367 Fixed obsolete TAG definitions and use. 2018-02-07 13:26:39 +01:00
Armin Novak
77d0c77ed9 Fix OpenH264 trace logging, set up context first 2018-02-07 13:26:39 +01:00
Armin Novak
7adc384d9a Using dynamic logger for GFX-H264 backend. 2018-02-07 13:26:39 +01:00
Norbert Federa
1a377ba978
Merge pull request #4392 from akallabeth/yuv_asm
Fixed AVC444v1 luma UV averaging
2018-02-07 13:00:00 +01:00
Bernhard Miklautz
db8519fd8a
Merge pull request #4397 from SriRamanujam/vaapi
Use libavcodec's VA-API to accelerate H.264 decoding.
2018-02-07 12:56:31 +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
Sri Ramanujam
26eee4aecf TO BE SQUASHED: use hw_frames_ctx to set up vaapi on older versions of libavcodec 2018-02-02 15:49:59 -05:00
Sri Ramanujam
edf9c52c6b TO BE SQUASHED: initial changes from code review 2018-02-02 14:30:31 -05:00
Armin Novak
bc33fa8b1b Tuned FFMPEG encoder settings.
Using preset medium with zerolatency.
2018-02-02 13:59:08 +01:00
Armin Novak
9f57e07a23 Align YUV buffer strides and height. 2018-02-02 10:39:33 +01:00
Armin Novak
3b70d1178b Added AVC444 chroma support to shadow server. 2018-02-02 10:39:33 +01:00
Sri Ramanujam
bedc1ac4c6 Use libavcodec's VA-API decoding.
Leverages libavcodec's hw decode support to provide VA-API based
hardware decoding. Depends on the local build of ffmpeg having hardware
VA-API support compiled in and the appropriate libva drivers and
libraries installed.
2018-02-02 02:31:23 -05:00
Norbert Federa
46f03d5e78 disabled expensive debug call in channel send 2018-01-31 12:44:45 +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
Armin Novak
e1c00b878d Fixes argument size type, function static where appropriate. 2018-01-19 09:15:26 +01:00
Armin Novak
29f2d2d9bb Fixed missing packageName setup in server NLA 2018-01-17 09:09:58 +01:00
Armin Novak
0e1a073384 Simplified package name comparisons. 2018-01-17 08:18:45 +01:00
Armin Novak
dc3d536398 Changed length arguments and return to size_t 2018-01-17 08:14:06 +01:00
Armin Novak
59e8b67287 Fixed broken #ifdef 2018-01-15 10:18:03 +01:00
akallabeth
3b719ae7d4
Merge pull request #4359 from MartinHaimberger/yuvfix
YUV conversation: fixed luma frame creation
2018-01-15 10:13:26 +01:00
Armin Novak
97cc55deec Fixed bitmap capability debug. 2018-01-12 09:22:08 +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
MartinHaimberger
b6a1af0ba1
Merge pull request #4349 from akallabeth/primitives_update
Added new and optimized YUV primitives.
2018-01-10 15:33:13 +01: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
David Fort
ab94f6a5fd
Merge pull request #4339 from akallabeth/gdi_sw_crash_fix
Fixed #4336: Initialize rectangle.
2018-01-10 09:57:54 +01:00
Armin Novak
5140ee09b3 Reduced log priority in gdi_CRgnToRect 2018-01-08 13:03:06 +01:00
David Fort
e1cc601963
Merge pull request #4323 from akallabeth/scanbuild_fixes
Scanbuild and other warnings fixed
2018-01-08 11:16:21 +01:00
akallabeth
900ec855de
Merge pull request #4334 from h3xx/fix-ffmpeg-support
Fix building against current ffmpeg
2018-01-08 09:21:53 +01:00
akallabeth
4077d55a6c
Merge pull request #4332 from hardening/xrandr_and_fixes
Xrandr and fixes
2018-01-08 09:20:56 +01:00
Armin Novak
bcf3babcaa Fixed #4336: Initialize rectangle. 2018-01-08 09:01:22 +01:00
Mike Gilbert
51cdd8df19 codec/nsc_sse2: add runtime CPU feature check 2017-12-29 14:06:49 -05:00
Mike Gilbert
082aac83a0 cmake: do not add -msse2/-msse3 globally 2017-12-29 14:06:49 -05:00
Mike Gilbert
9bfe2fcfb9 cmake: rework logic to apply -msse2, -msse3, -mssse3 to specific files
If we apply -mssse3 to files that don't need it, gcc may automagically
generate instructions that will not run on certain CPUs. This breaks the
runtime feature detection code (IsProcessorFeaturePresent).

Fixes: https://github.com/FreeRDP/FreeRDP/issues/4308
2017-12-29 14:06:49 -05:00
Dan Church
ed571e74a5
Provide support for older versions of libavcodec
My method was to find the LIBAVUTIL_VERSION_* at the commit where the
updated AV_ prefixed constants became available, add one "micro" version
to it, then if it's not at least that version, provide the unprefixed
constant. It just so happens that the same commit introduced all
the AV_* constants.
2017-12-29 11:13:03 -06:00
Dan Church
78df32c77f
Fix future ffmpeg support
The AV_ prefixed constants have been available since
ffmpeg@def97856de6021965db86c25a732d78689bd6bb0 (2015-07-07), or version
2.8.

The non-prefixed constants are set to be removed in the next ffmpeg
release, and were removed in
ffmpeg@302554835e39b79b977ed60c9afe81b44590dfef (2016-12-05).
2017-12-28 09:41:45 -06:00
David Fort
191b8f950f Fix for #4330
Since ec027bf dynamic resolution is broken when used with egfx. Before that commit
we were tracking a server sent resize by setting a DesktopResize callback. This callback
is called when the desktop is resized by the server. Anyway the problem was that when this
callback is called, the activation sequence is not always completed, which were leading to
some freeze with 2012r2 servers (sending packets before the sequence is finished).
So with the faulty commit, we are tracking server resizes by subscribing to the Actived
event, that is called at the end of a reactivation sequence, so we're sure to not send packets
when not fully activated.
Anyway the issue that shows on (#4330) is that when you use egfx, no reactivation sequence happens,
the server only sends a ResetGraphics message with the new size, and so we miss the resized event.
This fix introduces a new GraphicsReset event, makes the display channel subscribe to that event,
and react accordingly.
2017-12-23 13:50:54 +01:00
David Fort
5e2d6ea029 zgfx: add a check 2017-12-22 17:55:48 +01:00
Armin Novak
cf899eb5ba Fix #4299: gdi_CRgnToRect
The coordinates from RDP ROP commands do not (always) have
0,0 as the origin of the drawing operation.
Adjust the coordinates to our local coordinate system.
2017-12-22 13:43:37 +01:00
Armin Novak
c60c355a9d Added ROP to primary order debug message. 2017-12-22 10:37:04 +01:00
Armin Novak
b293b17ac9 Added ROP to string functions for log messages. 2017-12-22 10:25:05 +01:00
Armin Novak
1d01582a87 Fixed dead store warnings. 2017-12-21 11:47:16 +01:00
Armin Novak
50a0968c6a Removed unused variables. 2017-12-21 11:29:24 +01:00
Armin Novak
9c93c6cbf3 Fixed unused variable warnings. 2017-12-21 11:04:50 +01:00