Commit Graph

491 Commits

Author SHA1 Message Date
Kobi Mizrachi
b2fad50cd3 server: proxy: rewrite modules API
* Add support for C++ plugins.
* Seperate between a "module" and a "plugin": a module is a shared
library that exposes a function called "proxy_module_entry_point". This
function gets a parameter to `proxyPluginsManager*`, which can be used to
register plugins.
* Refine the API of the modules infrastructure:
 * use proxyData* instead of rdpContext* when firing a hook or calling a filter.
 * use clearer names.
* Instead of having to specify a path for each module to be loaded in
the configuration, the proxy now loads modules from specificed
directory, using the CMAKE variable PROXY_PLUGINDIR.
* Add an option to specify required plugins: plugins that the proxy
wouldn't start without having them fully loaded.
2020-01-14 07:58:47 +01:00
David Fort
5f0943f0fe primitives: add openCL support
This patch adds the basic infrastructure to have openCL acceleration.
For now only YUV2RGB is implemented but other operations could be
implemented.
The primitives have been massively reworked so that we have an autodetect
mode that will pick the best implementation automatically by performing a
benchmark.

Sponsored-by: Rangee Gmbh(http://www.rangee.com)
2019-11-22 13:21:39 +01:00
Armin Novak
441fb4d0ca Allow freerdp clients to function with WITH_OPENH264_LOADING
If no library can be loaded at runtime ignore H264 capabilities.
This allows a build with only OpenH264 support and dynamic loading
enabled to function when no openh264 library was detected.
2019-10-07 09:31:20 +02:00
Armin Novak
4be98eb1a5 mac os bundles should not put libraries/addins in a subfolder. 2019-09-10 12:21:40 +02:00
Armin Novak
b8d3340b18 Set default build windows version to windows 7 2019-09-03 15:11:18 +02:00
Armin Novak
033b113102 Setting plugin paths for windows install. 2019-08-21 13:19:44 +02:00
Antenore Gatta
8617ae9ca4 Move FoundCairo module include where is referenced 2019-08-14 18:11:14 +02:00
Antenore Gatta
d4dc553a67 Better libcairo dependencies handling though cmake 2019-08-14 18:11:14 +02:00
Sergey Bronnikov
a39580f9bc Fixed typo: RAW_VERSTION_STRING -> RAW_VERSION_STRING 2019-07-25 16:07:40 +03:00
Armin Novak
abf5916ae5 Fix plugin paths when building for a mac bundle. 2019-06-26 09:56:16 +02:00
Armin Novak
6604df0795 Added clang format script.
new code formatting rules are now enforced by this script.
2019-05-16 11:25:40 +02:00
David Fort
70805402be
Merge pull request #5140 from akallabeth/print_custom_component
Added callback to handle printer custom components in printer backend.
2019-01-29 15:18:53 +01:00
akallabeth
0a8ebcfcac
Merge pull request #5187 from astrand/mingw-part1
Mingw build fixes part1
2019-01-29 10:46:21 +01:00
Armin Novak
1c855068a2 Using runtime linking for OpenH264.
This allows removing the hard dependency on OpenH264 and use the
cisco provided binary.
2019-01-11 12:00:08 +01:00
Peter Åstrand (astrand)
9c19c7361f Support Unix Makefiles 2019-01-09 09:30:31 +01:00
Armin Novak
34c9404c98 Added OpenSSL include path globally. 2018-12-12 15:41:29 +01:00
Armin Novak
0831c34fc0 Fix #4730: Add git revision, architecture and minimum os support to file properties. 2018-12-04 09:34:22 +01:00
Armin Novak
4c3626340c Set minimum deployment target to 10.0 2018-12-03 17:06:35 +01:00
Armin Novak
fff22f027b Removed DirectFB client as it is unmaintained
DirectFB support was in search of a maintainer for ages and
no longer compiles.
Since nobody stepped up get rid of this unused code once and for all.
2018-11-22 14:40:19 +01:00
Bernhard Miklautz
58091dc138 new: development cycle dev5 2018-11-20 11:49:34 +01:00
Bernhard Miklautz
cc801eded7 new: version 2.0.0-rc4
ChangeLog and version updated
2018-11-20 11:22:47 +01:00
Armin Novak
e93aab2f7f Added CMake detection support for libsoxr 2018-11-14 13:27:20 +01:00
Marc-André Moreau
1b42e512ee winpr: add WINPR_DLL definition 2018-10-04 15:09:49 -04:00
Armin Novak
5bddbd1cf7 Fixed avcodec version test. 2018-09-07 10:48:37 +02:00
Armin Novak
2b5b7cb3c5 Added requirement check for WITH_DSP_FFMPEG 2018-08-09 09:58:56 +02:00
Armin Novak
97e7eca30c Started next development cycle 2018-08-01 15:29:17 +02:00
Armin Novak
619ce84cdb release: version 2.0.0-rc3 2018-08-01 09:45:36 +02:00
David Fort
1107220ecf
Merge pull request #4645 from akallabeth/mac_ports_removed
Fix #2617: Removed MacPorts from CMake (default) search path.
2018-07-04 10:50:41 +02:00
Armin Novak
f8a1bb8451 Fixed case of variable names. 2018-05-30 12:13:24 +02:00
Armin Novak
4c0007b55a Fix #4672: Check if FFMPEG and OpenH264 detected
When FFMPEG or OpenH264 was requested but not detected abort
the cmake run with an error.
2018-05-28 15:30:50 +02:00
Armin Novak
3c7dfa0a03 Fix #2617: Removed MacPorts from CMake (default) search path. 2018-05-14 10:39:12 +02:00
Armin Novak
a18ee2e7b2 VS2017 support: set pdb output directory for Ninja generator. 2018-05-11 10:37:50 +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
akallabeth
dd577377dd
Merge pull request #4617 from kevans91/spurious
Upstream the rest of our local FreeBSD patching
2018-05-03 11:55:03 +02:00
akallabeth
d130d9cb21
Merge pull request #4613 from kevans91/file64
Enable 64-bit file support on FreeBSD as well
2018-05-03 11:31:54 +02:00
Kyle Evans
2fb992a962 Upstream the rest of our local FreeBSD patching
FreeBSD/DragonflyBSD are also UNIX platforms, as far as trio is concerned, and
we don't need to be setting the CMAKE_INSTALL_RPATH on FreeBSD.
2018-05-02 22:09:42 -05:00
Kyle Evans
5463b23591 Enable 64-bit file support on FreeBSD as well 2018-05-02 10:38:44 -05:00
Kyle Evans
824ace49ac Add SetFreeRDPCMakeInstallDir function to abstract away platform differences
Different platforms/systems may install CMake modules into different places. For
instance, FreeBSD will install modules into ${PREFIX}/share/cmake/Modules while
Linux distributions might install into ${PREFIX}/lib/cmake.

This leaves us with a useful abstraction- consumers only need to care about
the name of their subdirectory, and only one place needs to be patched to change
where this subdirectory lands.
2018-05-02 10:36:52 -05:00
Kyle Evans
45d8e2dfb2 Pull in libepoll-shim for the bits that require timerfd/epoll
libepoll-shim is our implementation of this API on top of kevent. It supplies
the same headers and a library, but we don't install it in any of the default
include search paths when it comes in through ports on an as-needed basis.

This set of changes is restricted to FREEBSD-compatible OS, which includes
DragonflyBSD and FreeBSD.
2018-05-01 23:42:25 -05:00
Kyle Evans
5e9c8c4bca Set BSD/FREEBSD for DragonflyBSD
DragonflyBSD was a fork of FreeBSD once upon a time. As far as FreeRDP is
concerned, DragonflyBSD is FreeBSD-compatible and DragonflyBSD in-fact uses
the FreeBSD ports tree (+ patches)
2018-05-01 23:38:48 -05:00
Armin Novak
c9373cee06 Refined checks for sanitizers. 2018-04-12 12:41:19 +02:00
Bernhard Miklautz
d309a1ba33 build: set version to 2.0.0-dev3
start 2.0.0-rc3 development cycle
2018-04-11 13:36:33 +02:00
Bernhard Miklautz
c98a90ea69 release: version 2.0.0-rc2 2018-04-11 12:44:06 +02:00
Armin Novak
ef6a03128a Added memory and thread sanitizer. 2018-04-06 08:27:52 +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
Dan Church
3af9c4d35c
Fix ccache support
Setting the compiler launcher to "ccache" is the recommended way of
enabling ccache for the build.

If cmake is run with it defined, it causes an error when ccache tries to
run:

    ccache: error: Recursive invocation (the name of the ccache binary must be "ccache")

This was because the compiler was getting invoked as
"ccache ccache [COMPILER]"
2018-03-21 16:30:34 -05:00
Armin Novak
c68e34b10f Fixed apple rpath settings. 2018-02-16 10:24:55 +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
David Fort
917bc4b551 set some define consistency
This patch cleanup the defines to make then consistent.
2018-02-05 14:17:23 +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