Commit Graph

909 Commits

Author SHA1 Message Date
Armin Novak
17c363a516 Fixed CVE-2018-8784
Thanks to Eyal Itkin from Check Point Software Technologies.
2018-11-20 11:08:31 +01:00
Armin Novak
d1112c279b Fixed CVE-2018-8788
Thanks to Eyal Itkin from Check Point Software Technologies.
2018-11-20 11:08:31 +01:00
Armin Novak
602f4a2e14 Fixed CVE-2018-8785
Thanks to Eyal Itkin from Check Point Software Technologies.
2018-11-20 11:08:31 +01:00
Armin Novak
d2e1248b09 Fixed profiler API
* Duplicate the name internally to avoid issues with stack
* Made API opaque and removed direct dereferencing of struct.
2018-11-16 09:32:15 +01:00
Bernhard Miklautz
010e3485cb
Merge pull request #4989 from akallabeth/dsp_encode_resample
Added resampling to freerdp_dsp_encode.
2018-11-15 15:54:56 +00:00
Bernhard Miklautz
d6dea852b3
Merge pull request #4976 from hardening/rfx_flush
remotefx: fix rlgr last bits of encoder
2018-11-15 15:25:25 +00:00
Armin Novak
9766161f10 Added missing define guards. 2018-11-14 13:27:20 +01:00
Armin Novak
5b363e72aa Allow building without libsoxr support. 2018-11-14 13:27:20 +01:00
Armin Novak
6af56458ad Marked custom ADPCM codecs experimental. 2018-11-14 13:27:20 +01:00
Armin Novak
b362b61a1a Added libsoxr based resampling. 2018-11-14 13:27:20 +01:00
Armin Novak
ab15e34032 Refactored freerdp_dsp_resample, checks now done internally. 2018-11-14 13:27:20 +01:00
Armin Novak
60025dde8e Fixed unused function warnings when FFMPEG backend is used. 2018-11-14 13:27:20 +01:00
Armin Novak
e8e4800c5e Added resampling to freerdp_dsp_encode. 2018-11-14 13:27:20 +01:00
Bernhard Miklautz
c5c1bac31a
Merge pull request #4960 from akallabeth/interleaved_fix
Fixed #4954: Check destination buffer bounds.
2018-11-09 12:25:55 +00:00
Armin Novak
fff2454ae6 Make VS2010 happy, reworked UNROLL defines. 2018-11-09 12:18:51 +01:00
Armin Novak
6e61dd9d9f Unroll bBits loops as well. 2018-11-09 12:12:19 +01:00
Armin Novak
7e932bbfa2 Readded loop unrolling. 2018-11-09 11:32:28 +01:00
Armin Novak
cf8bc72dc4 Fixed profiler naming in tests. 2018-11-08 17:43:50 +01:00
Armin Novak
9e2c203771 Fixed various issues with freerdp_bitmap_compress and interleaved_compress 2018-11-08 17:21:28 +01:00
Armin Novak
c0c1d064be Added a unit test for interleaved codec compression. 2018-11-08 17:20:31 +01:00
Armin Novak
a544776bd8 Simplified code, moved bounds check out of loops. 2018-11-07 13:10:23 +01:00
Armin Novak
10d3ee131e Fixed #4954: Check destination buffer bounds. 2018-11-07 12:18:08 +01:00
Bernhard Miklautz
37f8181735 fix [libfreerdp/codec]: heap buffer overflow in TestFreeRDPCodecClear
The examples and the allocated buffers assume that the destination
starts with x 0 and y 0 and not 1/1.
2018-11-05 15:43:12 +01:00
David Fort
af195864e5 remotefx: fix rlgr last bits of encoder
The last bits of the bitstream were not flushed in the output, this patch fixes it.
2018-10-31 10:42:04 +01:00
Norbert Federa
0572572eb9 fix issue with fnObjectFree and related casts
- remove unnecessary/dangerous OBJECT_xxx function-style casts
- fix -Wstrict-prototypes issue with OBJECT_NEW_FN definition
2018-10-19 11:30:01 +02:00
Martin Fleisz
e46d1d95ff
Merge pull request #4926 from akallabeth/primary_order_checks
Order data validation and correction
2018-10-17 16:02:28 +02:00
Armin Novak
bbcba568f4 Added parameter checks. 2018-10-16 17:23:24 +02:00
Armin Novak
d2e08c0aa8 Fixed missing argument check. 2018-10-16 17:14:56 +02:00
Armin Novak
91107beb67 Separate alpha handling for planar codec
If the destination does not support an alpha channel ignore it
when decoding and prevent data to be copied unnecessarily
2018-10-16 12:17:25 +02:00
Armin Novak
a29bc16af4 Siplified planar alpha / non alpha paths 2018-10-16 10:05:33 +02:00
Martin Fleisz
00af869cd3
Merge pull request #4889 from akallabeth/shadow_server_audin_refactor
Shadow server audin refactor
2018-10-08 12:56:09 +02:00
akallabeth
9cc4f844c4
Merge pull request #4912 from akallabeth/swresample
Swresample support with avresample fallback
2018-10-05 11:00:13 +02:00
Armin Novak
fbe95209e7 Readded AVRESAMPLE support as fallback. 2018-10-04 09:16:34 +02:00
Vladimir Lomov
41cc2b63cb Move from libavresample to libswresample
- The libavresample as part of FFmpeg was declared as deprecated in
    favor of libswresample on Dec 25 2017 in commit "lavr: deprecate the
    entire library"
    (c29038f304
    ;
    c29038f304).
    As major Linux distributions (RPM, DEB and Archlinux) provide now
    FFmpeg and libswresample as its part use the libswresample instead of
    libavresample.

Signed-off-by: Vladimir Lomov <vladimir@smoon7.vl-lomov.ru>
2018-10-04 08:35:04 +02:00
Armin Novak
a8a6accc15 Fixed compiler warnings. 2018-10-03 15:16:59 +02:00
Armin Novak
106dde9571 Working mic redirection for shadow server. 2018-09-26 12:49:09 +02:00
Armin Novak
28efbbc01f Refactored audio_format* functions. 2018-09-26 12:49:09 +02:00
Armin Novak
7e8d128fc6 Fixed clear codec reset and test cases. 2018-09-19 14:18:29 +02:00
Armin Novak
712a39898c Fixed buffer size for clear_decompress test. 2018-09-19 14:18:29 +02:00
Armin Novak
13e59b5d6a Fix #4868: Allow empty bands data. 2018-09-19 14:18:29 +02:00
Armin Novak
4c491b5a18 Fixed #4857: Properly reset clear codec. 2018-09-18 09:59:49 +02:00
Armin Novak
6d3beabd54 Removed unused variables in tests. 2018-08-24 13:40:36 +02:00
Armin Novak
8d473af4fb Fixed missing type cast. 2018-08-24 13:40:36 +02:00
Armin Novak
bff49a9bd0 Fixed invalid argument warnings. 2018-08-24 13:40:36 +02:00
Ondrej Holy
79d0725a80 codec/planar: Fix leak found by covscan
The patch changes API of functions instead of fixing unused and broken code.

leaked_storage: Returning without freeing "outPlane" leaks the storage that it points to.
2018-08-22 14:34:02 +02:00
Ondrej Holy
36960e97a4 codec/nsc: Fix leak found by covscan
leaked_storage: Variable "s" going out of scope leaks the storage it points to.
2018-08-22 13:35:43 +02:00
Armin Novak
2a3a66b18b Fixed expression ambiguity 2018-08-01 12:56:18 +02:00
Armin Novak
3b187ef321 Code Cleanup 2018-07-19 16:21:03 +02:00
Armin Novak
a984dd7f56 Updated experimental list. 2018-07-19 15:38:44 +02:00
Armin Novak
d40daedb9c Fixed FFMPEG backend: Do not drop samples for package alignment. 2018-07-19 15:17:54 +02:00
Armin Novak
c192c17c8c Fixed mixed declaration. 2018-07-19 12:20:14 +02:00
Armin Novak
00b073adda Fixed DVI_ADPCM mapping. 2018-07-18 12:33:39 +02:00
Armin Novak
6029a411e2 Fixed ima_adpcm encoder bug. 2018-07-17 12:57:57 +02:00
Armin Novak
7260a4fd8f Fixed override of stream data in dsp_encode methods. 2018-07-17 10:30:35 +02:00
Armin Novak
2d69e369ba Fixed #4693: Fix integer underflow in encoder loop. 2018-06-04 10:14:29 +02:00
Armin Novak
ae765430e9 Fixed #4647: nsc_context_free must not access possibly uninitialized fields. 2018-05-15 13:41:45 +02:00
David Fort
456b0e8934
Merge pull request #4453 from akallabeth/sound_channel_refactor
Sound channel refactoring
2018-05-03 11:56:58 +02:00
Armin Novak
bda925c52d Added libavcodec version check for dsp-ffmpeg component.
Abort compilation with a specific error if the libavcodec module
detected is too old.
2018-04-27 12:27:16 +02:00
Armin Novak
3f712cab70 Fixed formatting of changed files. 2018-04-05 13:14:16 +02:00
Armin Novak
4d45bd6661 Added CMake option WITH_DSP_EXPERIMENTAL
Some encoder/decoder formats are currently not really working or
have not been thouroughly tested. To allow fearless hackers
fine tuning this flag is added to easily enable/disable these formats.
2018-04-05 13:14:16 +02:00
Armin Novak
f89c1857b9 Rewrite of sound and microphone channels
The sound and microphone redirection channels (and in part TSMF)
did not properly decouple encoding/decoding from the backends used
to play/record sound.
Encapsulating encoding/decoding in rewritten freerdp_dsp_* functions
with variable backends, simplifying alsa/oss/pulse/... audio backends.
2018-04-05 13:14:16 +02:00
Armin Novak
72d574b31e Fixed type mismatches with H264 backend buffer pointers. 2018-04-05 10:48:45 +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
44eebbb6e0 Fixed compiler warnings. 2018-03-07 14:47:06 +01:00
Armin Novak
66cc038c93 Fixed threadpool work function return and arguments. 2018-03-07 14:36:55 +01:00
akallabeth
dd538ccd4b
Merge pull request #4470 from mfleisz/misc_fixes
Various fixes after running VS 2017 code analysis
2018-03-07 14:05:22 +01:00
Eric Brown
2e0253ae3a Clean up mf_uninit 2018-03-07 04:30:15 -06:00
Martin Fleisz
0599a3cdbf codec: Another realloc fix 2018-03-06 16:02:28 +01:00
Martin Fleisz
ba5ad2e2f4 codec: Prevent invalid mem access on realloc failure 2018-03-06 15:34:55 +01:00
Martin Fleisz
21eeea2cee codec: Fix broken reallocs 2018-03-06 15:32:04 +01:00
Eric Brown
0c24ade668 Misc fixes for Windows clients 2018-03-02 12:42:04 -06:00
Eric Brown
3c52e3dd7c Fix H.264 codec init access violation on Windows N/KN systems 2018-03-02 12:39:28 -06: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
77a9e2edfc Do not export internal variables. 2018-02-14 13:51:38 +01:00
David Fort
a07efb73ec video: an implementation of MS-RDPEVOR for X11
Implements the decoding of video streams using common H264 decoders. We also implement
a trivial feedback algorithm.

Sponsored by: Rangee GmbH (http://www.rangee.de)
2018-02-13 10:51:07 +01:00
Armin Novak
50c7777bbb Prevent malloc of size 0 2018-02-09 11:41:53 +01:00
Armin Novak
fde818c6f6 Fixed FFMPEG log messages. 2018-02-07 13:32:29 +01:00
Armin Novak
fac61bf48b Use dynamic logger in MediaFoundation backend 2018-02-07 13:26:39 +01:00
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
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
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
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
Mike Gilbert
51cdd8df19 codec/nsc_sse2: add runtime CPU feature check 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
5e2d6ea029 zgfx: add a check 2017-12-22 17:55:48 +01:00
Armin Novak
50a0968c6a Removed unused variables. 2017-12-21 11:29:24 +01:00
Martin Fleisz
bfe8359b5b
Merge pull request #4239 from akallabeth/test_memleak_fixes
Test memleak fixes
2017-12-20 12:38:38 +01:00
Martin Fleisz
5cec90c781
Merge pull request #4305 from hardening/xrandr_fix
Fix XRandr for old systems and MacOSX
2017-12-13 17:24:41 +01:00
Martin Fleisz
f6b8a6eaa2
Merge pull request #4276 from akallabeth/big_endian_more
Big endian fixes
2017-12-13 09:58:14 +01:00
Armin Novak
7305828122 Fix #4239: Various memory leaks
* Fixed all tests, now can be run with -DWITH_ADDRESS_SANITIZER=ON compiled.
* Enabled address sanitizer for nightly builds.
2017-12-12 11:40:48 +01:00
David Fort
3b670703fb
Merge pull request #4277 from akallabeth/mac_server
Mac fixes
2017-12-12 10:40:14 +01:00
David Fort
41823080f9 Fix users of Stream_GetPosition() that returns size_t 2017-12-11 22:38:58 +01:00
Bernhard Miklautz
aa47c8ebe8
Merge pull request #4268 from akallabeth/big_endian_fixes
Fix ZGfx decoder on big endian
2017-11-24 15:44:15 +01:00
Armin Novak
57958cb178 Fixed #3810: Renamed color functions 2017-11-24 13:21:43 +01:00
Armin Novak
13e0d56574 Fixed endianess issues with ncrush. 2017-11-24 12:03:46 +01:00
Armin Novak
dbdc4f4933 Fixed endianess issues of zgfx decoder. 2017-11-23 09:32:29 +01:00
Armin Novak
b1d2053ad1 Fix #4101: Rfx decode tile width. 2017-11-21 11:08:16 +01:00
Armin Novak
536ffbc31f Fixed missing function return check. 2017-11-15 15:56:25 +01:00
Armin Novak
dbe418062f Fixed missing parameter checks. 2017-11-15 15:56:25 +01:00
Armin Novak
7fd5b6f4a2 Fixed warnings and test return values. 2017-11-15 15:54:38 +01:00
Armin Novak
e4873fe2c4 Added encoder path for libavcodec versions <1.0 2017-11-14 09:15:43 +01:00
Armin Novak
5cd89a3bc5 Added compat define for missing format. 2017-11-13 11:28:43 +01:00
Sri Ramanujam
fef3865ff2 Fallback #ifdefs for older versions of libavcodec 2017-11-12 17:31:22 -05:00
Sri Ramanujam
66c925c9e4 Fix libavcodec encoding errors and set tunables. 2017-11-09 11:39:54 -05:00
KOVACS Krisztian
d396258866 codec/nsc: fix memory corruption in case of chroma subsampling
For odd number of rows, the memory copy operation was broken: after exiting
the loop, yplane points to the end of the last row data, and thus (yplane +
rw) points *after* the end of the last row.
2017-11-09 14:38:46 +01:00
Armin Novak
5dc8763b2c Fixed compilation errors with old FFMPEG versions. 2017-11-08 12:55:11 +01:00
David Fort
504b771686
Merge pull request #4053 from akallabeth/ffmpeg_encoder
Implemented FFMPEG based encoder.
2017-11-06 11:25:48 +01:00
Armin Novak
5d96fc9b14 Removed unused function pointer
The function was breaking windows 7 compatibility.
2017-10-18 09:52:41 +02:00
Norbert Federa
456ce96618 codec/h264: fix potential segfault and mf_init 2017-10-17 19:28:54 +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
c3d4b7d262 fseeko and ftello for 64bit file support. 2017-08-14 08:42:49 +02:00
Armin Novak
a63b2c5a4a Use encoder context for old libavcodec. 2017-08-02 08:53:03 +02:00
Armin Novak
3501f82e95 Implemented FFMPEG based encoder. 2017-07-20 13:27:09 +02:00
Armin Novak
e8b9e4f512 Fixed double free. 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
Armin Novak
0490aeb018 Fixed clang malloc integer overflow warnings. 2017-07-20 09:29:48 +02:00
Armin Novak
88fa131248 Fixed variable assignment. 2017-07-19 11:36:28 +02:00
Armin Novak
42fdb0b8d3 Reordered backends with regard to feature completeness. 2017-07-18 07:46:51 +02:00
Armin Novak
96d53933d2 Deactivated all H264 related code paths. 2017-07-17 10:39:08 +02:00
Armin Novak
2614251e83 Removed H264 dummy, did not work (crash on use) 2017-07-17 09:28:08 +02:00
Armin Novak
5764d5a78a Disable GFX H264 if no backend compiled in. 2017-07-17 09:25:21 +02:00
David Fort
14969adaec Fix openh264 backend compilation 2017-06-20 10:01:50 +02:00
David Fort
dcbb61e3b3 Fix variable declaration and win32 compilation 2017-06-19 23:52:31 +02:00
David Fort
0308123592 Split h264 subsystems in different files 2017-06-14 16:04:54 +02:00
Armin Novak
8adc2ba201 Align width and height for AVC444 decoding to 16. 2017-06-01 13:01:23 +02:00
David Fort
17a4e95a5b Drop some annoying warning
Probably that some unused functions should be removed, but at least it makes
it compile with no warnings.
2017-05-12 13:54:16 +02:00
akallabeth
8df8cc6fb5 Merge pull request #3937 from hardening/h264_multimon
Fix h264 in multimon scenario
2017-05-09 11:16:12 +02:00
Martin Fleisz
16111e7e7f codec: Fix multi-threading support for OpenH264 1.6 or later 2017-05-05 12:37:27 +02:00
David Fort
b2ee8a19ab Fixed progressive code style and added error handling 2017-05-02 18:39:33 +02:00
David Fort
40baadb471 Merge pull request #3911 from akallabeth/avc444_v2
Added AVC444v2 client support.
2017-05-02 16:02:21 +02:00
Armin Novak
2da8dcf8ed Fixed MF H264 buffer allocation. 2017-04-20 12:35:51 +02:00
Armin Novak
a2167d5417 Added surface width and heigth for YUV combine. 2017-04-18 14:12:40 +02:00
Armin Novak
b0d3cfda4d Added AVC444v2 client support. 2017-04-11 11:29:14 +02:00
Norbert Federa
1739f27b82 rdpegfx: fix RemoteFX Progressive Codec decoding
Since this comes via a Wire-To-Surface-2 PDU we don't have
any left/top/right/bottom destination values.
The current code has always dealt with zeros when updating the
invalid region which resulted in black rectangles.
The correct update region is determined during decompression.
2017-04-03 18:59:58 +02:00
Armin Novak
09d43a66f4 Fixed tests and dead store warnings. 2017-03-28 16:49:56 +02:00
Norbert Federa
fa2086686b some performance fixes
- draw only the updated region in the gdi and x11 surface bits implementation
- don't repeatedly call IsProcessorFeaturePresentEx in rfx rlgr decoder
- fix ugly and unaligned profiler print layout and remove an unnecessary value
2017-03-27 20:14:13 +02:00
Armin Novak
e1a709cea7 Ignore AND mask for 32bpp cursor. #3863 2017-03-17 09:45:32 +01:00
Armin Novak
b2c29158be Scanbuild warning, argument checks and leak fixes.
* Added Stream_GetRemainingCapacity to check remaining stream size
  before writes.
* Fixed shadow server memory leak.
* Fixed lots of scanbuild warnings
* Added missing argument checks in many functions
* Added missing static function declarations
2017-03-02 18:13:43 +01:00
Armin Novak
e9b5d78673 Fixed scanbuild warnings. 2017-02-20 14:28:33 +01:00
Armin Novak
c0671b49b4 Fixed scanbuild warnings. 2017-02-20 14:18:18 +01:00