Commit Graph

290 Commits

Author SHA1 Message Date
Armin Novak
19dd3f6703 Fixed compilation warnings 2021-06-16 14:26:06 +02:00
Armin Novak
d36d94766e Replaced assert with WINPR_ASSERT 2021-06-14 09:37:07 +02:00
Denis
8ba1dc49da fix formating with clang-format 2021-03-08 13:11:50 +01:00
Denis
b3a2042103 Add support for OpenBSD sndio 2021-03-08 13:11:50 +01:00
Armin Novak
1cd97c3270 Added API check to allow compilation/run with mac os < 10.14 2021-03-02 10:03:41 +01:00
akallabeth
e2fd9db0b5 Added const to function arguments 2021-02-17 11:29:56 +01:00
Martin Fleisz
a5fce9e64b channels/audin: Request correct media type in audin channel on Mac 2020-11-20 15:37:19 +01:00
Armin Novak
0e0eb5f41f Added permission checks for mac audio backend. 2020-10-21 19:44:09 +02:00
Armin Novak
75aab487e2 Added duplicate initialization check for plugins. 2020-08-10 16:17:44 +02:00
akallabeth
64ad42b95b Fixed DestroyListener arguments and call order 2020-05-13 17:11:17 +02:00
akallabeth
2f5e5359f6 Destroy channel listeners on terminate 2020-05-12 11:40:42 +02:00
Armin Novak
0154d3ceb8 audin pulse log states by name 2020-02-25 14:57:42 +01:00
Martin Fleisz
53f7927bf3 audin: Fix possible crash in winmm backend 2020-01-16 10:23:17 +01:00
Martin Fleisz
05a865281e channels: Fix memory leak and make log messages more precise 2020-01-08 16:49:15 +01:00
Martin Fleisz
d21e0a6d6d Fix audio channel init when no audio devices are present
This PR fixes the handling of using rdpsnd or audin when the system has
no audio device available.
In case of a missing playback device the
Windows backend now correctly reports an error and the fake rdpsnd
backend is loaded.
If audin is enabled and no microphone is present the channel
initialization will report an error but it won't cut the connection (as
it did before).
2019-12-30 12:59:14 +01:00
Armin Novak
da6ff1ca65 Removed some unnecessary casts. 2019-12-05 11:40:56 +01:00
Armin Novak
72ca88f49c Reformatted to new style 2019-11-07 10:53:54 +01:00
Martin Fleisz
bc39b32d20
Merge pull request #5685 from akallabeth/multi_instance_arg_parse
COMMAND_LINE_ARGUMENT structs contain parser results, use one per instance
2019-11-06 09:09:22 +01:00
Armin Novak
f01e042211 Code cleanups (strlen, casts, size_t, ...) 2019-10-29 11:58:43 +01:00
Armin Novak
0c87eaee4d COMMAND_LINE_ARGUMENT structs contain parser results, use one per instance
Remove the old global structs as the parser modifies them. When using
multiple instances in the same process space this could break parsing.
2019-10-28 13:30:05 +01:00
Armin Novak
30c21279cb Fixed memory leak when freeing up audin formats. 2019-10-24 12:18:24 +02:00
Armin Novak
624d895106 Fixed sign issues 2019-04-05 09:22:35 +02:00
Armin Novak
ef1728faf5 Fixed NULL dereferences and uninitialized values 2019-01-30 16:11:10 +01:00
Peter Åstrand (astrand)
30cd1ba1ab Use lowercase for includes and libs
Makes build possible on case sensitive systems such as MinGW on Linux.
2019-01-09 09:36:28 +01:00
Ilya Shipitsin
bdc039e719 resolve several issues found by cppcheck
[client/X11/xf_floatbar.c:800] -> [client/X11/xf_floatbar.c:796]: (warning) Either the condition '!floatbar' is redundant or there is possible null pointer dereference: floatbar.
[client/X11/xf_floatbar.c:800] -> [client/X11/xf_floatbar.c:797]: (warning) Either the condition '!floatbar' is redundant or there is possible null pointer dereference: floatbar.
[client/X11/xf_floatbar.c:800] -> [client/X11/xf_floatbar.c:798]: (warning) Either the condition '!floatbar' is redundant or there is possible null pointer dereference: floatbar.
[libfreerdp/codec/dsp.c:1156] -> [libfreerdp/codec/dsp.c:1154]: (warning) Either the condition '!srcFormat' is redundant or there is possible null pointer dereference: srcFormat.
[channels/drdynvc/client/drdynvc_main.c:1453] -> [channels/drdynvc/client/drdynvc_main.c:1450]: (warning) Either the condition '!drdynvc' is redundant or there is possible null pointer dereference: drdynvc.
[channels/audin/client/opensles/audin_opensl_es.c:98] -> [channels/audin/client/opensles/audin_opensl_es.c:94]: (warning) Either the condition '!opensles' is redundant or there is possible null pointer dereference: opensles.
[channels/audin/client/opensles/audin_opensl_es.c:159] -> [channels/audin/client/opensles/audin_opensl_es.c:153]: (warning) Either the condition '!opensles' is redundant or there is possible null pointer dereference: opensles.
2019-01-02 20:35:24 +05:00
Armin Novak
0f45a570fa Added fallback for supported sample rates if original not supported.
Added format compatibility check between recording input and destination.
2018-11-14 13:27:20 +01:00
Armin Novak
93eea24120 Fixed possible NULL pointer dereference 2018-11-14 13:27:20 +01:00
Armin Novak
7aebf8ebd2 Silence code analyzers, check correct variable for NULL. 2018-10-25 13:19:45 +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
Armin Novak
ac14763564 [audin] Abort version exchange if server version is not supported. 2018-10-04 13:53:18 +02:00
Armin Novak
47f8804073 Fixed audio recording with opensles. 2018-10-04 13:18:06 +02:00
Armin Novak
d56efaae8b Fixed server format selection. 2018-09-26 12:49:09 +02:00
Armin Novak
16531e1437 Fixed server audin callback, provide more information. 2018-09-26 12:49:09 +02:00
Armin Novak
18f97d03e7 Cleaned up defaults. 2018-09-26 12:49:09 +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
dab5770fed Added microphone support to shadow server. 2018-09-25 11:14:10 +02:00
Ondrej Holy
926ac4f938 channels/audin: Fix leak found by covscan
leaked_storage: Variable out going out of scope leaks the storage it points to.
2018-08-22 13:35:43 +02:00
Armin Novak
44d1438eac Fixed mac audin 2018-08-01 12:56:17 +02:00
Armin Novak
7355b4e5f3 Fixed leak in audio format processing. 2018-07-31 10:33:19 +02:00
MartinHaimberger
2d7499b7c0
Merge pull request #4758 from akallabeth/dsp_fix
Audio/microphone fixes
2018-07-31 10:22:22 +02:00
Armin Novak
033abe93d4 Fixed callback parameter checks. 2018-07-30 11:22:11 +02:00
Armin Novak
3b187ef321 Code Cleanup 2018-07-19 16:21:03 +02:00
Martin Fleisz
b6a41b26e5 audin: Fix server-side dsp decoding
The decoder format was never set and so dsp_decode always failed
on the server side.
2018-07-19 16:00:31 +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
d7e88b1b81 Fixed winmm backend logging. 2018-07-19 11:55:48 +02:00
Armin Novak
a003890b34 Fixed opensles compilation errors. 2018-07-19 11:51:26 +02:00
Armin Novak
ec83f3d4f1 Fixed number of samples returned. 2018-07-18 12:33:52 +02:00
Armin Novak
7c8a556377 Fixed alignment issues. 2018-07-18 12:14:37 +02:00
Armin Novak
8664a3c91e Fixed alsa and pulse backend receive buffer sizes 2018-07-17 16:18:21 +02:00
Armin Novak
b9645c9247 Using dynamic logger again. 2018-07-17 11:20:45 +02:00
Armin Novak
4465bcfa86 Fixed remarks 2018-07-04 11:03:32 +02:00
Armin Novak
bf70ee6267 Keep extra data of audio format locally cached. 2018-07-03 09:54:29 +02:00
Pascal J. Bourguignon
15f2bafeab Cleaned up const char** -> char** for argv, since we definitely do modify the argv!
(we overwrite the password and pin arguments).
This implies changes in the argument parsing tests that now must pass a mutable argv
(copied from the statically declared test argvs).
Some other const inconsistency have been dealt with too.
2018-06-06 16:43:09 +02:00
Armin Novak
8758638c2a Ensure audin channel uses supported protocol version 1. 2018-04-16 10:23:45 +02:00
Armin Novak
3f712cab70 Fixed formatting of changed files. 2018-04-05 13:14:16 +02:00
Armin Novak
2e801a8425 Free dsp context on close. 2018-04-05 13:14:16 +02:00
Armin Novak
1c127fab7d Added AudioFormatFlags fallback. 2018-04-05 13:14:16 +02:00
Armin Novak
65a82e9cdc Fix #4462: Fallback typedef for AudioFormatID on MacOS < 10.10 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
0c49152a3d Fixed #4412: memory corruption in audin channel. 2018-03-26 16:29:50 +02:00
Armin Novak
c53d72211a Audin channel use dynamic logger where possible. 2018-03-26 14:40:23 +02:00
Armin Novak
2517755d25 Fixed thread function return and parameters. 2018-03-07 14:36:55 +01:00
Armin Novak
4eb5b8e349 Replaced atoi 2017-11-15 15:52:16 +01: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
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
57901b8add Added detach support for microphone 2016-12-19 17:13:25 +01:00
Armin Novak
9f19da798c Added attach/detach support for channels. 2016-12-19 17:07:01 +01:00
Norbert Federa
f71b6b46e8 fix string format specifiers
- fixed invalid, missing or additional arguments
- removed all type casts from arguments
- added missing (void*) typecasts for %p arguments
- use inttypes defines where appropriate
2016-12-16 13:48:43 +01:00
Norbert Federa
c6e6b44143 countless WLog/printf format specifier fixes 2016-11-25 17:06:25 +01:00
Martin Fleisz
0febd9c7cd Merge pull request #3563 from akallabeth/android_update
Android fix warnings, visibility and formatting
2016-11-24 12:59:30 +01:00
Marc-André Moreau
dee76617d9 channels: remove thread-local storage usage 2016-11-15 11:41:01 -05:00
Armin Novak
6ca5a1324f Android: fixed warnings, reformatted. 2016-10-17 10:21:23 +02:00
Armin Novak
943e295714 WLog using C99 compatible variadic macros. 2016-10-07 14:05:27 +02:00
Armin Novak
376dc216e6 Fixed uninitialized value. 2016-10-06 13:43:15 +02:00
Armin Novak
b03e47166e Fixed NULL pointer checks. 2016-10-06 13:43:14 +02:00
Armin Novak
9f5da483dc Reformatted files touched in last 2 commits. 2016-10-06 13:43:12 +02:00
Armin Novak
88a3b8dd76 Initializing channel context in each thread. 2016-10-06 13:43:12 +02:00
Norbert Federa
90cdfa7646 cmake: replaced STATIC_CHANNELS with BUILTIN_CHANNELS 2016-06-15 13:36:27 +02:00
Norbert Federa
0ed98c4ee4 channels/audin/client/winmm: requires winpr 2016-06-15 13:30:38 +02:00
Armin Novak
704d69d540 Fixed NULL pointer access. 2016-05-12 09:28:12 +02:00
Marc-André Moreau
915b9a15b1 Merge branch 'master' of github.com:FreeRDP/FreeRDP
Conflicts:
	winpr/libwinpr/bcrypt/CMakeLists.txt
2016-05-11 11:05:17 -04:00
Bernhard Miklautz
62cb5fac44 build: add missing dependencies
Add all missing dependencies found when building with
STATIC_CHANNELS=OFF.

Fixes #3281
2016-04-15 14:32:40 +02:00
Bernhard Miklautz
783807229d build: add missing dependencies
Add all missing dependencies found with --no-undefined. Since
dependencies aren't exported anymore (if not required) it is no necessary
to explicitly list all required libraries.
2016-04-07 15:10:00 +02:00
Marc-André Moreau
9211f44e46 Merge branch 'master' of github.com:FreeRDP/FreeRDP 2016-03-15 20:19:15 -04:00
Armin Novak
36cbf1b583 Fixed error handling for channel load failures. 2016-03-14 13:13:43 +01:00
zihao.jiang
40ea6e9228 audin: Fixed default sys argument for audin
PR #3173 fixed argument parsing. However it breaks the usage without specifying subsystem: "/microphone"
In particular, aFreerdp microphone redirect is broken as it exactly uses "/microphone"
This PR fixes the regression.
Fix: We should not call CommandLineParseArgumentsA if argc is only 1 (same case as rdpsnd_main.c)
2016-03-11 01:52:18 +08:00
Marc-André Moreau
ceefc4b099 Merge branch 'master' of github.com:FreeRDP/FreeRDP 2016-03-07 10:19:50 -05:00
Bernhard Miklautz
120bd2d8bd Merge pull request #3173 from akallabeth/audin_arg_fix
Fixed argument parsing for audin.
2016-03-03 20:39:31 +01:00
Armin Novak
fb88ad0ee6 Fixed symbol export for sound plugins. 2016-03-03 17:17:13 +01:00
Bernhard Miklautz
25506348d0 Merge pull request #3168 from akallabeth/visibility_fixes
Fixed default visibility.
2016-02-29 16:59:58 +01:00
Armin Novak
5acd80dd5b Exporting channel entry points. 2016-02-29 15:18:19 +01:00
Armin Novak
8482fbf854 Fixed formatting. 2016-02-29 12:34:53 +01:00
Armin Novak
71bea3e1d0 Fixed argument parsing for audin. 2016-02-28 19:56:57 +01:00
zihao.jiang
17139b9fe6 android: Fix sound redirection.
After #3097, the java side pass command line argument to JNI for freerdp settings. However there's several issues need to be fixed:
1. The argument /sound should be appended if freerdp is required to play sound at local device
2. The option value for "audio-mode" is not correct.
It should match the definition in client/common/cmdline.c
/* Audio Mode */
define AUDIO_MODE_REDIRECT     0 /* Bring to this computer */
define AUDIO_MODE_PLAY_ON_SERVER   1 /* Leave at remote computer */
define AUDIO_MODE_NONE         2 /* Do not play */
3. Uncomment support for WAVE_FORMAT_PCM in audin. I tested on my android phone and Nokia N1 tablet. It works on both device
2016-02-28 13:43:11 +08:00
Marc-André Moreau
8fa25aae6a mfreerdp: fix build on 32-bit with mac audio 2016-02-16 13:42:08 -05:00
Bernhard Miklautz
6fa3608111 cleanup cmake exports and pkg-config files
With this commit the "exported" components (usable with pkg-config and
cmake find module package)
* winpr - winpr library and headers
* freerdp - core library and headers
* freerdp-client - client specific library
* freerdp-server - server specific library
* rdtk - rdtk headers and library

To allow the installation of multiple different version (different major
number) the include files were moved into the respective sub folder:
freerdp -> freerdp{MAJOR}/freerdp (currently freerdp2/freerdp/)
winpr -> winpr{MAJOR}/winpr (currently winrp1/winpr/)
rdtk -> rdpk{MAJOR}/rdtk (currently rdtk0/rdtk/

The generated pkg-config and cmake find modules now also include the major
version number. Currently the following pkg-config are generated and
installed.
* winpr1
* freerdp2
* freerdp-server2
* freerdp-client2
* rdtk0

As cmake is able to handle multiple versions out of the box the
following can be used to find a specific module:

find_package(WinPR)
find_package(FreeRDP)
find_package(FreeRDP-Server)
find_package(FreeRDP-Client)
find_package(RdTk)

As cmake doesn't automatically resolve dependencies for packages it is
necessary to manually include the requirements. For example if
FreeRDP-Client is required WinPR and FreeRDP need to be included
(find_package) as well.

This commit also fixes the installation when STATIC_CHANNELS are built.
WITH STATIC_CHANNELS all channels are linked into libfreerdp-client, for
this all channels are generated as linker archive and linked together in
the final step. Before the intermediate linker archives were, although
not required and useful, installed. Same applies for server side
channels.
2016-01-12 17:32:33 +01:00
Bernhard Miklautz
97edeca204 Merge pull request #2874 from akallabeth/stdtypes
Using stdint.h and stdbool.h for type definitions
2015-12-17 16:37:54 +01:00
Armin Novak
cb958ba9c6 Added pdb files to package target.
Fixed name collision with freerdp-shadow targets.
2015-12-15 12:07:21 +01:00