neutrinolabs / pipewire-module-xrdp Goto Github PK
View Code? Open in Web Editor NEWLicense: MIT License
License: MIT License
Linux Mint using:
cat /etc/upstream-release/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=22.04
DISTRIB_CODENAME=jammy
DISTRIB_DESCRIPTION="Ubuntu Jammy Jellyfish"
after ./configure:
checking for libpipewire-0.3 >= 0.3.58... no
configure: error: please install libpipewire-0.3-dev or pipewire-devel
But libpipewire-0.3 is already installed, for 22.04 it is version 0.3.48-1ubuntu3.
After install:
$ pw-cli load-module libpipewire-module-xrdp-pipewire
Error: "Could not load module"
Nothing else. No idea how to proceed.
While discussing packaging this repo for Debian at https://alioth-lists.debian.net/pipermail/pkg-utopia-maintainers/2024-March/034881.html, there was some feedback from Dylan (maintainer of the pipewire package in Debian):
Some comments about the upstream
load_pw_modules.sh
It refers to the Debian wiki which is nice :-) but not sure this is the best reference for pipewire. For example, it uses configuration that doesn't exist, I was asked by upstream to update our wiki about that :-) -- https://wiki.debian.org/PipeWire?action=diff&rev2=49&rev1=48
It is an upstream bug, but I guess they need to refresh their
load_pw_modules.sh
.
The diff mentioned above is about the removal of default.clock.force-quantum
as « force-quantum doesn't exist in context.properties » according to Dylan.
I suppose it wouldn't hurt to run the script load_pw_modules.sh
in a console, there should be one (or more) error messages to hint at what needs to be updated.
Ubuntu 22.04
./configure
checking for libpipewire-0.3 >= 0.3.58... no
configure: error: please install libpipewire-0.3-dev or pipewire-devel
But it has 0.3.48 only =(
Could you fix it, or can I just remove this line checking maybe?
Installed this on a Raspberry Pi4 bookworm. Audio over HDMI was fine while logged in directly to it, but over xrdp was getting non stop crackling like it was sending me morse code.
Solved issue by making change to "/usr/share/pipewire/pipewire.conf"
default.clock.allowed-rates = [ 44100 48000 ]
Plenty of posts on the net with crackling issues for pipewire, but figured Id make one here since it was specific to pipewire over xrdp. Maybe save someone an afternoon of messing with conf settings :)
Small update. File should be copied over to /etc/pipewire/pipewire.conf as the /usr/share version will be overwritten when pipewire gets an update
Anyone here familiar with building external modules, and knowing what should be the "correct" ldflags for a module?
At the moment, we have those ldflags in use: -module -avoid-version
, cf.:
pipewire-module-xrdp/src/Makefile.am
Line 17 in e9c6c05
I triggers some warnings from the Debian packaging tooling, since the module is not linked against libpipewire-0.3
. However, those warnings can very well be false positive.
Still, I'm curious, so I tried to build with ldflags that seem more correct to me: $(PW_LIBS) $(SPA_LIBS) -avoid-version
. It removed the warnings, and everything still works.
Now: I'm at a loss with dynamic linking, so I really have no clue about the difference between those two approaches, and what is correct.
For extra background: it seems that the ldflags -module -avoid-version
come from an old pulseaudio doc from 2008: https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/Developer/Modules/, section "Update on July 30 2008". I suspect those flags are used only due to copy/paste from the pulseaudio-module-xrdp, and not for a good reason.
Maybe @Hiero32 can shed some lights on the matter?
Thanks and sorry for being picky
Hi,
I used to use the old pulseaudio-module-xrdp
and it was cumbersome to compile, needing to run various scripts to extract the required headers and run some scripts, etc.
Now this new pipewire-module-xrdp
has a much more streamlined compilation process, needing only some build dependencies and no extra steps from the common Debian package building tools (./bootstrap
is not even required, as dpkg-buildpackage
runs autoreconf
by itself before the usual ./configure
, make
and make install
). Moreover, more and more desktops move away from pulseaudio
to pipewire
.
So, my question is, do you plan to include this module into Debian ? Or even better, include it in the main xrdp
source code ? This would be even better, since package maintainers could then create xrdp
packages with audio redirection working out-of-the-box.
If you plan to ship it separated from xrdp
main source code, I can provide the debian/
directory I wrote (all you'll have to do is change my e-mail address and maybe check and fix the copyright
file).
Regards,
--
Raphaël
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.