skin.estuary icon indicating copy to clipboard operation
skin.estuary copied to clipboard

OSD - progressbar and "knob" are not in sync

Open da-anda opened this issue 8 years ago • 7 comments

as this video shows, the progress bar and the knob indicating current position are not moving at the same speed. Not sure if it's something the skin can influence or if it's a core issue.

https://youtu.be/gx4_0WijHFQ

da-anda avatar Nov 02 '16 15:11 da-anda

@FernetMenta The knob is a slider from DialogSeekbar (id 401), the progress bar uses Player.Progress infolabel. Is it normal that these two are not synced 100%?

phil65 avatar Nov 02 '16 19:11 phil65

Please elaborate on "those two". Player.Progress and xxx?

FernetMenta avatar Nov 02 '16 19:11 FernetMenta

xxx = this here i think: https://github.com/phil65/xbmc/blob/favourites_reload/xbmc/dialogs/GUIDialogSeekBar.cpp#L71

phil65 avatar Nov 02 '16 20:11 phil65

That is a major flow of the entire gui. GuiInfoManger polls the current state on every query from the underlying layers instead getting the values from a cache. As a result control x may get a different value than control y on the same rendering cycle. Because both bother i.e. player with a call to GetTime. Between the two calls playing time moves forward.

FernetMenta avatar Nov 02 '16 21:11 FernetMenta

Ok, thx for explanation. So I assume it is nothing I can fix on skin layer, correct?

phil65 avatar Nov 02 '16 22:11 phil65

I would start by fixing those kind of expressions :)

(unsigned int)(static_cast<float>(g_infoManager.GetPlayTime()) / g_infoManager.GetTotalPlayTime() * 0.1f));

FernetMenta avatar Nov 03 '16 07:11 FernetMenta

Fix pending: https://github.com/xbmc/xbmc/pull/11125

phil65 avatar Dec 18 '16 01:12 phil65