2024-11-21, 11:44
I recently got a new HTPC and did a fresh installation of Kodi. Thought I'd use the opportunity to redo some things from scratch and to be closer to the base OS (Debian testing, in my case).
That meant using Pipewire out of the box. Took me some Googling to realize that Pipewire actually does support passthrough and I managed to configure it based on:
This post
And this post
Together with this commit message
However, the experience out-of-the-box isn't very user friendly (passthrough options are simply missing in the UI until Wireplumber has been configured, once Wireplumber is configured, you still have to tell Kodi to use the formats you've just told Wireplumber that your receiver supports, effectively requiring the same thing to be configured twice).
Ideally, Wireplumber would gain support for reading EDID/ELD information from the relevant HDMI/DP connection to set the iec958codecs property itself (that would be Wireplumber issue #439), but until that is the case, I still think Kodi's handling of Pipewire passthrough can be improved. My thinking was that Kodi could always display the various passthrough options, and if the user enables one (or more) of them, then Kodi could update the Pipewire iec958codecs property instead (effectively reversing the current situation so that Kodi is pushing the setting to Pipewire rather than pulling it from Pipewire). That means that configuration only needs to be done once, and that the passthrough UI isn't hidden by default.
The only problem I can see is that if/when Wireplumber gains EDID/ELD detection support, Kodi might need to be changed again (or at least learn to recognize the automatic detection made by Wireplumber and not make changes to the Pipewire cfg).
I'd be willing to take a stab at fixing this myself (which is why I posted to the devel forum), but I'd like some feedback first to see that I'm not barking up the wrong tree...
Alternatively, I should maybe work on the Wireplumber issue first.....?
That meant using Pipewire out of the box. Took me some Googling to realize that Pipewire actually does support passthrough and I managed to configure it based on:
This post
And this post
Together with this commit message
However, the experience out-of-the-box isn't very user friendly (passthrough options are simply missing in the UI until Wireplumber has been configured, once Wireplumber is configured, you still have to tell Kodi to use the formats you've just told Wireplumber that your receiver supports, effectively requiring the same thing to be configured twice).
Ideally, Wireplumber would gain support for reading EDID/ELD information from the relevant HDMI/DP connection to set the iec958codecs property itself (that would be Wireplumber issue #439), but until that is the case, I still think Kodi's handling of Pipewire passthrough can be improved. My thinking was that Kodi could always display the various passthrough options, and if the user enables one (or more) of them, then Kodi could update the Pipewire iec958codecs property instead (effectively reversing the current situation so that Kodi is pushing the setting to Pipewire rather than pulling it from Pipewire). That means that configuration only needs to be done once, and that the passthrough UI isn't hidden by default.
The only problem I can see is that if/when Wireplumber gains EDID/ELD detection support, Kodi might need to be changed again (or at least learn to recognize the automatic detection made by Wireplumber and not make changes to the Pipewire cfg).
I'd be willing to take a stab at fixing this myself (which is why I posted to the devel forum), but I'd like some feedback first to see that I'm not barking up the wrong tree...
Alternatively, I should maybe work on the Wireplumber issue first.....?