Kodi Community Forum

Full Version: Question about Kodi indexing upong clicking on "Filter" button
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
So i have this question about how Kodi works in relation to the filter button for movies or TVShows. Does Kodi re-index every data from the database before actually getting the filtering interface in order to filter movies by actor, year, genre etc?
Yes.  The entire dataset is fetched into memory, then sorted and then filtered.  Plus, all the items you can filter on also need to be fetched. Same for search.

BTW, no, there is no workaround for this other than re-writing how core currently works.  For the music library most if not all of that has been done and sorting etc is done by the db backend.  I don't think anyone has looked at doing a similar thing for the video library though.
(2021-09-07, 10:14)black_eagle Wrote: [ -> ]Yes.  The entire dataset is fetched into memory, then sorted and then filtered.  Plus, all the items you can filter on also need to be fetched. Same for search.

BTW, no, there is no workaround for this other than re-writing how core currently works.  For the music library most if not all of that has been done and sorting etc is done by the db backend.  I don't think anyone has looked at doing a similar thing for the video library though.

Thanks you, very apreciated. 

Could this be slowing down or even freezing for a minute or so the program in a medium to large movie library (2000-3000) upon triggering this routine?

I have basic programing skills, In your opinion is this something i could get into? how much work would be required?
(2021-09-07, 10:32)samplerico Wrote: [ -> ]Could this be slowing down or even freezing for a minute or so the program in a medium to large movie library (2000-3000) upon triggering this routine?

Could be yes.  The filtering runs on the main GUI thread (at least, I think it does) so it's possible that the GUI will freeze for a second or so while the query is fetched into memory.

With regards to searching, it starts here https://github.com/xbmc/xbmc/blob/master...v.cpp#L714 onwards  Note that there will be various calls between different GUIWindows and into other stuff too.  It's easier to follow if you clone the git repo and load it into a proper IDE.