librepods-org / librepods-org/librepods
[Linux] Preserve an already-active A2DP profile when playback starts
Nobody has claimed this yet.
- Dominant language
- Kotlin
- Stars
- 29.9k
- Forks
- 1.7k
- PR merge metrics
- No merged PRs in 30d
Description
Problem
MediaController activates its cached preferred A2DP profile whenever playback starts, even when the Bluetooth card is already using another A2DP variant such as AAC. Changing between A2DP profiles recreates the PipeWire sink and can stop the stream that triggered activation; players such as Chromium may then pause again immediately.
Expected behavior
When the active card profile is any a2dp-sink variant, leave it unchanged. Select and activate a preferred A2DP profile only when the card is not already using A2DP.
Acceptance criteria
- Starting playback with an active A2DP profile does not call the profile-switch operation.
- The negotiated A2DP codec remains unchanged.
- Cards using off or a non-A2DP profile can still activate the preferred available A2DP profile.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at the MediaController playback-start path and inspect how the active card profile is checked before the profile-switch operation. Verify the behavior with an active A2DP variant, and confirm that off or non-A2DP cards still activate the preferred profile without changing the negotiated codec.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- kotlin, linux
- Domain
- desktop, operating-systems
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 70/100