Media flags showing empty space - only on CoreELEC

I’m noticing a strange quirk in CoreELEC 21 on my Homatics Box R 4K Plus. I don’t know if it’s a bug or a setting that’s different by default in CoreELEC.

When I import my library, all media flags seem to get scraped properly. For HDR movies, they look normal:

But for SDR movies, the lack of an “HDR10” or “Dolby Vision” flag leaves an empty space where those flags would normally be:

This does not happen on my other Kodi boxes. On a Fire Stick running Kodi v21, for example, the flags on an HDR movie look the same:

And on SDR movies, that empty space is removed to keep all the flags together:

Why doesn’t CoreELEC shift the flags like this? Even weirder: if I sync my CoreELEC library with MySQL, the Fire Stick will exhibit the same visual behavior as CoreELEC, with the empty space in between flags. So that visual quirk is even getting synced with the MySQL database and appearing on all my boxes.

Again, if I scrape the library from scratch on the Fire Stick this doesn’t happen. So why is CoreELEC doing this and can I fix it?

The reason for this issue is that the source code is different.

CoreELEC’s xbmc/utils/StreamDetails.cpp line 673 returns “sdr” as default value whereas Kodi returns just “”.

So, the fast way to fix this for users is editing skin xml files.
For estuary skin edit 2 xml files.

Includes.xml line 408.

From

<param name="visible" value="!String.IsEmpty($PARAM[infolabel_prefix]ListItem.HdrType)" />

To

<param name="visible" value="!String.IsEmpty($PARAM[infolabel_prefix]ListItem.HdrType) + !String.IsEqual($PARAM[infolabel_prefix]ListItem.HdrType,sdr)" />

Dialogseekbar.xml line 73.

From

<param name="visible" value="!String.IsEmpty(VideoPlayer.HdrType)" />

To

<param name="visible" value="!String.IsEmpty(VideoPlayer.HdrType) + !String.IsEqual(VideoPlayer.HdrType,sdr)" />

For developers, if there is no big reason to change the return value to “sdr”, it will be solved by returning “” as it was.

It’s because this change:

If this change have such big effect we will need to rework it and return "" only if non HDR.

Does this mean I will cause problems by editing my local skin files as described by Ted?

Editing skin xml files as I suggested will never cause problems.
If you don’t like it, just revert it.

1 Like

Great, thanks, this worked on my box. My other boxes still have the same problem due to the issue Portisch pointed out, however – so I’d have to edit the skin on all the boxes in my house.

Ideally, I would hope the code would be reworked in this manner, yes, so that CoreELEC’s interface works the same way as Kodi on other systems so this issue does not occur.

Thanks both for the help and info!

The error with the commit was solved in last 1/2 nightlies ago.

But the string sdr remain in the database:


So after update the empty space in media info is still there.

It is possible by a sqlite3 client on Windows, Linux or directly on the CoreELEC device itself to clean out such media info lines (131 must match your version):

CoreELEC:~ # systemctl stop kodi
CoreELEC:~ # sqlite3 /storage/.kodi/userdata/Database/MyVideos131.db
SQLite version 3.45.3 2024-04-15 13:34:05
Enter ".help" for usage hints.
sqlite> SELECT * FROM streamdetails WHERE idFile=(SELECT idFile FROM streamdetails WHERE strHdrType='sdr');
2|0|h264|1.777778|1440|1080|||||233|||sdr
2|1|||||ac3|6|deu|||||
sqlite> DELETE FROM streamdetails WHERE idFile=(SELECT idFile FROM streamdetails WHERE strHdrType='sdr');
sqlite> SELECT * FROM streamdetails WHERE idFile=(SELECT idFile FROM streamdetails WHERE strHdrType='sdr');
sqlite>
CoreELEC:~ # systemctl start kodi
CoreELEC:~ #

Exit sqlite3 by press the combo CTRL-D.

Or directly without sqlite3 console:

CoreELEC:~ # systemctl stop kodi
CoreELEC:~ # sqlite3 /storage/.kodi/userdata/Database/MyVideos131.db "DELETE FROM streamdetails WHERE idFile=(SELECT idFile FROM streamdetails WHERE strHdrType='sdr');" ".exit"
CoreELEC:~ # systemctl start kodi
CoreELEC:~ #

For safety it is recommended to stop Kodi before editing the database.

The other way to solve it is to delete the MyVideos?.db database file at all and restart Kodi. But Kodi needs to build up the database afterwards and I think the folder type must be set again.

Awesome, thanks! Tested on the latest nightly and it appears to be fixed; thanks for checking into it and being so responsive! Marking as solved.