Source: kodi Severity: wishlist Tags: patch Hi,
I am a heavy user of git-annex. In case you are unfamiliar with the software, it's a tool to allow easier archiving of large files, using git as a backend. Files are not stored directly in git, but rather, as symlinks to real object files. https://git-annex.branchable.com/ On my laptop, i have a part of my main video library that resides on another machine. This means that some of those symlinks (the majority of them, in fact) are broken symlinks. Yet Kodi happily parses those files as if they were present, and shows them as real movies when I try to select them. When I do, Kodi says that the file is missing from the library and oh, do I want to remove it? This is a bit annoying. It seems to me empty files are obviously invalid and should just not show up in the interface. I looked at implementing a workaround for this by patching Kodi to ignore empty file sets. I am not very familiar with the internals of Kodi, but I hope I have found the right place to make such a change. I am in the process of rebuilding a backport with the patch to test this (which takes a long time!) but I thought I would share the patch here to get more feedback. I am hesitant in sharing directly with upstream because I am afraid they will refuse supporting my exotic (git-annex) configuration: I have in the past been told that my video library wasn't curated the right way and their parser was expecting certain things to be stored in a certain way (e.g. movie file titles in a certain ways, and so on). The problem is changing the way git-annex works is even harder: there is an issue opened on that side as well, but it's unfortunately not seeing a lot of movement either, being a major architectural change: https://git-annex.branchable.com/todo/hide_missing_files/ So I figured a 2-line patch in Kodi would fix my immediate problem provided that, of course, it works at all. :) I'll give more information when my tests are complete. -- System Information: Debian Release: 8.6 APT prefers stable-updates APT policy: (500, 'stable-updates'), (500, 'proposed-updates'), (500, 'stable'), (1, 'testing') Architecture: amd64 (x86_64) Kernel: Linux 4.7.0-0.bpo.1-amd64 (SMP w/2 CPU cores) Locale: LANG=fr_CA.UTF-8, LC_CTYPE=fr_CA.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system)
Description: skip empty files in scanning. Author: Antoine Beaupré <anar...@debian.org> Forwarded: no Last-Update: 2016-10-30 --- kodi-16.1+dfsg1.orig/xbmc/video/VideoInfoScanner.cpp +++ kodi-16.1+dfsg1/xbmc/video/VideoInfoScanner.cpp @@ -305,6 +305,10 @@ namespace VIDEO { // need to fetch the folder CDirectory::GetDirectory(strDirectory, items, g_advancedSettings.m_videoExtensions); items.Stack(); + if (items.m_dwSize <= 0) + { + bSkip = true; + } // check whether to re-use previously computed fast hash if (!CanFastHash(items, regexps) || fastHash.empty())