[pulseaudio-discuss] [PATCH v2 0/6] Fix initial HDMI profile selection
Tanu Kaskinen
tanuk at iki.fi
Fri Jun 10 17:55:48 UTC 2016
>From the v1 cover letter:
This patch set fixes a case where an unavailable HDMI profile gets
selected by default, even when an available one exists too. The
underlying problem is that the alsa card doesn't manage profile
availability information at all, so all profiles have unknown
availability. These patches add some simple profile availability
management logic to module-alsa-card. Some refactoring was
required too.
BugLink: https://bugzilla.yoctoproject.org/show_bug.cgi?id=8448
Changes in v2:
* Don't add pa_card_profile.ports. It's not needed.
* Don't move the CARD_NEW hook to pa_card_put(). Instead, add a new
hook for choosing the initial profile: CARD_CHOOSE_INITIAL_PROFILE.
Card implementations now must always call
pa_card_choose_initial_profile() between pa_card_new() and
pa_card_put(). This allows initializing the card jack states after
pa_card_new() and overriding the profile selection policy before
pa_card_put().
* Reorder the code in module-card-restore to adapt to the new hook.
* Replace the pa_card_state_t enum with a boolean that indicates
whether the card has been linked.
* Log card unlinking and send unlink notifications only if the card
is linked when freeing it.
David also suggested that when jack states change, we could update the
state of available profiles before updating the state of unavailable
profiles. The rationale was that we do that with port states to work
around a deficiency in module-switch-on-port-available, so maybe it
would make sense for profiles too. I agreed to do that, but later I
found out that implementing this would be more complicated than
expected, because UCM would need special handling. Since this change
is not necessary, I decided to not implement it.
Tanu Kaskinen (6):
alsa, bluetooth: fail if user-requested profile doesn't exist
card: don't allow the CARD_NEW hook to fail
card: move profile selection after pa_card_new()
card: remove pa_card_new_data.active_profile
card: simplify setting pa_card.name
alsa: set availability for (some) unavailable profiles
src/modules/alsa/module-alsa-card.c | 52 +++++++++++-
src/modules/bluetooth/module-bluez4-device.c | 28 +++++--
src/modules/bluetooth/module-bluez5-device.c | 2 +
src/modules/macosx/module-coreaudio-device.c | 2 +
src/modules/module-card-restore.c | 36 +++++---
src/pulsecore/card.c | 120 +++++++++++++++------------
src/pulsecore/card.h | 14 ++--
src/pulsecore/core.h | 1 +
8 files changed, 173 insertions(+), 82 deletions(-)
--
2.8.1
More information about the pulseaudio-discuss
mailing list