Repository navigation
Conversation
The AOCEC adapter reads the physical address only when it is opened. When the box starts without a TV, the address is still invalid then, and libCEC keeps the default address after the TV is connected. The TV then does not route its remote control keys to the box.
Contributor
|
All contributors have accepted the Pulse-Eight contributor agreement. ✅ |
Member
|
Hi @Portisch, we've just made this simpler: no more signing and emailing a scan. Read the agreement at https://pulse-eight.github.io/libcec/contributor-agreement/ and either press Accept on GitHub there, or reply here with exactly: You only need to do it once, and the check on this pull request will then pass. |
2 tasks done
malard
added a commit
that referenced
this pull request
Nov 5, 2026
A re-run keeps the workflow settings of the run it repeats, so the check on a pull request opened before v2 still reads the v1 list. Mirroring the v2 acceptance there lets #759's check pass. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The AOCEC adapter reads the physical address only when the connection is opened. When the box boots with the TV off or unplugged, the driver returns F.F.F.F. libCEC falls back to 1.0.0.0 and keeps it after the TV comes up, so the TV does not route its remote keys to the box.
The Amlogic driver does not signal a hotplug on the file descriptor, poll() only reports received messages. This change reads the address with CEC_IOC_GET_PHYSICAL_ADDR each time the existing one second select() returns and calls HandlePhysicalAddressChanged when a different valid address shows up, like the Linux, IMX, RPi and TDA995x adapters do. F.F.F.F is ignored, so a TV toggling hotplug causes no new announcement. As with the Linux adapter, a manually set address is replaced.
Doing this in libCEC fixes it for every client of the adapter, and libCEC already has the callback for it. Reopening the connection from the application instead, for example from Kodi on a display reset or a hotplug, would repeat the full CEC setup each time, with polls, logical address allocation and possibly an active source message.
Tested on a Ugoos AM9 (S905X5, Linux 6.12) connected directly to a TV: boot with the TV off, then switch it on. Before, libCEC stayed at 1.0.0.0 and the TV remote did nothing. With the change it logs "changing physical address to 2000", reports 2.0.0.0 and the remote controls Kodi.