librepods-org / librepods-org/librepods

[Linux] Preserve an already-active A2DP profile when playback starts

Open
#680 0 comments 0 reactions 0 assignees View on GitHub

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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.