[pulseaudio-discuss] [PATCH] add xrdp sink

Alexander E. Patrakov patrakov at gmail.com
Wed May 28 01:30:38 PDT 2014

28.05.2014 12:08, Jay Sorg wrote:
>>> If you want something quick-and-dirty, with all the AV-sync issues
>>> inherent in your custom protocol due to lack of timestamps or other
>>> latency indicators on the wire, and can wait until June 6, I can help
>>> you add ESD protocol support in XRDP. This way, not a single line of
>>> PulseAudio source code would need to be changed.
>> I have to correct myself. The ESD protocol does have server-internal latency
>> reported. It doesn't report latency between the server and the client, but
>> in our case it is determined solely by the amount of buffered data in the
>> socket buffers, which PulseAudio already knows.
>> So, it only remains to add support for three protocol elements (auth,
>> playing stream, reporting latency) inside xrdp, which should be easy, as you
>> have already done 80% of the work by implementing your custom protocol.
> I really want something that is clean, efficient and optimal in design.

Good :) but designing clean and efficient things takes time.

> The source and sink for xrdp now really really work well.  They also
> look good.  You can run pavucontrol and see that, yes, the xrdp sink
> is running.

If they work well, then the ESD-protocol sink would also work well (even 
though it is discouraged because of the deficient protocol), because it 
is based on essentially the same protocol. If it doesn't suspend 
properly, this is a bug in PulseAudio that needs to be fixed anyway.

> I don't want a TCP or UDP connection for each session or a confusing
> sink or source name.

module-esound-sink works with unix-domain sockets, too, and allows 
overriding the sink name. The problem is that there is no 
module-esound-source, but it is solvable in theory (although I am not 
sure if module-esound-source would be accepted if one submits it).

> There can be xrdp servers with 50 users.  That's 50 pulseaudio daemon
> on one machine.
> I'll take your advise but I hope you can understand my requirements.
> I already tied so many recommendations(from pa) that just didn't cut it.

Sorry for conflicting with the previous advice.

> One thing that I really think you guys should do is allow out of tree
> modules build support.  We would not need this discussion if you had a
> clean and stable API like so many other projects.

That would be nice indeed, but unfortunately at the moment there is no 
way to build out-of-tree modules.

Just as a side note (not as a proposal): a different solution is 
employed by ALSA. They also don't expose the full possibly-unstable 
plugin API, but have an "external plugin SDK" with a stable API that 
allows to build limited-functionality plugins that do external I/O, and 
external filters.

Alexander E. Patrakov

More information about the pulseaudio-discuss mailing list