pipewire issueshttps://gitlab.freedesktop.org/pipewire/pipewire/-/issues2024-03-28T21:36:42Zhttps://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3938pipewire failure to setup 5.1 with Realtek ALC897 Analog2024-03-28T21:36:42ZPeter Saundersonpipewire failure to setup 5.1 with Realtek ALC897 AnalogUbuntu 23.10 ASUS PRIME B760-PLUS D4 LGA1700 ATX Motherboard
This motherboard is supposed to have an option for 5.1 surround sound but all the seems to work is stereo.
0. Audio/Sink alsa_output.pci-0000_00_1f.3.iec958-stereo.7
pavu...Ubuntu 23.10 ASUS PRIME B760-PLUS D4 LGA1700 ATX Motherboard
This motherboard is supposed to have an option for 5.1 surround sound but all the seems to work is stereo.
0. Audio/Sink alsa_output.pci-0000_00_1f.3.iec958-stereo.7
pavucontrol shows the HDMI surround sound, but I am using Analogue and surround sound does not show up in the list.
Any idea about how to debug this? BIOS shows only an option to enable HDA. Previous PC used "Generic" snd_hda_intel.. perhaps I should try generic rather than ALC897 Analog??
[pw-info-superu.txt](/uploads/9ab6f0f2104e753f562e74bfd6b66963/pw-info-superu.txt) [alsa-info-log-superu.txt](/uploads/7ae7c62da408708a184b9a375de3fa06/alsa-info-log-superu.txt)https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3931channelmix.disable not working?2024-03-28T21:07:31ZDavid Boulanger Latourchannelmix.disable not working?Not sure if I am confused here but I'd expect "channelmix.disable" to allow disabling channel mixing completely.
Yet adding `channelmix.disable = true` to `client.conf` results in a failure:
```
[I][77863.804503] spa.audioconvert | [ ...Not sure if I am confused here but I'd expect "channelmix.disable" to allow disabling channel mixing completely.
Yet adding `channelmix.disable = true` to `client.conf` results in a failure:
```
[I][77863.804503] spa.audioconvert | [ audioconvert.c: 851 parse_prop_params()] key:'channelmix.disable' val:'true'
...
[D][77863.839207] spa.audioadapter | [ audioadapter.c: 377 negotiate_buffers()] 0x5573370ecc48: n_buffers:2
[D][77863.839211] spa.audioconvert | [ audioconvert.c: 1468 setup_convert()] 0x5573370ed148: setup:0 in_format:1 out_format:1
[I][77863.839215] spa.audioconvert | [ audioconvert.c: 1132 setup_in_convert()] 0x5573370ed148: Spa:Enum:AudioFormat:F32P/2@48000->Spa:Enum:AudioFormat:F32P/2@48000
[D][77863.839219] spa.audioconvert | [ audioconvert.c: 1151 setup_in_convert()] 0x5573370ed148: channel 0 (0) -> 0 (FL -> FL)
[D][77863.839222] spa.audioconvert | [ audioconvert.c: 1151 setup_in_convert()] 0x5573370ed148: channel 1 (1) -> 1 (FR -> FR)
[D][77863.839227] spa.audioconvert | [ audioconvert.c: 1173 setup_in_convert()] 0x5573370ed148: got converter features 0007cbdb:00000000 passthrough:1 remap:0 conv_copy32d_c
[I][77863.839231] spa.audioconvert | [ audioconvert.c: 1295 setup_channelmix()] in FL FR (0000000000000018)
[I][77863.839235] spa.audioconvert | [ audioconvert.c: 1297 setup_channelmix()] out MONO (0000000000000004)
[I][77863.839238] spa.audioconvert | [ audioconvert.c: 1300 setup_channelmix()] 0x5573370ed148: Spa:Enum:AudioFormat:F32P/2@48000->Spa:Enum:AudioFormat:F32P/1@48000 00000018:00000004
[E][77863.839243] spa.audioadapter | [ audioadapter.c: 870 impl_node_send_command()] 0x5573370ecc48: can't send command 2: Operation not permitted
[E][77863.839246] pw.node | [ impl-node.c: 281 start_node()] (ALSA Capture-0) start node error -1: Operation not permitted
[W][77863.839252] mod.client-node | [ remote-node.c: 526 client_node_command()] node 0x55733710b5b0: start failed
```
Is there a way to actually disable channel mixing? I'm trying to avoid all these volumes applied which I do not want.https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3936gstpipewiredeviceprovider does not remove cameras when unplugged2024-03-28T20:51:04ZRobert Madergstpipewiredeviceprovider does not remove cameras when unpluggedI'm not sure if this a regression - and whether it could be a Wireplumber issue - however on current `master` for both projects hotpluggable cameras / nodes stick around. So launching e.g. Snapshot (Gnome Camera) or Cheese show the switc...I'm not sure if this a regression - and whether it could be a Wireplumber issue - however on current `master` for both projects hotpluggable cameras / nodes stick around. So launching e.g. Snapshot (Gnome Camera) or Cheese show the switch camera buttons and fail when trying to do so.
STR:
- plug in USB camera
- unplug it again
- run `gst-device-monitor-1.0 Video/Source`
- this can repeated multiple times herehttps://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3937impl-node: The CrewChief app (and probably others) started having a lot of cr...2024-03-28T19:11:35ZIvo Ivanovimpl-node: The CrewChief app (and probably others) started having a lot of crackling and distortion since Pipewire 0.3.72+.- PipeWire version (`pipewire --version`): pipewire compiled and linked with libpipewire 1.0.4
- Distribution and distribution version (`PRETTY_NAME` from `/etc/os-release`): Manjaro Linux (Arch Linux)
- Desktop Environment: XFCE
- Kerne...- PipeWire version (`pipewire --version`): pipewire compiled and linked with libpipewire 1.0.4
- Distribution and distribution version (`PRETTY_NAME` from `/etc/os-release`): Manjaro Linux (Arch Linux)
- Desktop Environment: XFCE
- Kernel version (`uname -r`): 6.8.1-273-tkg-eevdf
## Description of Problem:
CrewChief (Wine/Proton) is an utility that emulates the speech of a race engineer (or crew chief) in various sim racing games. It reads game telemetry through shared memory or network packets, etc, so speech is context sensitive (pre-recorded, not synthesized).
The problem usually happens after 2-3 minutes of game play, leaving the "crew chief" say different things. It usually appears as a 1-2 sec. "shhhhhhhh" sound at words ending with "sh", etc. It seems like a prolonged word end, but very distorted and with a lot of crackling.
I couldn't find the time to do a regression test till now, but after Wireplumber 0.5.0 couldn't resolve some symbols with Pipewire 0.3.71, realized it was time to report this, and try to help resolve it.
After doing a bisect, found out that commit f085a1fa49fac5b28da34e94a59944548bdb60e0 was responsible for this. To confirm it is the only commit causing the issue, compiled pipewire as further as the commit can be cleanly reverted (de7883024b657a46f855318147d54ebfb4d49870), and the app sound played without issues.
Seeing as there are a lot of changes made to the impl-node.c "node_ready" function since 0.3.71, and the issue is still present, there must be something introduced by that very first commit, that persists throughout all the changes.
At first glance the condition of the "if" statement has been changed from "if (SPA_UNLIKELY(state->pending > 0))" to "if (SPA_UNLIKELY(a->status != PW_NODE_ACTIVATION_FINISHED))" and the entire "else" block has been removed, which changes the logic somewhat. Also the "node_trigger(node)" call has been omitted.
I plan to do some testing with "node_trigger" or it's current replacement, when time permits.
Also I feel there are some pops and cracks in game sound (Wine mostly) since 0.3.72. This is purely subjective of course.
## How Reproducible:
It's always reproducible, but takes some time ~2-3 minutes for the issue to appear.
### Steps to Reproduce:
1. Install CrewChief in a Wine prefix (needs dotnet48).
2. Install a racing game that is supported - Automobilista 2, rFactor 2, etc.
3. Start the CrewChief app followed by the game.
4. Start playing the game, doing some laps and letting the "crew chief" say various things.
### Actual Results:
After 2-3 minutes the CrewChief audio becomes distorted with a lot of crackling.
### Expected Results:
The CrewChief audio plays without distortion or crackling through the entire game session.
# Additional Info (as attachments):
- `pw-dump > pw-dump.log`: [pw-dump.log](/uploads/71ff8d09be0d921486521838b69ab1aa/pw-dump.log)
- pw-top: ![pw-top](/uploads/0d335094242915964fea03d72aece213/pw-top.png)https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3735SOFA virtual surround is amazing and you should try it!!2024-03-28T17:05:57ZpallasweptSOFA virtual surround is amazing and you should try it!!I was asked a question in another issue and I felt like this deserved a post of its own. If anyone's on reddit or whatever, please feel free to re-post this. I want to spread the word. The people who did this deserve recognition.
> May ...I was asked a question in another issue and I felt like this deserved a post of its own. If anyone's on reddit or whatever, please feel free to re-post this. I want to spread the word. The people who did this deserve recognition.
> May I ask have you compared sofa filter vs atmos, or any hesuvi file
This is a long post because the short version is that SOFA is absolutely amazing and I want to encourage people as much as I possibly can, to try it, so they can enjoy it like I am, and so they can appreciate the people who gave it to us like I do.
#### Perspective...
Before I answer this I'm gonna say, I'm a bit of an audiophile snob and strongly opinionated about audio quality. It's not a status or fashion thing or anything, just a consequence of circumstance. Like, I'm a fish snob, because as a kid, I grew up around sailors, so when I ate a fish, we caught it, and we took this live fish and beheaded and gutted and scaled it right there on the gunwales, and took it into the galley and cooked it and then we ate it while we fished for more fish. Every fish I ate was alive 10 minutes ago. So I got used to fresh fish and became a fish snob. It was the same for me with music.
I started out playing musical instruments at a very young age (3 - mostly classical and jazz and blues guitar, and a little drumming) and was really into physics and electronics, and it all blended together and grew into a strong case of audiophilia.
Later on I used to run a small recording studio, as well as a substantial home studio worth more than the house it was in, I've done professional PA setups for large concerts (and conferences), high-end car audio systems professionally (a side gig but getting paid nonetheless).... Before you could buy headphone amps, I built my own based on the schematics for the amp from one of my mixing desks, it was as big as a cassette Walkman and had a battery life of just over an hour or so because this was long before lithium or rechargeable batteries, and I used it to drive full-size over-ear studio monitor headphones on the move, and people used to stare at me because back then, people didn't do that (although it's normal now, wearing beats by dre would make you a freak back then) my portable DAP was the size of a small backpack, literally, I carried a backpack so I could play music on the move.
When I set up home hifi systems for myself or friends (they always ask me to do it) I take room responses and measure speaker distances to calibrate the speakers and tune everything perfectly, I generally use 5.1 (because practically nothing is a 7.1 or more source yet) but I don't ever use a single subwoofer, because I don't subscribe to the notion that low frequency audio is omnidirectional (fight me, Dolby! :laughing: ), so all my sub channels are split into two subwoofers, so it's 5.2, 6.2 or 7.2 in all my gear, which usually means active amplification since most amps don't support that, and I don't do satellite speakers, all my drivers are full-range because I don't believe that just because it's on the side or behind me means I don't need to hear it all. Again this often amounts to multiple amps or active amped speakers.
I always tell all my friends to keep their speakers off the walls and off of cabinets and tabletops and away from corners and fill empty wall space because it all sounds cruddy, all my headphones are customised with special pads and tips and cables and all manner of stuff - although I don't go in for the stupid money grabbers like gold plated digital connectors (lol), or balanced cables for 1m long cable runs, that do nothing for quality at all, I do braid and solder and sheath my own cables to get the lengths correct for my body and the device, to avoid cable microphonics, and avoid ear fatigue...
....I'm an audio snob. So take my opinions from that perspective. You may think of this as over-cooked snobbery from some idiot who takes it way too seriously, or maybe you'll think this adds more weight to what I'm saying, maybe a little of both... that's up to you (and I take no offense either way), but I feel like understanding my perspective is important here, because I'll be rather blunt about it (although I removed expletives hehehe)
#### Observations:
**Contenders:**
Yep. I tried both atmos and hesuvi some time ago, a few times each over time, HeSuVi moreso, most recently a couple of years ago, when I was on Windows, and thought it was completely average at best, like all the other virtual surround solutions I'd ever heard. I was staunchly anti-virtual-surround, always had been, and try as I might - and I did try, because I believe in the theory that good quality virtual surround is 100% possible, I'd never heard anything that changed my mind. Even most true surround systems didn't do much for me, I mostly preferred good quality stereo (as in, two channel audio, but I didn't mind multiple speaker approaches to 2 channel, like quadraphonic speakers playing stereophonic signals) . I mentioned how I set up my surround systems but a great deal of the time they are only playing stereo, just three or four speakers per side.
The only superior solution I'd heard for virtual surround is in the battlefield game series starting from BF4 and the same tech in early BF1 (they broke it a little in later patches of BF1 and BFV was just ordinary), when they had Dolby engineers come on board at EA and they do a 360x360 degree practically infinite resolution sphere (pretty sure it's degrees measured in 32bit floating point, so... a lot of fractions of a degree (actually the math is easy 360/0xFFFFFFFF\*2= 0.00000016763806346982 degree resolution)) of audio, and position every sound in the game according to the location of the model in the game, so it's like infinite speakers. That really blew me away, you could stand next to a static audio source like a fire in a barrel, and turn your in-game character around in circles and look up and down and hear very clearly exactly where the sound was., and walk around with your eyes closed and tell how far you'd walked... it sounded real AF. They did a great job. There are a few similar implementations in games these days, because they can use the position of the in-game object as the source of the audio and it's all very precisely defined, so it was all about their algorithm for positioning, and naturally, Dolby are gonna kick some butt with that kind of thing. BF4 was ground-breaking. Not only in positioning but in occlusion and reflection (like the echoes of footsteps on hard floors indoors, or the sound of footsteps through a wooden wall vs through glass, etc)
**SOFA:**
But otherwise, I'd never heard virtual surround worth a damn. HeSuVi really improved a lot over the years (it's been around a LONG time now!) and to their credit, they've really got that going pretty well. No doubt, that takes second place. But it became a distant second when I read about the SOFA filter in pipewire, and thought, meh, I'll give it a try.... I'm always open to possibilities.... and I was **_b l o w n a w a y_** . Mind you, I spend an entire month finding the most correct model of my ears that I could out of the tens (hundreds?) of thousands of models freely available online - and **the model makes a BIG difference** (and I intend to make use of a tool that will take a 3D scan of your ear and make a model from that, when I have the time to get the equipment to take the scan) and two full days getting the speaker positions just right (which turned out to be _nowhere_ near where I expected). But the results are just astounding. I was so amazed, I was like "holy cow, people need to hear this" but it's kinda like VRR monitors, or high refresh rate.... you can't demonstrate it without actually looking at the real thing, and you can't explain this without actually hearing it.... so I played it to a tech savvy friend to be like "how amazing is this", intending to show off the technology, and played helicopter sounds flying around him... and he's a war vet and I gave him a PTSD attack I kid you not. I'm _not_ proud of that, it was a stupid accident and an absent-minded foolish choice for a demo sound, I'm a total frickin' idiot and I regret it terribly.... but it's a strong illustration of how real it sounds. He lasted about 3 or 4 seconds before he literally threw the headphones off his head and said, and I quote, "if this S### gets any better people are gonna end up killing themselves in movie theatres". And they were tuned for my ears, not his, so he wasn't even getting the full experience. With his hearing loss from artillery, not even close to the full experience. And his reaction was that strong.
Now I use it everywhere. My entire audio chain is surround, now. When I started using pipewire I was locked to stereo everywhere, unless it was a surround source playing to a surround speaker rig. If there was stereo anywhere in the chain, it was all mixed down to stereo at the source and treated as stereo throughout the entire chain. There are even posts on this issues log where you can see me talking about troubles I had locking it down that way. Now I upmix everything (a simple copy, no processing/filtering/delays/etc) because SOFA spreads it so perfectly that it doesn't distort the quality of the audio, which is a big deal to me as a musician and music lover. Usually virtual surround of upmixed music sounds like trash, the frequency response is all messed up and you lose a bunch of sound and it boosts certain other sounds... Hi-hats are super prone to distortion, guitars lose their tone, orchestras lose their depth and dynamics (that's one of the strongest ill-effects I find).... SOFA doesn't do any of that. You just feel like you're literally sitting in the middle of the band or orchestra sitting in a circle around you facing inward, like a reversed concert stage. I have a 5.1 recording of a concert I attended and it literally sounds like being there, it's amazing.
The only thing it's missing is a good tool to mix it with head tracking - and such tools DO exist, but they're a bit hard to set up, so I haven't done that yet, but I'm going to do it. Because the positioning is so strong that you feel like you can't move your head at all, or the whole 'world' in audio moves with your head and it's just bizarre to the brain.
But it's just amazing, there's a mind-blowing number of models available - which is a blessing and a curse, because you DO need to find the right model for your ears/head, to truly benefit from it, and it's like finding a needle in a haystack.... but pipewire's implementation makes it so easy to get it _just right_. Once you find the model, you just have to get the speaker positions _just so_, and it's literally just punch in the angles, really simple stuff.
I really want to encourage people to put in the effort - and it is a fairly considerable effort to be honest - to try it out, so they can experience it, and so they can appreciate thee amazing work that all the people involved have done - from uni nerds doing doctoral theses and publishing their models, to programmer nerds at pipewire making it a thing we can all experience, these people have done something amazing and I want everyone to know about it and to feel the enjoyment of it and to feel the appreciation for these people. I feel like nobody is talking about it and it's as if I'm the only person in the world who has ever eaten chocolate, I just want to give everyone a block of it and be like DUDE HOW AMAZING IS THIS?!
To quote my build instructions for my PC, just me thinking out loud to myself in a commented-out line
```plaintext
# These people amaze me
```
And I want everyone to know about it. Pipewire+SOFA is the absolute duck's nuts.https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3932Segfault in Nheko with gstreamer v1.242024-03-28T15:08:31ZReilly BroganSegfault in Nheko with gstreamer v1.24- PipeWire version (`pipewire --version`): v1.0.4 w/ cherry-picked patches AND master commit 96fb63dfa1894801c06d898bd007e4d92088a882
- Distribution and distribution version (`PRETTY_NAME` from `/etc/os-release`): Solus
- Desktop Environ...- PipeWire version (`pipewire --version`): v1.0.4 w/ cherry-picked patches AND master commit 96fb63dfa1894801c06d898bd007e4d92088a882
- Distribution and distribution version (`PRETTY_NAME` from `/etc/os-release`): Solus
- Desktop Environment: Plasma Wayland
- Kernel version (`uname -r`): 6.8.1
## Description of Problem:
We backported the Gstreamer v1.24 DMA_DRM patches to v1.0.4 (for GNOME 46) and nheko started segfaulting on launch. We tested pipewire master commit 96fb63dfa1894801c06d898bd007e4d92088a882 as well which also segfaults. On git master we bisected it to f1b75fc6f803f866d2ed0f7d1366f56ef96f0610 (which was an obvious result as it was one of our backported patches).
## How Reproducible:
Completely, happens on every launch.
### Steps to Reproduce:
- Have gstreamer v1.24.1 (v1.24.0 untested)
- Have pipewire git master or v1.0.4 with backported patches
- Launch nheko
### Actual Results:
```
#0 __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>) at pthread_kill.c:44
#1 __pthread_kill_internal (signo=6, threadid=<optimized out>) at pthread_kill.c:78
#2 __GI___pthread_kill (threadid=<optimized out>, signo=signo@entry=6) at pthread_kill.c:89
#3 0x00007ff8e07e2256 in __GI_raise (sig=6) at ../sysdeps/posix/raise.c:26
#4 0x00005635a8489916 in stacktraceHandler(int) ()
#5 0x00007ff8e07e2300 in <signal handler called> () at /usr/lib/glibc-hwcaps/x86-64-v3/libc.so.6
#6 0x00007ff8bb067534 in handle_dmabuf_prop
(prop=0x5635aa12fe68, prop_modifier=0x5635aa12feb8, res=0x7ff82800b9c0 [GstCaps])
at ../src/gst/gstpipewireformat.c:908
#7 0x00007ff8bb068166 in gst_caps_from_format (format=0x5635aa12fe28) at ../src/gst/gstpipewireformat.c:1134
#8 0x00007ff8bb077473 in node_event_param
(data=0x7ff828002da8, seq=1073741902, id=3, index=8, next=9, param=0x5635aa12fe28)
at ../src/gst/gstpipewiredeviceprovider.c:427
#9 0x00007ff8b8090542 in node_demarshal_param (data=0x7ff828002d30, msg=0x5635aa12dda8)
at ../src/modules/module-protocol-native/protocol-native.c:1216
#10 0x00007ff8b808140d in process_remote (impl=0x5635aa12bbb0) at ../src/modules/module-protocol-native.c:1063
#11 0x00007ff8b8081671 in on_remote_data (data=0x5635aa12bbb0, fd=59, mask=1)
at ../src/modules/module-protocol-native.c:1097
#12 0x00007ff8bb0347e0 in source_io_func (source=0x5635aa12de70) at ../spa/plugins/support/loop.c:522
#13 0x00007ff8bb034704 in loop_iterate (object=0x5635aa11ee48, timeout=-1) at ../spa/plugins/support/loop.c:506
#14 0x00007ff8b9cc9416 in do_loop (user_data=0x5635a9dab770) at ../src/pipewire/thread-loop.c:295
#15 0x00007ff8e083727e in start_thread (arg=<optimized out>) at pthread_create.c:447
#16 0x00007ff8e08be0cc in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
```
### Expected Results:
No crashhttps://gitlab.freedesktop.org/pipewire/pipewire/-/issues/2870DaVinci Resolve No Microphone Audio with PipeWire-ALSA2024-03-28T11:49:04ZLUBEDaVinci Resolve No Microphone Audio with PipeWire-ALSA- PipeWire version: 0.3.61
- Distribution and distribution version: Arch Linux
- Desktop Environment: KDE Plasma
- Kernel version: 6.0.7-x64v2-rt14-xanmod1-1-rt
## Description of Problem:
DaVinci Resolve is not picking up Any Audio from...- PipeWire version: 0.3.61
- Distribution and distribution version: Arch Linux
- Desktop Environment: KDE Plasma
- Kernel version: 6.0.7-x64v2-rt14-xanmod1-1-rt
## Description of Problem:
DaVinci Resolve is not picking up Any Audio from the Pipewire-ALSA Package [as seen here](https://i.imgur.com/seBZ8Ux.png). If I connect a VU Meter through Carla to the Monitor it shows that Audio is indeed going through [as seen here](https://i.imgur.com/ljhp9ZZ.png). This issue doesn't happen with PulseAudio-ALSA tho, but PulseAudio-ALSA crackels all the time.
### Steps to Reproduce:
1. Install Pipewire-ALSA
2. Install DaVinci Resolve
3. Try to record your Mic in the Fairlight Section of Resolve
### Actual Results:
No Audio is being recorded.
### Expected Results:
Successfull recording of my mic
# Additional Info:
I am running resolve with the Environment Variable `PIPEWIRE_ALSA='{ alsa.buffer-bytes=40960 }'`https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3883Distorted audio when mis-matched devices joined to the same virtual sink2024-03-28T03:31:38ZKirin van der VeerDistorted audio when mis-matched devices joined to the same virtual sinkI created a virtual sink for simultaneous output of audio to usb headphones and a pci audio card in the manner described on the ArchLinux wiki for "Simultaneous output to transient devices" [here](https://wiki.archlinux.org/title/WirePlu...I created a virtual sink for simultaneous output of audio to usb headphones and a pci audio card in the manner described on the ArchLinux wiki for "Simultaneous output to transient devices" [here](https://wiki.archlinux.org/title/WirePlumber#Simultaneous_output_to_transient_devices).
When the headphones are linked to the virtual sink with any number of devices that share the same S16LE format it works perfectly.
However as soon as a pci card with the S32LE format or a USB sound output device with the S24LE format is linked then the quality of output to any of the S16LE devices becomes very poor, normally for a few seconds after the link but then again at random intervals for perhaps 10 seconds out of every 60 seconds of sound output thereafter.
I assumed that perhaps it was because the virtual sink was set to the F32P format, however it made no difference when I forced the virtual sink to be created in the S16LE format in order to match the headphones.
Interestingly the pci card with the S32LE format works perfectly with no crackling during every test, regardless of what other devices are linked to the virtual sink alongside it.
This issue only appears for some applications, most noticeably for anything running via Wine, but also Discord which is a "native" electron app.
I've attached a pw-dump from a correctly working config (good-sound.txt) and one where a single channel is linked to the pci card (bad-sound.txt).
The diff between the dump files is small and when I had a look it the only thing that caught my eye was this:
```
> "api.alsa.headroom": 0,
4536a4538,4539
> "api.alsa.period-num": 32,
> "api.alsa.period-size": 1024,
```
Could it be one of the alsa configs above that is causing the problem?
I am running libwireplumber 0.4.17 and libpipewire 1.0.2 (Included by default in Ubuntu 24.04).
I am running a completely vanilla config with no lua scripts (other than the virtual sink created as per the referenced Wiki page).
I've attached a visual representation of the links using qpwgraph to make it easier to see what I'm talking about.
I've also attached an mp3 file of the good and bad configs so you can hear the type of distortion. Note that towards the end of the "bad" recording that it starts to clear up. Typically it will then output good sound for around 30-60 seconds before reverting to the distortion.
Again, to be clear I can listen to flawless audio on any of my devices for hours on end. As long as I don't link them to the same virtual sink.https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3920Proposed implementation on how to configure the BAP Broadcast Source from Pip...2024-03-27T18:09:02ZsilviubarbulescuProposed implementation on how to configure the BAP Broadcast Source from PipeWireHi, we would like to add support in PipeWire to configure the BAP Broadcast Source.
The implementation we propose is:
In WirePlumber Bluetooth configuration under monitor.bluez.properties we add the property
“bluez5.bcast_source.confi...Hi, we would like to add support in PipeWire to configure the BAP Broadcast Source.
The implementation we propose is:
In WirePlumber Bluetooth configuration under monitor.bluez.properties we add the property
“bluez5.bcast_source.config” which will define the BISes configuration.
Example:
```
bluez5.bcast_source.config = [
{
"broadcast_code" : [1, 2, 104, 5, 83, 241, 65, 90, 162, 101, 187, 175, 198, 234, 3, 184],
"presentation_delay" : 40000,
"bis": [
{
"codec_capability" : [2, 1, 3, 2, 2, 1, 3, 4, 40, 0, 5, 3, 1, 0, 0, 0],
"qos" : {
"sync_factor" : 1,
....
},
"metadata" : [3, 2, 2, 0]
}
]
}
]
```
In BlueZ after the broadcast source endpoint is registered, an endpoint is created on D-Bus. To configure the BISes of the broadcast source SetConfiguration with information like codec capabilities, metadata, qos, etc.. must be called on this endpoint. Each call represents the configuration of a new BIS.
When the endpoint is detected (over DBus) by Pipewire and it has a broadcast sink UUID, we will start calling se “SetConfiguration” with the data read from the configuration file (or default configuration)
After each SetConfiguration BlueZ will create a transport with the data from SetConfiguration that will be used by PipeWire.
Thanks for the support.https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3927Sofa config not working.2024-03-27T17:18:05ZJustCauseWhyNotSofa config not working.I'm getting an error when trying to run [this sofa config file](https://gist.github.com/JustCauseWhyNot/2c1c8624ed4fbde8fb6369437310d0a4).
<details> Despite having built pipewire with sofa support. Here's my [build.log](https://gist.gith...I'm getting an error when trying to run [this sofa config file](https://gist.github.com/JustCauseWhyNot/2c1c8624ed4fbde8fb6369437310d0a4).
<details> Despite having built pipewire with sofa support. Here's my [build.log](https://gist.github.com/JustCauseWhyNot/263811f0432b21ca7e18a8ca8029868c). It seems to indicate to me that sofa support should be working, but its not atm. Idk if I messed up the config file. Any help would be greatly appreciated.
<summary> PIPEWIRE_LOG_SYSTEMD=false pipewire -c /home/justcausewhynot/.config/pipewire/pipewire.conf.d/20-convolver-surround-eq.conf </summary>
```
[E][36939.394784] mod.filter-chain | [module-filter-ch: 1714 plugin_load()] can't load plugin type '': No such file or directory
[E][36939.394807] mod.filter-chain | [module-filter-ch: 3068 pipewire__module_init()] can't load graph: No such file or directory
[E][36939.394859] pw.conf | [ conf.c: 577 load_module()] 0x55bfa165e730: could not load mandatory module "libpipewire-module-filter-chain": No such file or directory
[E][36939.394878] default | [ pipewire.c: 105 main()] failed to create context: No such file or directory
```
</details>https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3934All mic in system stop working after connecting HSP/HFP enabled headset in A2...2024-03-27T16:44:38ZDenis RyabyyAll mic in system stop working after connecting HSP/HFP enabled headset in A2DP mode# Environment
```
$ pipewire --version
pipewire
Compiled with libpipewire 1.0.4
Linked with libpipewire 1.0.4
```
```
$ cat /etc/os-release
NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"...# Environment
```
$ pipewire --version
pipewire
Compiled with libpipewire 1.0.4
Linked with libpipewire 1.0.4
```
```
$ cat /etc/os-release
NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://archlinux.org/"
DOCUMENTATION_URL="https://wiki.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://gitlab.archlinux.org/groups/archlinux/-/issues"
PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/"
LOGO=archlinux-logo
```
Gnome 46.0
```
$ uname -r
6.8.1-arch1-1
```
# Description of Problem
I have webcam `Logitech, Inc. C922 Pro Stream Webcam` with integrated microphone. My usual scenario is to use that microphone with my Sony WH-1000XM5 headset ( A2DP/LDAC profile ).
To get it I'm using
```
cat ~/.config/wireplumber/policy.lua.d/11-bluetooth-policy.lua
bluetooth_policy.policy["media-role.use-headset-profile"] = false
```
All was great until I've got pipewire update. Now webcam mic only works if headset is disconnected or headset is switched to HFP/HSP mode ( in this way my webcam mic starts working and headset mic starts working too ).
If headset on any of A2DP profile, I can select webcam mic for use, but its absolutely no sound from it.
# How to reproduce
1. Check that mic from webcam working
2. Connect bluetooth headset
3. Check that mic stops working
4. Switch to HSP/HFP profile
5. Check that both mics working
# Actual Results
Any mics stop working after headset connected in A2DP profile
# Expected Results
Any mic working when headset connected in A2DP profile ( excluding headset one )
# Other
Please let me know if you need some additional debbuging info. Can't find any template to fill bug report, so used one from side issues.https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3935I try to control audio server through network.2024-03-27T16:05:26ZmusicfunfanI try to control audio server through network.## What i want to do.
I have a laptop that i use for third display. I want to control the mixer of the main computer from the laptop through the network. So i want to control the audio server with the laptop. In order to control the se...## What i want to do.
I have a laptop that i use for third display. I want to control the mixer of the main computer from the laptop through the network. So i want to control the audio server with the laptop. In order to control the server i use pavucontrol.
## How i do it.
So on the server (main machine), i have added this line on my Hyprland (startup) config.
``pactl load-module module-native-protocol-tcp listen 192.168.1.9 auth-anonymous=true``
This should be able to enable the client (laptop) to pick up and use the main machine as audio server.
On the laptop (client) i have edited the ``/etc/pulse/client.conf``. I have added this line. ``default-server = tcp:192.168.1.7``
This way the laptop use the main machine as audio server.
## What is the problem?
So the laptop plays audio through main machine just fine, but i can not use the pavucontrol to adjust volumes. The settings is there but they have no effect on the main machine.
What i do wrong ?https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3933libcanberra sounds no longer appear via pulse2024-03-27T02:25:45Zashlibcanberra sounds no longer appear via pulse- PipeWire version (`pipewire --version`): 1.0.4
- Distribution and distribution version (`PRETTY_NAME` from `/etc/os-release`): NixOS 24.05 (Uakari)
- Desktop Environment: i3
- Kernel version (`uname -r`): 6.6.22
## Description of Prob...- PipeWire version (`pipewire --version`): 1.0.4
- Distribution and distribution version (`PRETTY_NAME` from `/etc/os-release`): NixOS 24.05 (Uakari)
- Desktop Environment: i3
- Kernel version (`uname -r`): 6.6.22
## Description of Problem:
libcanberra sounds (e.g. terminal bells, in some terminal emulators, or sounds played via canberra-gtk-play) do not seem to appear in the pulseaudio world any more, and it doesn't seem possible to control the volume of such sounds by any means.
Maybe this is a session manager problem? I have no real idea which bit of the stack is responsible for things like "does this thing show up to pulseaudio applications" and "how loud is this audio". I'm using wireplumber 0.5.
(Has libcanberra has been taught to speak pipewire natively, where previously it was using the pulse compat layer? I see a suspicious `"pipewire.protocol": "protocol-native"`... but searching for "canberra" in Nixpkgs issues/PRs, I don't see anything recent.)
Something that looks like a similar issue: https://discussion.fedoraproject.org/t/kde-6-0-1-on-fedora-40-system-sounds-cant-be-muted/107527
## How Reproducible:
100% of the time
### Steps to Reproduce:
1. Open pavucontrol
2. `echo \a`, or `canberra-gtk-play -i phone-incoming-call -d "hello world"`
3. Observe that no "libcanberra" shows up under Playback (and wiggling the System Sounds slider doesn't change the sound's volume)
### Actual Results:
libcanberra sounds cannot be controlled with pavucontrol
### Expected Results:
libcanberra sounds should be possible to control with pavucontrol
# Additional Info (as attachments):
[pw-dump.log](/uploads/9885393644abfe972eac09174dca2cc1/pw-dump.log)https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3926PipeWire suddenly breaks2024-03-26T17:57:12ZDADA30000PipeWire suddenly breaks<!-- If you are filing this issue with a regular release please try master as it might already be fixed. -->
- PipeWire version (`pipewire --version`): compiled and linked with libpipewire 1.0.4
- Distribution and distribution version (...<!-- If you are filing this issue with a regular release please try master as it might already be fixed. -->
- PipeWire version (`pipewire --version`): compiled and linked with libpipewire 1.0.4
- Distribution and distribution version (`PRETTY_NAME` from `/etc/os-release`): NixOS 24.05 (Uakari)
- Desktop Environment: Hyprland
- Kernel version (`uname -r`): 6.6.22
## Description of Problem:
PipeWire sometimes, usually under load just suddenly stops playing audio, if I try to kill, restart it, it just hangs in D state (uninterruptible sleep) and I can't even reboot system after that, I need to use SysRq or just press button on my pc
## How Reproducible:
idk
### Steps to Reproduce:
Easiest way is to
1. Download a lot of maps in osu!lazer
2. Go into menu where you choose beatmap
3. No sound
### Actual Results:
PipeWire goes into D state
### Expected Results:
I expect it to just work
# Additional Info (as attachments):
- `pw-dump > pw-dump.log`:
pw-dump hangshttps://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3930Bluetooth headphones kill USB microphone2024-03-26T17:22:52ZMarcin SzymczakBluetooth headphones kill USB microphoneHello, I am experiencing an issue with pipewire and wireplumber. After a recent update (last week), my external USB microphone ceases to work after connecting Bluetooth headphones.
I can reproduce it by the following:
1. USB microphone...Hello, I am experiencing an issue with pipewire and wireplumber. After a recent update (last week), my external USB microphone ceases to work after connecting Bluetooth headphones.
I can reproduce it by the following:
1. USB microphone connected, Bluetooth headphones disconnected
2. Go to https://talky.io and click start chat
3. In the audio settings section, I can see the microphone bar moving when I speak, indicating the mic is working.
4. Connect Bluetooth headphones
5. Soon after (5 seconds or so), the microphone bar is not moving anymore, after a while the site displays an error "Media lost."
I am running Arch Linux with pipewire in the following versions:
```
local/easyeffects 7.1.5-1
Audio Effects for Pipewire applications
local/gst-plugin-pipewire 1:1.0.4-2
Multimedia graph framework - pipewire plugin
local/helvum 0.5.1-1
GTK patchbay for PipeWire
local/libpipewire 1:1.0.4-2
Low-latency audio/video router and processor - client library
local/libwireplumber 0.5.0-1
Session / policy manager implementation for PipeWire - client library
local/pipewire 1:1.0.4-2
Low-latency audio/video router and processor
local/pipewire-audio 1:1.0.4-2
Low-latency audio/video router and processor - Audio support
local/pipewire-pulse 1:1.0.4-2
Low-latency audio/video router and processor - PulseAudio replacement
local/qemu-audio-pipewire 8.2.2-1
QEMU PipeWire audio driver
local/wireplumber 0.5.0-1
Session / policy manager implementation for PipeWire
```
My microphone is: Snab Microtone HF-50 USB (lsusb shows C-Media Electronics, Inc. Blue Snowball ) My headphones are: Sony Sony WH-1000XM5
I have collected two pw-dump's - when microphone is working [pwdump-before.log](/uploads/c20beaeb4468ebe294b6bacaa0d3c04c/pwdump-before.log) and when it's not [pwdump-after.log](/uploads/dd20669cb9478a9faaec582ddb45aa11/pwdump-after.log), for easier investigation.
There are couple of interesting changes between them, when observed using `git diff`:
1. Microphone state changes from `"running"` to `"idle"` (`"alsa.long_card_name": "MICE MICROPHONE HF-50 Microphone at usb-0000:0d:00.3-4, full speed"`)
```
- "state": "running",
+ "state": "idle",
```
2. `Format` and `Buffer` definition of the microphone changes to empty
```
- "Format": [
- {
- "mediaType": "audio",
- "mediaSubtype": "dsp",
- "format": "F32P"
- }
- ],
- "Buffers": [
- {
- "buffers": { "default": 1, "min": 1, "max": 32 },
- "blocks": 1,
- "size": { "default": 32768, "min": 64, "max": 2147483647 },
- "stride": 4
- }
- ],
+ "Format": [ ],
+ "Buffers": [ ],
```
3. `"node.name": "bluez_input.AC:80:0A:33:F2:23"` `"media.name": "WH-1000XM5 output"` state changes from `"suspended"` to `"running"`
```
- "state": "suspended",
+ "state": "running",
```
4. The `WH-1000XM5 output` gets `Format` populated
```
- "Format": [ ],
+ "Format": [
+ {
+ "mediaType": "audio",
+ "mediaSubtype": "raw",
+ "format": "F32P",
+ "channels": 1,
+ "position": [ "MONO" ]
+ }
+ ],
```
5. The `"media.name": "Bluetooth internal capture stream for WH-1000XM5 input"` changes from `"idle"` to `"running"`
```
- "state": "idle",
+ "state": "running",
```
I suspect this to be the culprit, as the headphones are in a Headset, not Handsfree mode and should not be supplying microphone input and it probably somehow overrides my external USB mic. 6. The `"Bluetooth internal capture stream for WH-1000XM5 input"` gets Format and Buffers.
```
- "Format": [ ],
- "Buffers": [ ],
+ "Format": [
+ {
+ "mediaType": "audio",
+ "mediaSubtype": "dsp",
+ "format": "F32P"
+ }
+ ],
+ "Buffers": [
+ {
+ "buffers": { "default": 1, "min": 1, "max": 32 },
+ "blocks": 1,
+ "size": { "default": 32768, "min": 64, "max": 2147483647 },
+ "stride": 4
+ }
+ ],
```
7. Some `"type": "PipeWire:Interface:Port",` gets quantification and rates set to 0
```
- "minQuantum": 1.000000,
- "maxQuantum": 1.000000,
- "minRate": 512,
- "maxRate": 512,
+ "minQuantum": 0.000000,
+ "maxQuantum": 0.000000,
+ "minRate": 0,
+ "maxRate": 0,
```
8. Some `"type": "PipeWire:Interface:Link",` get reassigned output node and port ids.
```
"info": {
- "output-node-id": 52,
- "output-port-id": 66,
+ "output-node-id": 90,
+ "output-port-id": 94,
"input-node-id": 96,
"input-port-id": 83,
"change-mask": [ "state", "format", "props" ],
"state": "active",
"error": null,
"format": {
"mediaType": "audio",
"mediaSubtype": "dsp",
"format": "F32P"
},
"props": {
"client.id": 31,
"factory.id": 20,
"link.input.node": 96,
"link.input.port": 83,
- "link.output.node": 52,
- "link.output.port": 66,
+ "link.output.node": 90,
+ "link.output.port": 94,
"object.id": 86,
- "object.serial": 292
+ "object.serial": 303
}
```
9. The `"type": "PipeWire:Interface:Client",` gets new id, serial and pid data
```
{
"id": 95,
"type": "PipeWire:Interface:Client",
"version": 3,
"permissions": [ "r", "w", "x", "m" ],
"info": {
"change-mask": [ "props" ],
"props": {
"application.language": "en_US.UTF-8",
"application.name": "pw-dump",
"application.process.binary": "pw-dump",
"application.process.host": "marcin-pc",
- "application.process.id": 6432,
+ "application.process.id": 6854,
"application.process.user": "marcin",
"clock.power-of-two-quantum": true,
- "core.name": "pipewire-marcin-6432",
+ "core.name": "pipewire-marcin-6854",
"core.version": "1.0.4",
"cpu.max-align": 32,
"default.clock.max-quantum": 2048,
"default.clock.min-quantum": 32,
"default.clock.quantum": 1024,
"default.clock.quantum-floor": 4,
"default.clock.quantum-limit": 8192,
"default.clock.rate": 48000,
"default.video.height": 480,
"default.video.rate.denom": 1,
"default.video.rate.num": 25,
"default.video.width": 640,
"link.max-buffers": 64,
"log.level": 0,
"mem.allow-mlock": true,
"mem.warn-mlock": false,
"module.id": 2,
"object.id": 95,
- "object.serial": 293,
+ "object.serial": 307,
"pipewire.access": "unrestricted",
"pipewire.protocol": "protocol-native",
"pipewire.sec.gid": 1000,
- "pipewire.sec.pid": 6432,
+ "pipewire.sec.pid": 6854,
"pipewire.sec.socket": "pipewire-0-manager",
"pipewire.sec.uid": 1000,
"remote.name": "[pipewire-0-manager,pipewire-0]",
"settings.check-quantum": false,
"settings.check-rate": false,
"window.x11.display": ":1"
}
}
}
```
This is the end of the diff.https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3910gst pipewiresrc has major delay compared to v4l2src on some cameras2024-03-26T14:21:51ZRobert Madergst pipewiresrc has major delay compared to v4l2src on some camerasThis *might* be a duplicate of https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/30 and is frequently seen with Gnome apps making use of `pipewiresrc` but does *not* occur when using PW directly (with e.g. https://gitlab.gnome.or...This *might* be a duplicate of https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/30 and is frequently seen with Gnome apps making use of `pipewiresrc` but does *not* occur when using PW directly (with e.g. https://gitlab.gnome.org/GNOME/pipewire-media-stream).
STR: compare
```
gst-launch-1.0 pipewiresrc ! image/jpeg,width=1280,height=720 ! decodebin3 ! videoconvert ! gtksink
```
with
```
gst-launch-1.0 v4l2src ! image/jpeg,width=1280,height=720 ! decodebin3 ! videoconvert ! gtksink
```
If somebody knows what's the issue already (e.g. https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/30) I can give it a go and try fixing things.https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3913Question: correct ldflags for an external module?2024-03-26T03:12:02ZArnaud RebilloutQuestion: correct ldflags for an external module?Hello,
I'm working on packaging an external module for pipewire: the [xrdp module](https://github.com/neutrinolabs/pipewire-module-xrdp/issues/3). I'm packaging it for Debian.
One question that popped up is: what are the correct ldflag...Hello,
I'm working on packaging an external module for pipewire: the [xrdp module](https://github.com/neutrinolabs/pipewire-module-xrdp/issues/3). I'm packaging it for Debian.
One question that popped up is: what are the correct ldflags to use in this case? So far the module is built with [-module](https://www.gnu.org/software/automake/manual/html_node/Libtool-Modules.html) and [-avoid-version](https://www.gnu.org/software/libtool/manual/html_node/Link-mode.html), but I have the impression that this is not for a good reason, instead it's due to a [old pulseaudio tutorial](https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/Developer/Modules/) that suggests to use those flags.
I have the impression that it would be more correct to just use those ldflags instead: `$(pkgconf --libs libpipewire-0.3 libspa-0.2) -avoid-version`.
I prefer to ask here, as I'd like to get this point of detail right for the Debian package, however I know very little about shared libraries and modules in general. I wonder if the fact that it's an _external_ module warrants some special ldflags. Or maybe it doesn't matter at all?
Thanks in advance!https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/2QEMU audio support2024-03-26T02:18:33ZArun RaghavanQEMU audio support*Created by: polarathene*
When ready, PipeWire will be able to use the current PulseAudio support in QEMU right? Would that support potentially benefit from the low latency support that PipeWire aims to achieve, or would that require QE...*Created by: polarathene*
When ready, PipeWire will be able to use the current PulseAudio support in QEMU right? Would that support potentially benefit from the low latency support that PipeWire aims to achieve, or would that require QEMU to support PipeWire directly?
There are many users that experience clicking and pops when redirecting audio output from a VM to the host audio system. I'm not sure how much work is involved to provide PipeWire as another audio driver for QEMU but if it could fix that, it would be amazing. Another area lacking in QEMU audio at least with PulseAudio seems to be greater than stereo channel support, I'm not sure if there is a limitation caused there.
I understand this would be a rather low priority request, I just figure you'd have the knowledge/ability to potentially add the support at a later date once PipeWire is meeting it's core development goals well.https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3745Why do all upstream coupled stream sinks need to have the same `node.link-gro...2024-03-26T01:46:53Zkenji amanoWhy do all upstream coupled stream sinks need to have the same `node.link-group` as the playback stream?- PipeWire version (`pipewire --version`): 1.0.0
- Distribution and distribution version (`PRETTY_NAME` from `/etc/os-release`): Gentoo
- Desktop Environment: Sway
- Kernel version (`uname -r`): 6.1.67-gentoo
## Description of Problem:
...- PipeWire version (`pipewire --version`): 1.0.0
- Distribution and distribution version (`PRETTY_NAME` from `/etc/os-release`): Gentoo
- Desktop Environment: Sway
- Kernel version (`uname -r`): 6.1.67-gentoo
## Description of Problem:
I have the following graphs.
* Application playback stream -> filter-chain-sink|playback.filter-chain-sink -> default-sink|playback.default-sink -> speaker|playback.speaker -> hardware-sink
* Application playback stream -> default-sink|playback.default-sink -> speaker|playback.speaker -> hardware-sink
If I want to prevent `playback.speaker` from connecting to any upstream sink, all coupled stream sinks upstream to `playback.speaker`(`filter-chain-sink` and `default-sink`) and `speaker` must have the same `node.link-group` as `playback.speaker`. Otherwise, any upstream sink that has a different `node.link-group` cannot activate `playback.speaker`.
Can anyone explain this behavior?https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3928Browsers fail to register microphone input when headset is connected.2024-03-25T20:00:37ZŁukasz SitarskiBrowsers fail to register microphone input when headset is connected.<!-- If you are filing this issue with a regular release please try master as it might already be fixed. -->
- PipeWire version (`pipewire --version`): 1.0.4
- Distribution and distribution version (`PRETTY_NAME` from `/etc/os-release`)...<!-- If you are filing this issue with a regular release please try master as it might already be fixed. -->
- PipeWire version (`pipewire --version`): 1.0.4
- Distribution and distribution version (`PRETTY_NAME` from `/etc/os-release`): EndeavourOS
- Desktop Environment: Gnome
- Kernel version (`uname -r`): 6.8.1-arch1-1
## Description of Problem:
My setup includes Razer Kiyo Pro camera with microphone and Bose Noisecancelling 700 (and Sony XM3) headsets.
Both headsets reproduce this error.
Having Input set to Razer Kiyo and Headset connected (AAC codec [also happens on LDAC/aptX]), test microphone websites show no microphone input (happens also on google meet).
There are additional requirements for it to happen:
Input device must be set to Razer Kiyo and Headset connected.
![image](/uploads/e23c0bebea585efb21c924153c92418f/image.png)
If I change Input to Internal Microphone, then browsers register input from microphone.
**Also quite important little detail**
If I pick Headset Microphone and mute it like this:
![image](/uploads/72dbd6f9a1b3db1614ff9980fdafb7c5/image.png)
And then change it back to Razer Kiyo, Chrome displays information that the microphone is muted, but it is clearly not. Razer Kiyo is not muted.
I would say that there is mapping issue somewhere, even if Razer Kiyo is set as microphone, browser wants to use Headset microphone.
## How Reproducible:
### Steps to Reproduce:
1. Connect Razer Kiyo (I didn't test it on any other USB Microphone).
1. Connect Bluetooth Headset.
1. Open settings and set USB Microphone as default, make sure Output is set to Headset.
1. Open Google Meet or https://webcammictest.com/check-mic.html and pick USB Microphone as input.
### Actual Results:
Microphone will be muted until you:
a) disconnect headset and refresh the page.
b) change default microphone to different mic (Internal laptop microphone in my case).
### Expected Results:
Should record sound as usual.
# Additional Info (as attachments):
- `pw-dump > pw-dump.log`: [pw-dump.log](/uploads/c5961662697e9292b6a993f09acae27b/pw-dump.log)