akallabeth
e2fd9db0b5
Added const to function arguments
2021-02-17 11:29:56 +01:00
akallabeth
d9d22aa422
Fixed sound buffering issues with compressed formats
2020-11-26 15:26:35 +01:00
akallabeth
6e3c00725a
Cleaned up collections:
...
ArrayList, MessageQueue, Queue, PubSub, BipBuffer
ObjectPool and BufferPool
2020-11-06 12:30:13 +01:00
Felix Deimel
19f74a2698
Fixes #5747 : Only activate sound output device ( #6467 )
...
* Fixes #5747 : Only activate sound output device
2020-09-08 10:55:49 +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
David Fort
46c4b7bdc2
Merge pull request #6166 from akallabeth/mac_sound_objc_link
...
Fixed #6163 : Force linking to objective C runtime
2020-05-11 22:38:24 +02:00
akallabeth
eee1d7176b
Fixed #6163 : Force linking to objective C runtime
...
Sound channel requires the objective C runtime, force linking to
fix build issues on older mac os versions
2020-05-11 09:56:18 +02:00
akallabeth
2215fef975
Fixed oob read in rdpsnd_recv_wave2_pdu
...
Check format index before using it.
Thanks to hac425 CVE-2020-11041
2020-05-06 13:31:57 +02:00
akallabeth
f016f1ec09
Create data copy in case of dynamic sound channel.
2020-05-05 17:03:14 +02:00
akallabeth
af554b5a54
Use dedicated sound decoder thread.
2020-05-05 14:25:54 +02:00
Armin Novak
cb9e7fda32
Removed unused function.
2020-03-10 14:04:53 +01:00
Armin Novak
1fd51d9183
Fixed clang scanbuild warnings.
2020-03-04 09:17:35 +01:00
Martin Fleisz
3318d1574f
Fix possible NULL pointer access crash
2020-02-28 12:53:39 +01:00
Armin Novak
4eb4f58fbb
Updated CMake channel detection
...
* Now both, dynamic and static channel entries can be defined by
a single channel.
* Added better logging to distinguish between static and dynamic
channel messages.
2020-02-28 12:53:39 +01:00
Martin Fleisz
da354feed0
Add dynamic channel part for rdpsnd channel
2020-02-28 12:53:39 +01:00
Armin Novak
5e4603d0b7
Fix #5885 : Check for division by zero
2020-02-27 13:56:53 +01:00
Vic Lee
25eb6b6cdd
rdpsnd: implement buffer overrun detection.
2020-02-14 20:49:18 +08:00
Martin Fleisz
ebe0fc59b5
Merge pull request #5865 from akallabeth/write_cancelled_leak
...
Fix #5852 : handle CHANNEL_EVENT_WRITE_CANCELLED
2020-02-10 12:08:55 +01:00
Vic Lee
847fe0f919
rdpsnd/winmm: fix some memory issues.
2020-02-04 17:56:45 +08:00
Armin Novak
d2aef75004
Fix #5852 : handle CHANNEL_EVENT_WRITE_CANCELLED
...
When channels are cleaned up OpenHandle is most of the time
already 0. Ignore the argument checks for
CHANNEL_EVENT_WRITE_CANCELLED and CHANNEL_EVENT_WRITE_COMPLETE
only check where actually required (CHANNEL_EVENT_DATA_RECEIVED)
2020-01-29 08:52:25 +01:00
Martin Fleisz
706e32982e
rdpsnd: Add synchronization to winmm backend
2020-01-17 13:56:30 +01:00
Martin Fleisz
369c696b23
rdpsnd: Fix possible crash and deadlock in winmm backend
2020-01-16 10:23:17 +01:00
Armin Novak
e86849759a
Fixed waveOutClose, call waveOutReset first.
...
Signed-off-by: Armin Novak <armin.novak@thincast.com>
2020-01-08 18:25:08 +01:00
Armin Novak
f720ec5383
RDPSND device API refinements
...
* Added default format callback for rdpsnd backend to allow
different default input formats (different samplerates, ...)
* Made WINMM backend in flight packet limitation a compile time
option
* Fixed missing buffer copy in winmm backend
Signed-off-by: Armin Novak <armin.novak@thincast.com>
2020-01-08 17:14:09 +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
a98e153b9d
rdpsnd: Do not set output device on Catalina or later ( #5747 )
2020-01-03 13:31: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
6e6dfc3e2a
Removed rdpsnd client thread
...
The thread used to process audio data is not really required
and just produces overhead.
2019-12-05 11:40:56 +01:00
Martin Fleisz
71feb974ac
Merge pull request #5739 from akallabeth/improve_function_hiding
...
Improve function hiding
2019-12-02 11:31:35 +01:00
Armin Novak
7c243da6e1
Remove symbols exported by accident.
2019-12-02 10:57:31 +01:00
Armin Novak
65ebda20dd
Fix #5747 : Only open output device in rdpsnd for mac.
2019-11-25 08:27:57 +01:00
Armin Novak
72ca88f49c
Reformatted to new style
2019-11-07 10:53:54 +01:00
Armin Novak
75ed12f1f0
Fixed userdata pointer and CHANNEL_EVENT_WRITE_CANCELLED message.
2019-11-06 13:01:43 +01:00
Armin Novak
1bcb799560
Listen to CHANNEL_EVENT_WRITE_CANCELLED and emit if queue is cleared.
2019-11-06 13:01:43 +01:00
Armin Novak
1b78b59926
Fixed #4809 : Properly process CHANNEL_EVENT_WRITE_COMPLETE
2019-11-06 13:01: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
3ce1dc1972
Fix some warnings on mac os
2019-09-03 13:47:13 +02:00
Armin Novak
1b9e01509d
Refactored winmm backend
...
Using CALLBACK_FUNCTION again, but protect with semaphore to avoid closing
the device while there are still buffers to be played.
2019-09-03 15:11:18 +02:00
Armin Novak
208fbabfde
Only close local audio device if rdpsnd thread closes or output format changes.
...
Windows 7 and other older systems send one close PDU after another.
This distorts audio during setup and teardown of local sound devices.
2019-09-03 15:11:18 +02:00
Armin Novak
48f35972c8
Fixed limit check for wave confirm pdu timestamp.
2019-09-03 15:11:18 +02:00
Armin Novak
f93d625cde
Use GetTickCount64 instead of GetTickCountPrecise.
2019-09-02 15:46:36 +02:00
Armin Novak
12b0b9ea28
Do not use named events, they are global!
2019-09-02 15:28:31 +02:00
Armin Novak
40964301df
Use CALLBACK_EVENT for waveOutOpen to play synchronously.
2019-09-02 15:11:54 +02:00
kubistika
265e0848ed
rdpsnd: subsystems: Add proxy subsystem
2019-08-29 14:39:17 +02:00
kubistika
faa833f97a
rdpsnd: client: add rdpContext getter
2019-08-29 14:39:17 +02:00
Armin Novak
52af56d956
Added rdpsnd latency calculation.
2019-08-22 10:11:26 +02:00
Martin Fleisz
30c0127a29
Merge pull request #5510 from akallabeth/mac_realtime_sound
...
Mac realtime sound
2019-08-14 12:54:54 +02:00
Armin Novak
18e4245791
Added proper latency estimation for winmm sound backend.
2019-08-13 10:55:12 +02:00