Bluetooth headphones can only connect as HSP/HFP

Hello all! I currently have a brand new Fedora 34 installation and am having difficulty getting it to work with a pair of WH-1000XM4 headphones. They pair fine and audio plays, but because it’s over HSP/HFP and not A2DP it’s essentially unusable, and A2DP isn’t listed as an option:

Pavucontrol also doesn’t list A2DP as an option, and these headphones work perfectly out of the box with a different Manjaro KDE installation.

I’m having difficulty troubleshooting since Pipewire is so new, and doesn’t seem to have many topics related to it. I’m also probably misunderstanding what Pipewire does (does it even interface directly with bluetooth devices?). Any pointers in the right direction would be greatly appreciated; Thanks!

It’s all new to me too. The only place I’m aware of to configure the codecs is /usr/share/pipewire/media-session.d/bluez-monitor.conf. As stated at the top of that file, the proper way to change the settings is to first copy the file to /etc/pipewire/media-session.d and then edit the copy. If you don’t do that, then your changes will be overwritten the next time you update your system.

i’m having this same issue too, except with a device that i believe uses AAC instead of an A2DP

there’s a preexisting pipewire bug with the same behavior from back in march, it doesn’t look like it’s really been touched: 1941641 – Soundcode Life Q20 Bluetooth headphones High Fidelty Playback/A2DP play no sound but Headset Audio (HSP/HFP) does