fixed: Move storing of streamdetails from CApp::PlayFile() to the SaveFileState-job, where it already partially was (for DVD stuff).
This fixes a few issues:
- Races causing possible invalid streamdetails to be stored in the db;
- Stream details for current file were not stored when item was not in the db yet;
- Check whether the streamdetails in the db need updating by comparing. This fixes also fixes previously invalid/incomplete stored details;
- Also clarify the special case for DVD stuff.
fixed: We can only obtain the aspect & duration this way when the Process() thread is running (and UpdatePlayState() has been called for the first) and we're rendering else the CApp will race getting the streamdetails on player start and get 0 for ratio/duration. In that case fallback to info from the demuxer
changed: When checking for eg. user thumbs just check whether it's either a folder or a video file
fixed: Instead of checking whether the item is video, check whether we're playing video else we may obtain invalid info due to racing