This is originally to add audio support. Several fixes included:
authorzihao.jiang <zihao.jiang@yahoo.com>
Wed, 8 Apr 2015 18:13:52 +0000 (02:13 +0800)
committerzihao.jiang <zihao.jiang@yahoo.com>
Sun, 14 Jun 2015 13:45:52 +0000 (21:45 +0800)
commit8485d866d4a466cc9a882468ee7a9fa92fde2ef2
treeb53507c45f205d088355263922feabaf029afe0c
parent0278f7f4bac018f5b2bc86f1b3a6ebe7c7bd3354
This is originally to add audio support. Several fixes included:
1. Introduce message queue in shadow client. No longer use subsytem->MsgPipe->out to deliver message to clients.
We used to use subsytem->MsgPipe->out for messages which need to be sent to client. But it's not correct. Only one client would get the message if multiple client exists
This problem make the fix in PR #2643 incomplete.
Introduced reference count based solution to release resource taken by the message.
Also added APIs for client message delivery.
Also fixed msg pipe in subsystem to clean resource when destroyed.
2. Discard unused StopEvent in client. We actually use quit message instead.
3. Enhance disposal of channels.
Free context for remdesk and encomsp channels. The original fix only stop the threads, but doesn't release resource.
Dispose channels earlier. The channels are built on client->vcm. Disposing channels after client->vcm is closed cause unknown behavior.
Original fix is #2644
4. Start to add audio support.
15 files changed:
include/freerdp/server/shadow.h
server/shadow/CMakeLists.txt
server/shadow/X11/x11_shadow.c
server/shadow/shadow_audin.c [new file with mode: 0644]
server/shadow/shadow_audin.h [new file with mode: 0644]
server/shadow/shadow_channels.c
server/shadow/shadow_channels.h
server/shadow/shadow_client.c
server/shadow/shadow_encomsp.c
server/shadow/shadow_rdpsnd.c [new file with mode: 0644]
server/shadow/shadow_rdpsnd.h [new file with mode: 0644]
server/shadow/shadow_remdesk.c
server/shadow/shadow_server.c
server/shadow/shadow_subsystem.c
server/shadow/shadow_subsystem.h