[pulseaudio-discuss] [PATCH] add xrdp sink
Alexander E. Patrakov
patrakov at gmail.com
Fri May 30 07:54:56 PDT 2014
30.05.2014 18:43, Tanu Kaskinen пишет:
> On Thu, 2014-05-29 at 16:22 -0700, Jay Sorg wrote:
>> So we're still left to make a decision.
>>
>> 1 - xrdp sink and source as they are except make Alexander's
>> changes(everything works).
>
> Is there an xrdp source already written? This patch only implements a
> sink.
Yes, there is.
https://github.com/neutrinolabs/xrdp/blob/devel/sesman/chansrv/pulse/module-xrdp-source.c
>
>> 2 - esound sink and source as Alexander suggests(source not complete).
>> 3 - RTP over unix domain socket(module-rtp-send not complete as
>> Laurentiu Nicola says).
>>
>> I'm ok with 2 or 3, but I want to make sure it's the best decision
>> long term. I think there will be a lot of users using PA this way.
>
> I don't know the details of any of the three protocols (custom xrdp,
> esound or rtp), so I don't have any opinions like "you really should use
> X" or "you really shouldn't use Y".
I have a draft mail on this topic, will finish and send it out later
today. It would help (to shorten the e-mail) if Jay Sorg confirms that
we indeed want to use the client sound card as the clock source.
>
> If the esound protocol "deficiencies" (that I'm not familiar with) don't
> really matter in case of XRDP, and there's not a lot of mandatory extra
> cruft in the protocol that isn't necessary with XRDP, then reusing the
> esound protocol sounds like a good idea.
I agree here. Also, module-esound-source would be useful anyway even
without any relation to xrdp, so that's a cheap experiment that would
leave no cruft in PulseAudio even if it fails for xrdp.
> RTP is "standard", which makes it attractive, but it's not clear to me
> how much practical benefit it would have. It looks like the existing RTP
> modules are not very near to a working solution for XRDP (for starters,
> they are designed to be attached to some other sink/source, so the
> timing is driven by something else than the other end of the RTP
> stream).
For me, esound is "standard" in the same sense. There are both
advantages and disadvantages in RTP as compared to esound, as well as
mere differences.
> Hmm, it seems that the sink clock source in the patch is the wall clock.
> This seems to defeat the whole point of a custom sink, because you could
> as well load module-null-sink and record from its monitor in XRDP using
> libpulse. I thought the reason why a special XRDP sink is needed is that
> we want to use the client sound card as the clock source, thus avoiding
> the need to resample between two clock domains.
>
Indeed, RTP, in any form, unconditionally forces one to use the local
clock source and add an adaptive resampler on the receiving end. A
rather complex solution, I'd say.
But I don't agree that the ability to use the existing RTP modules would
defeat the whole point of the patch. Nice sink names in pavucontrol are
definitely a benefit, and that's why it is definitely a good idea,
independently from any xrdp-related stuff, to implement a real RTP sink
and source, not needing the null-sink trickery.
--
Alexander E. Patrakov
More information about the pulseaudio-discuss
mailing list