Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Not changing active souce #50

Closed
FuNK3Y opened this issue Dec 17, 2014 · 10 comments
Closed

Not changing active souce #50

FuNK3Y opened this issue Dec 17, 2014 · 10 comments
Labels

Comments

@FuNK3Y
Copy link

FuNK3Y commented Dec 17, 2014

I opened a trac issue for XBMC, after a second thought I think it is more CEC related

The problem:
Under input > Peripherals "Make Kodi the active source when starting" is sometime not working; the AVR does not switch the input

Here is my config:

  • OpenElec 5.0 RC 2 (4.97.2)
  • Pulse Eight CEC Adapter (Firmware 4.0)
  • Onkoy TX-SR313 (AVR)
  • Sharp Aquos (TV)

What I noticed:

  • On wake from sleep (Wake On Lan, the PC starts first and it then power on the TV and the AVR)
    Under Input > Peripherals there is an option "Connected to HDMI Device" present. If I set it to AVR it works perfectly
  • Upon reboot (when the TV & the AVR are already started)
    The "Connected to HDMI device" is not present anymore and it is not working.
    If do sleep/wake the PC the option is back, but it has TV as default value (and it is not working).
    This issue is pretty annoying for me as because the "Connected to HDMI device" is very often reset to TV, and it forces me to look for the AVR's remote to manually change the input.

I tried to read the log, but I honestly did not really understood what was really going on. My best guess is that CEC devices are not configured the same way by XBMC if the TV & AVR are already on when XBMC is starting (or maybe XBMC does not handle CEC devices the same way on startup and wake).

I did attach the log (debug and CEC debug), here is what I did:

  • 19:30 Power On
  • 19:32 Sleep
  • 19:34 Wake
    I would be very grateful if you could have a look. Let me know if you need further information.

Log: http://xbmclogs.com/show.php?id=374912

@FuNK3Y
Copy link
Author

FuNK3Y commented Dec 20, 2014

This seems to be a regression, I tried with OpenElec 4.2.1 and it worked as expected (the "Connected to HDMI device remains").

@FuNK3Y
Copy link
Author

FuNK3Y commented Jan 17, 2015

I did further testing and I think that I understood what is going on.

Reading the source I discovered that the HW ID is read from the EDID.

It works fine when I do a reboot because everything is powered up, but when I wake the PC from LAN it has to power on the TV and the AVR as well. My guess is that one of those devices (most certainly the AVR) does not advertise its EDID soon enough and then libCEC detects a wrong HW ID.

I did persist the EDID using this guide: http://wiki.openelec.tv/index.php?title=Config_EDID_nvidia and it totaly fixed my issue.

Auto detecting the HW ID is in most case a good thing, but it seems to override settings manually defined in the Kodi (under Input > Peripherals). One should either disallow the user the ability to manually input it or make sure that those values does not get overriden.

@opdenkamp
Copy link
Contributor

that's a bug indeed, it should not overwrite the manual setting with the autodetected one

@FuNK3Y
Copy link
Author

FuNK3Y commented Apr 5, 2015

Thank for your feedback.

Would it be possible with the newer version to handle the "too slow advertising AVR" problem?

@opdenkamp
Copy link
Contributor

which problem is that?

@opdenkamp opdenkamp added the bug label May 3, 2015
@FuNK3Y
Copy link
Author

FuNK3Y commented May 5, 2015

The problem is that if the PC is started before the AVR/TV, input does not get changed properly on the AVR. Hard coding the EDID is a workaround.

Imho this behavior is caused by the fact that my AVR is not advertising its EDID fast enough. As the HW adress is built out of the EDID, it this then wrong (something like 1000 instead of 1100). When this is used for the set active source, it does not set the AVR to the correct input.

This explanation below is a sort of educated guess, I am not quite sure that I understood the CEC protocol properly.

@Vaflor
Copy link

Vaflor commented May 19, 2015

I have the exact same problem as described by FuNK3Y. Could it be solved by a firmware update?

@opdenkamp
Copy link
Contributor

unfortunately we're not hooked up to hotplug, so we don't "see" the change when your avr powers up and updates it's edid (which is what's happening here I think).

the physical address is not hardcoded in the edid, but it is included in there. it depends on the hdmi bus structure.

@FuNK3Y
Copy link
Author

FuNK3Y commented Jul 3, 2015

The physical address is dynamically built based on the the current position of the device in the HDMI chain, right ? 1200 would for instance mean (first input on the TV, second input on the AVR).

If yes one way to clear the issue would be to hardcode the physical address in Kodi; but for this to work one have to make sure that this value will not get overriden somehow by the dynamic detection

@opdenkamp
Copy link
Contributor

Correct, and your AVR is providing an EDID with another address in when it's in standby mode.

I've checked the code in libCEC and it does not override the address automatically. If this is happening, then it's Kodi calling one of the methods to set the address directly.

Please create a ticket on Kodi's trac if this still happens with libCEC 3.0.x (your log was from 2.2.0)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants