Commit Graph

427 Commits

Author SHA1 Message Date
Armin Novak
ff7e91fed0 Removed unnecessary pulse context check. 2018-10-22 10:18:17 +02:00
Armin Novak
03dcfaf8db Unified sound device reopen in a single function. 2018-10-22 10:04:02 +02:00
Norbert Federa
d35470f8af rdpsnd: always call rdpsnd_server_send_formats
Since the rdpsnd_server_send_formats function is no longer exported
we must always call it, even if the rdpsnd server application uses
its own thread.
2018-10-18 10:21:15 +02:00
Armin Novak
3920c570dd Fixed memory leak with audio formats. 2018-10-15 16:33:56 +02:00
Armin Novak
2cf0662559 Unified format support for rdpsnd. 2018-09-26 12:49:52 +02:00
Armin Novak
a83c805ade Fixed format debug message. 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
114abad767 Removed use of strcpy. 2018-08-27 14:34:09 +02:00
Armin Novak
d90e5da865 Fixed unused label warning. 2018-08-24 13:40:36 +02:00
Armin Novak
98c254ffa0 Fixed invalid return value type. 2018-08-01 12:56:18 +02:00
Martin Fleisz
0ec9579013 rdpsnd: Fix sending of wave2 PDU
According to MS-RDPEA 2.2.3.10 the Wave2 PDU's header BodySize field
should be equal the size of the PDU minus the header (4 Bytes).
2018-07-11 15:06:31 +02:00
Armin Novak
4465bcfa86 Fixed remarks 2018-07-04 11:03:32 +02:00
Armin Novak
a554207c11 Added target dependencies. 2018-07-02 16:58:14 +02:00
Armin Novak
7cd25027ad Fixed empty lib. 2018-07-02 16:38:21 +02:00
Armin Novak
373bfac9ab Added support for WAVE2 PDU in server side audio channel. 2018-07-02 16:20:39 +02:00
Armin Novak
e44d10a3e0 Merge remote-tracking branch 'origin/pr/4701' into reconnect_fixes 2018-06-19 12:46:58 +02:00
Armin Novak
a716dc244c Removed duplicate resource free. 2018-06-18 10:23:57 +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
David Fort
0255a7db15
Merge pull request #4654 from akallabeth/alsa_latency_patch
Return real alsa latency if buffer is filled.
2018-05-16 09:53:30 +02:00
Armin Novak
c078aee238 Return real alsa latency if buffer is filled. 2018-05-16 08:52:55 +02:00
Armin Novak
0cf4dcc016 Fix missing sound arrival time for wave2 PDU 2018-05-15 14:57:00 +02:00
Martin Fleisz
c4e8685a29
Merge pull request #4623 from akallabeth/mac_sound_backend_fix
Fixed mac sound backend initialization.
2018-05-04 13:08:45 +02:00
Armin Novak
87c19b30d0 Fixed uninitialized return and early resource cleanup. 2018-05-04 12:36:29 +02:00
Armin Novak
670c1190c4 Fixed formats supported by backend. 2018-05-04 09:44:06 +02:00
Armin Novak
17d43edafb Fixed mac sound backend initialization. 2018-05-03 16:12:12 +02:00
Armin Novak
066cb52caa Fixed treat_wave sample length and checks. 2018-05-03 10:08:56 +02:00
David Fort
d07d06b28c rdpsnd: add support for wave2 PDU in client (#2)
To achieve this the announced version number is bumped to 8.
2018-04-16 08:56:09 +02:00
Armin Novak
3606b66cc3 Fix rdpsnd channel detached handling.
Do not play samples if detached, but handle every other message
just like with an attached channel.
2018-04-11 08:48:29 +02:00
Armin Novak
82ad911ee5 Added fake rdpsnd backend. 2018-04-09 17:39:08 +02:00
Armin Novak
030e9fc12f Fixed channel duplicate disconnect handling 2018-04-09 11:27:54 +02:00
Armin Novak
3f712cab70 Fixed formatting of changed files. 2018-04-05 13:14:16 +02:00
Armin Novak
ec5dab973f Initialized ALSA backend format. 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
2517755d25 Fixed thread function return and parameters. 2018-03-07 14:36:55 +01:00
Armin Novak
6623927fe4 Free gsmBuffer on channel close. 2018-02-19 14:04:42 +01:00
Armin Novak
3b67190d17 Clean up GSM context on channel close. 2018-02-19 13:05:53 +01:00
David Fort
41823080f9 Fix users of Stream_GetPosition() that returns size_t 2017-12-11 22:38:58 +01:00
Armin Novak
f96a46acd5 Fix #4278: Fix nasty range check bug 2017-11-26 14:59:37 +01:00
Armin Novak
4eb5b8e349 Replaced atoi 2017-11-15 15:52:16 +01:00
Armin Novak
7058a9add2 Pause playback on queue empty, free buffers on close. 2017-10-05 12:05:09 +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
7960251e2c Fixed audio termination code. 2017-01-17 16:06:04 +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
Bernhard Miklautz
00dae7c5ef Fix some spelling errors
Fixes #3633
2016-12-01 15:36:49 +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
Martin Haimberger
778767cafe fixed error 2016-11-23 04:22:03 -08:00
Martin Haimberger
7fe28a8a78 virtualChannel: removed static variable usage from
VirtualChannelApi
2016-11-23 04:17:56 -08:00
Martin Haimberger
d29848f383 rdpsnd: using new VirtualChannelEx api 2016-11-23 03:50:22 -08:00
Marc-André Moreau
dee76617d9 channels: remove thread-local storage usage 2016-11-15 11:41:01 -05:00
Marc-André Moreau
70c4646722 channels: restore global tables for initHandle, openHandle mappings instead of thread local storage 2016-11-14 15:23:05 -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
9d0f7534e3 Fixed use after free. 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
1b6cf57307 Reformatted file. 2016-10-06 13:43:13 +02:00
Armin Novak
9f5da483dc Reformatted files touched in last 2 commits. 2016-10-06 13:43:12 +02:00
Armin Novak
64590e7e89 Set pEntryPointsEx->ppInterface NULL on error. 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
Armin Novak
dadc5262ae Removed static channel variables.
Global static variables do not work, if more than one instance
of an RDP client is running in the same process space.
Removed the varaibles where possible and replaced them with
thread local storage where necessary.
2016-10-06 13:43:09 +02:00
Ondrej Holy
2fec57f1a0 rdpsnd/pulse: Fix crashes in pulseaudio
Function pa_stream_trigger has to be called under lock to avoid
following crashes on asserts:

Assertion 'e->mainloop->n_enabled_defer_events > 0' failed at pulse/mainloop.c:257, function mainloop_defer_enable(). Aborting.
Assertion '!e->next' failed at pulsecore/queue.c:104, function pa_queue_pop(). Aborting.
Assertion 'q->front' failed at pulsecore/queue.c:81, function pa_queue_push(). Aborting.
2016-10-04 15:18:16 +02:00
David PHAM-VAN
fe2e4264af Fix Memory Leaks in RdpSnd 2016-09-19 11:27:25 -07:00
Vic Lee
019a569d42 rdpsnd/server: decrease audio latency and make it configurable. 2016-06-21 17:22:43 +08:00
Norbert Federa
90cdfa7646 cmake: replaced STATIC_CHANNELS with BUILTIN_CHANNELS 2016-06-15 13:36:27 +02:00
zihao.jiang
444b678e71 shadow/rdpsnd: Fix race condition in rdpsnd channel server. The output buffer and format parameters are not protected. This cause some data inconsistence if rdpsnd has own thread 2016-05-22 22:13:32 +08: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
Armin Novak
2dbc1a0b87 Reverted WTS API changes. 2016-03-14 13:19:08 +01:00
Armin Novak
36cbf1b583 Fixed error handling for channel load failures. 2016-03-14 13:13:43 +01:00
Marc-André Moreau
ceefc4b099 Merge branch 'master' of github.com:FreeRDP/FreeRDP 2016-03-07 10:19:50 -05:00
Armin Novak
fb88ad0ee6 Fixed symbol export for sound plugins. 2016-03-03 17:17:13 +01:00
Marc-André Moreau
8fa25aae6a mfreerdp: fix build on 32-bit with mac audio 2016-02-16 13:42:08 -05:00
David PHAM-VAN
3f5ce2d43f Refactor format_supported with a nice switch() statement 2016-01-29 09:58:48 -08:00
David PHAM-VAN
8ef64aee96 Add ADPCM codec for Mac client 2016-01-28 16:11:39 -08: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
Armin Novak
6ed43cd6ec Updated pdb file locations.
Now supporting generators NMake and Visual Studio.
2015-12-15 12:08:35 +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
Hardening
55d097a161 Merge pull request #2414 from zavadovsky/opensles_fixes
opensles fixes
2015-12-14 17:22:38 +01:00
Mehul Dhorda
044ebaafcd Fixed build errors that occur when setting WITH_IOSAUDIO build option.
- Replaced } with ) in CMakeLists.txt
- Included header in TPCircularBuffer.c which is required for the TAG define
2015-11-10 11:39:37 -08:00
zihao.jiang
f21749ac07 server: Fix several memory leak while running valgrind on freerdp-shadow 2015-09-17 01:02:22 +08:00
Vic Lee
cc1bcb31b8 rdpsnd/winmm: fix SetVolume when device is not opened. 2015-09-02 15:31:40 +08:00
Armin Novak
f8295a1517 Fixed resource cleanup double free. 2015-08-28 10:51:27 +02:00
Martin Haimberger
52405a3e79 Remove WIN32ERROR type
All return values are UINT now.
2015-08-27 05:38:20 -07:00
Martin Haimberger
65fd259610 misc fixes:
fixed all bugs from the review
checking all WaitFor*Object/s calls
2015-07-30 06:49:21 -07:00
Martin Haimberger
f65d15feeb fixed audioserver
if no data could be read, the ERROR_NO_DATA is returend to
indicate a further read.
2015-07-22 03:16:46 -07:00
Bernhard Miklautz
f992568432 rdpsnd: restore old behavior and fixes
* oss: fix function signature
* autodetection - if only /sound is given all enabled
  plugins are tried in order and the first successful loaded is used.
	- this restores the previous behavior
* alsa/pulse fix command line parsing - no parameters shouldn't be
  treated as error
2015-07-20 12:28:49 +02:00
Martin Haimberger
e682329eeb fixed compiler errors 2015-07-15 03:17:38 -07:00
Martin Haimberger
6ab0187d84 Merge remote-tracking branch 'upstream/master' into mh-channel
Conflicts:
	channels/audin/client/oss/audin_oss.c
	channels/drive/client/drive_main.c
	channels/printer/client/printer_cups.c
	channels/printer/client/printer_main.c
	channels/rail/client/rail_main.c
	channels/rdpgfx/client/rdpgfx_main.c
	channels/rdpsnd/client/oss/rdpsnd_oss.c
	channels/remdesk/client/remdesk_main.c
	channels/remdesk/server/remdesk_main.c
	channels/tsmf/client/tsmf_media.c
2015-07-15 01:57:07 -07:00
Martin Haimberger
b8c110d19b introduced channel error reporting system
The rdpContext gets an event which will
get set if an error occoured in a channel.

If a thread or a void callback has to report an
error it will get signaled by this system.
2015-07-15 00:50:35 -07:00
David FORT
1b7140d84e Fixed some more checks in rdpsnd channel 2015-07-04 00:17:37 +02:00
Armin Novak
cf9f975341 Replaced snprintf with sprintf_s 2015-07-03 13:26:15 +02:00
Zavadovsky Yan
2c1aff1ab9 channels/rdpsnd: fix memory leak
Pointer to sound data chunk must be put into queue
otherwise bqPlayerCallback() will have nothing to free and
memory will leak.
2015-07-01 18:58:38 +03:00
Zavadovsky Yan
6ce87bd477 channels/rdpsnd: fix rdpsnd_opensles_set_format() logic
If server says "PCM format" treat sound data as PCM, not ADPCM.
This fixes noise from speakers when using Xrdp as server.
2015-07-01 18:58:10 +03:00
Marc-André Moreau
ddf2519f1e Merge pull request #2719 from bmiklautz/pull/2481
OSS, tsmf, usb and BSD fixes and improvements
2015-06-26 08:27:22 -04:00
David FORT
a8fefae3a1 Harden the sound channel
This patch adds checks for the sound channel and plugins:

* checks for protocol bytes;
* checks for malloc/calloc;
* be more strict when interacting with sound plugin
2015-06-24 17:06:45 +02:00
Bernhard Miklautz
7624519453 oss: fix formating 2015-06-22 19:45:56 +02:00