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 at least once) else 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