Do not use caps in () for Player.Process InfoLabels
#1
I'm posting this because it took me several days and an unanswered post to figure this out, so I hope this will save others some time.

The sticky "Changes to the skinning engine for Kodi Krypton" in the skinning forum lists many new InfoLabels, of which the Player.Process ones were of interest to me.

Quoting that post (2373685 (post)):

Player.Process(VideoDecoder)
Player.Process(DeintMethod)
Player.Process(PixFormat)
Player.Process(VideoWidth)
Player.Process(VideoHeight)
Player.Process(VideoFps)
Player.Process(VideoDar)
Player.Process(AudioDecoder)
Player.Process(AudioChannels)
Player.Process(AudioSamplerate)
Player.Process(AudioBitsPerSample)

However, using these in practice:
Code:
query = '{"jsonrpc": "2.0", "method": "XBMC.GetInfoLabels", "params": {"labels": ["Player.Process(VideoFps)"]}, "id": 1}'
xbmc.getInfoLabel('Player.Process(VideoFps)')

Did not work.

Looking at the included Estuary skin for Krypton file, "DialogPlayerProcessInfo.xml" revealed that the parts inside the parentheses were not capitalized as in Ronie's post.
So changing the code to:

Code:
query = '{"jsonrpc": "2.0", "method": "XBMC.GetInfoLabels", "params": {"labels": ["Player.Process(videofps)"]}, "id": 1}'
xbmc.getInfoLabel('Player.Process(videofps)')

Does indeed work.
Reply
#2
thanx for the heads-up!

most, if not all, infolabels in kodi are case-insensitive.
i wasn't aware these are not.

i've updated my post in the skin changes forum
Do not PM or e-mail Team-Kodi members directly asking for support.
Always read the Forum rules, Kodi online-manual, FAQ, Help and Search the forum before posting.
Reply
#3
Any way of fixing that that these follow same case insensitivity?
Read/follow the forum rules.
For troubleshooting and bug reporting, read this first
Interested in seeing some YouTube videos about Kodi? Go here and subscribe
Reply
#4
Some further testing with another new infolabel: 'MusicPlayer.Property(Role.Composer)' shows that all parts of this are case insensitive.

For the previous example, only the part in parentheses seems to be case sensitive.

From that it seems that each subroutine needs to remove case in prop.name before comparing it to the corresponding infomap defined earlier?

Around line 5343 in GUIInfoManager.cpp.

I don't know. Earlier in the code, it seems that should have already happened in 'CGUIInfoManager::SplitInfoString'.

I added a line note just now in the now closed PR just now, but don't know if it will be noticed.

https://github.com/xbmc/xbmc/pull/9976/files

I am not experienced enough in cpp to be comfortable creating a new PR myself. Sorry.
Reply
#5
FernetMenta fixed this:
10270 (PR)

Thank you!
Reply

Logout Mark Read Team Forum Stats Members Help
Do not use caps in () for Player.Process InfoLabels0