[pulseaudio-discuss] paprefs port setting
Tanu Kaskinen
tanuk at iki.fi
Mon Oct 31 15:49:53 UTC 2016
On Mon, 2016-10-31 at 15:02 +0100, NicoHood wrote:
> Hye,
>
> I am currently actively using pulseaudio for streaming audio over
> network. I found RTP the most promesing method for me. However there is
> a problem I ran into which I'd like to solve. I've also prepared a
> possible solution.
>
> My goal is to stream music via RTP and paprefs. Quick setup on the
> sender side and quick setup on the receiver side if also pulse+paprefs
> is used. Now my receiver is a raspberry pi which uses kodi + alsa as
> pulse is too slow on it for some reason (general lag, even for local
> playback). But kodi also can playback an RTP stream directly:
>
> Create a file named pulse.strm with the content: rtp://@224.0.0.56:46400
> Now the problem is that the port always changes, as paprefs does not set
> any specific port. The module it uses is module-rtp-send:
> https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Modules/#index38h3
>
> I am wondering if you can set the default port for this module globally
> via config file. If not the only way to fix this issue is to provide a
> way for paprefs to use a fixed port. Due to the fact that the source
> port is always random and the pulse sink listens to all ports it would
> not matter much if the sender would always send with a fixed port. Using
> a fixed port is simple to patch and works for me:
>
> Just change line 537 of paprefs.cc to the following:
>
> changeSet.set(PA_GCONF_PATH_MODULES"/rtp-send/args1",
> Glib::ustring(loopbackEnabled ? "source=rtp.monitor loop=1 port=46400" :
> "source=rtp.monitor loop=0 port=46400"));
>
> Now paprefs creates a sender with the same port. You may want to use a
> different port, but basically that'd solve the problem. And existing
> setups would still work.
>
> Is there a way to get this fix applied? Or are there any other
> suggestions? FYI: the same also applies to vlc playback, not only kodi.
The first question comes to mind is why do we randomize the port in the
first place? Is it for security reasons or what? Given that the port is
selected from a pool of only 256 ports, the reason is probably not
really security-related. Maybe it's to make conflicts unlikely if two
computers in a network load module-rtp-send?
Ideally paprefs would let the user choose between a random port or a
manually selected one. Would you be willing to implement this? If not,
changing paprefs to just pick one port as you suggested would probably
still be an improvement over the status quo. The UI should indicate
what the port is, though.
paprefs should also detect the situation where the gconf key is still
set to the old value (i.e. no port in the module argument list) and
change it to the new value automatically.
--
Tanu
https://www.patreon.com/tanuk
More information about the pulseaudio-discuss
mailing list