xbmc/xbmc — pull request #1264 by dez-dk (2012-08-08 16:24:25+00:00)
Title: Stacking and scanning changes for remote sources

This pull request is based on the feedback I got from my last pull request ([VideoInfoScanner slightly optimized](https://github.com/xbmc/xbmc/pull/1191)).

The goal is to make (re-)scanning of remote sources (such as HTTP) feasible especially by enabling the use of fast hashing.

XBMC only uses fast hashing if it doesn't find any subdirectories in a movie directory.
* This pull request makes it possible to use stacking on HTTP sources. This hides CD-subdirs when scanning and enables fast hashing of multi-CD directories.
* The CanFastHash() method of VideoInfoScanner is modified to exclude subdirs that are not scannable (matches exclude regexps). This makes it possible to fast hash dirs that contain subtitles directories, sample directories etc.

In the wake of these changes the following changes emerges:
* The Exists() calls to check for DVD-files can be quite slow so this pull request adds the advancedsettings \ that lets the user disable stacking of DVDs. Stacking of DVDs is enabled by default.
* The advancedsetting \ makes stacking easier for the end user. It doesn't rely on filenames that start with a (movie) title. The filenames are just concatenated and there are no regexps to configure. It results in some less nice looking filenames but when scanning you do not see the filename anyway. It is disabled by default.

Other changes:
* VideoInfoScanner uses a FileItem so we can use the date we already have in memory instead of doing a stat() call for hashing etc.