File stacking
Jump to navigation
Jump to search
XBMC's file stacking feature handles your multi-part files in a clean, intuitive manner. File stacking combines your multi-part files into a single item in the file list or library. Playback of stacks is completely transparent to you as the user, all parts are automatically queued for playback in order. Stacking is a view option available in videos file mode window. It is always applied when scanning movies into the library.
How does file stacking work?
The stacking function is presented with a list of file items from a directory listing.
- Sort the file list alphabetically.
- CD1, CD2, ..., CD9 directories are collapsed if they contain only one video file.
- Each filename is tokenized into Title, Volume, Ignore and Extension parts.
- For each consecutive filename where all tokens except Volume match, the file's index in the file list is stored in a vector.
- Once the above condition fails...
- The stack path is generated (eg. "stack://movie-cd1-xvid.avi , movie-cd2-xvid.avi")
- The stack name is created from the Title Ignore and Extension tokens (eg. movie-xvid.avi)
- The path and label of the first file item are replaced by the stack path and stack name, respectively.
- The remaining file items in the stack are removed from the file list.
- This continues until the file list is exhausted.
Tuning
File stacking can be tuned by the user to match obscure cases using the moviestacking advanced setting.
Deficiencies
- Stacking is currently only applied to movies.
- Stacking is currently only applied to filenames, not the full path.
- The default expressions will NOT stack files which use only a number as the volume token (eg movie1.avi, movie2.avi). This is intentional due to false positives which can occur with sequels in a flat directory layout. Some solutions to this problem (in order of best to worst) follow...
- Use a dir-per-movie directory layout, see the append example of the moviestacking advanced setting.
- Rename offending files to match one of the more specific volume tokens (ie. cd1, part1, etc).
- Create special-case regular expressions for those files that fail to stack (see tuning).