mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-24 11:16:51 +00:00
Merge pull request #641 from MilhouseVH/kodi17b1
kodi: update to 17.0-beta1-81d5d26
This commit is contained in:
commit
9a5bb062d4
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="adsp.biquad.filters"
|
||||
PKG_VERSION="01236bb"
|
||||
PKG_VERSION="e08990f"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="inputstream.mpd"
|
||||
PKG_VERSION="b657bf3"
|
||||
PKG_VERSION="7898a67"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.kodi.tv"
|
||||
PKG_URL="https://github.com/liberty-developer/inputstream.mpd/archive/$PKG_VERSION.tar.gz"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="inputstream.rtmp"
|
||||
PKG_VERSION="7bf2298"
|
||||
PKG_VERSION="9c05b8d"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.kodi.tv"
|
||||
PKG_URL="https://github.com/notspiff/inputstream.rtmp/archive/$PKG_VERSION.tar.gz"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="inputstream.smoothstream"
|
||||
PKG_VERSION="99e7771"
|
||||
PKG_VERSION="b63ecbb"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.kodi.tv"
|
||||
PKG_URL="https://github.com/mapfau/inputstream.smoothstream/archive/$PKG_VERSION.tar.gz"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="peripheral.joystick"
|
||||
PKG_VERSION="6090a90"
|
||||
PKG_VERSION="8653627"
|
||||
PKG_REV="0"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="pvr.argustv"
|
||||
PKG_VERSION="e536f32"
|
||||
PKG_VERSION="299088b"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="pvr.dvblink"
|
||||
PKG_VERSION="20e1ccb"
|
||||
PKG_VERSION="ea3d98c"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="pvr.dvbviewer"
|
||||
PKG_VERSION="7a7ead3"
|
||||
PKG_VERSION="f72c62f"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="pvr.filmon"
|
||||
PKG_VERSION="efd379b"
|
||||
PKG_VERSION="675c2b4"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="pvr.hdhomerun"
|
||||
PKG_VERSION="a71e816"
|
||||
PKG_VERSION="eef1bd1"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="pvr.hts"
|
||||
PKG_VERSION="66dcb89"
|
||||
PKG_VERSION="48b2e26"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="pvr.iptvsimple"
|
||||
PKG_VERSION="21e91a5"
|
||||
PKG_VERSION="a4c5255"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="pvr.mediaportal.tvserver"
|
||||
PKG_VERSION="72452b9"
|
||||
PKG_VERSION="1042a71"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="pvr.mythtv"
|
||||
PKG_VERSION="d10d210"
|
||||
PKG_VERSION="b1b426f"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="pvr.nextpvr"
|
||||
PKG_VERSION="32b3c2f"
|
||||
PKG_VERSION="4dabcf4"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="pvr.pctv"
|
||||
PKG_VERSION="12d8baf"
|
||||
PKG_VERSION="d6d969f"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="pvr.stalker"
|
||||
PKG_VERSION="b6cb9b8"
|
||||
PKG_VERSION="9c9c72e"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="pvr.vbox"
|
||||
PKG_VERSION="f38f82f"
|
||||
PKG_VERSION="2750c92"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="pvr.vdr.vnsi"
|
||||
PKG_VERSION="8515b4b"
|
||||
PKG_VERSION="40c45dc"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="pvr.vuplus"
|
||||
PKG_VERSION="4f2ad62"
|
||||
PKG_VERSION="7ab30d3"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="pvr.wmc"
|
||||
PKG_VERSION="979c37d"
|
||||
PKG_VERSION="d9eac84"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="screensaver.asteroids"
|
||||
PKG_VERSION="2adf852"
|
||||
PKG_VERSION="0fc066d"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="kodi-theme-Estuary"
|
||||
PKG_VERSION="17.0-alpha3-fc46cf2"
|
||||
PKG_VERSION="17.0-beta1-81d5d26"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -1,16 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<settings>
|
||||
|
||||
<section id="interface">
|
||||
<category id="other">
|
||||
<group id="2">
|
||||
<setting id="lookandfeel.enablerssfeeds">
|
||||
<default>false</default>
|
||||
</setting>
|
||||
</group>
|
||||
</category>
|
||||
</section>
|
||||
|
||||
<section id="system">
|
||||
<category id="display">
|
||||
<group id="1">
|
||||
@ -45,15 +35,7 @@
|
||||
</group>
|
||||
</category>
|
||||
|
||||
<category id="general">
|
||||
<group id="2">
|
||||
<setting id="services.zeroconf">
|
||||
<default>true</default>
|
||||
</setting>
|
||||
</group>
|
||||
</category>
|
||||
|
||||
<category id="webserver">
|
||||
<category id="control">
|
||||
<group id="1">
|
||||
<setting id="services.webserver">
|
||||
<default>true</default>
|
||||
|
@ -5,7 +5,6 @@
|
||||
provider-name="Team Kodi">
|
||||
<requires>
|
||||
<import addon="xbmc.addon" version="15.0.0"/>
|
||||
<import addon="kodi.game" version="1.0.0"/>
|
||||
</requires>
|
||||
<extension point="xbmc.addon.repository" name="Kodi game add-on repository (alpha)">
|
||||
<info compressed="false">https://raw.githubusercontent.com/kodi-game/repository.kodi.game/master/release/addons.xml</info>
|
||||
|
@ -17,13 +17,13 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="kodi"
|
||||
PKG_VERSION="17.0-alpha3-fc46cf2"
|
||||
PKG_VERSION="17.0-beta1-81d5d26"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.kodi.tv"
|
||||
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||
PKG_DEPENDS_TARGET="toolchain kodi:host xmlstarlet:host Python zlib systemd pciutils lzo pcre swig:host libass curl fontconfig fribidi tinyxml libjpeg-turbo freetype libcdio taglib libxml2 libxslt yajl sqlite ffmpeg crossguid giflib libdvdnav"
|
||||
PKG_DEPENDS_TARGET="toolchain kodi:host xmlstarlet:host Python zlib systemd pciutils lzo pcre swig:host libass curl fontconfig fribidi tinyxml libjpeg-turbo freetype libcdio taglib libxml2 libxslt yajl sqlite ffmpeg crossguid giflib libdvdnav libhdhomerun"
|
||||
PKG_DEPENDS_HOST="lzo:host libpng:host libjpeg-turbo:host giflib:host"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="mediacenter"
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,278 +0,0 @@
|
||||
From 3040f6024904eb1cf92a5b7b0e5268be756aecb0 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?P=C3=A4r=20Bj=C3=B6rklund?= <per@ohmy.nu>
|
||||
Date: Sun, 31 Jul 2016 21:33:55 +0200
|
||||
Subject: [PATCH] Add a recursive version of CDirectory::Remove
|
||||
|
||||
Tested on Windows and works
|
||||
Untested on POSIX systems
|
||||
---
|
||||
xbmc/Application.cpp | 6 ++--
|
||||
xbmc/filesystem/Directory.cpp | 27 +++++++++++++++
|
||||
xbmc/filesystem/Directory.h | 2 ++
|
||||
xbmc/filesystem/IDirectory.h | 7 ++++
|
||||
xbmc/filesystem/posix/PosixDirectory.cpp | 50 ++++++++++++++++++++++++++++
|
||||
xbmc/filesystem/posix/PosixDirectory.h | 1 +
|
||||
xbmc/filesystem/win32/Win32Directory.cpp | 56 ++++++++++++++++++++++++++++++++
|
||||
xbmc/filesystem/win32/Win32Directory.h | 13 ++++----
|
||||
8 files changed, 154 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/xbmc/Application.cpp b/xbmc/Application.cpp
|
||||
index edec038..00b24f4 100644
|
||||
--- a/xbmc/Application.cpp
|
||||
+++ b/xbmc/Application.cpp
|
||||
@@ -1079,8 +1079,10 @@ void CApplication::CreateUserDirs() const
|
||||
|
||||
//Let's clear our archive cache before starting up anything more
|
||||
auto archiveCachePath = CSpecialProtocol::TranslatePath("special://temp/archive_cache/");
|
||||
- CDirectory::Remove(archiveCachePath);
|
||||
- CDirectory::Create(archiveCachePath);
|
||||
+ if (CDirectory::RemoveRecursive(archiveCachePath))
|
||||
+ CDirectory::Create(archiveCachePath);
|
||||
+ else
|
||||
+ CLog::Log(LOGWARNING, "Failed to remove the archive cache at %s", archiveCachePath.c_str());
|
||||
|
||||
}
|
||||
|
||||
diff --git a/xbmc/filesystem/Directory.cpp b/xbmc/filesystem/Directory.cpp
|
||||
index 05a3e43..25c0ba4 100644
|
||||
--- a/xbmc/filesystem/Directory.cpp
|
||||
+++ b/xbmc/filesystem/Directory.cpp
|
||||
@@ -323,6 +323,11 @@ bool CDirectory::Remove(const std::string& strPath)
|
||||
return Remove(pathToUrl);
|
||||
}
|
||||
|
||||
+bool CDirectory::RemoveRecursive(const std::string& strPath)
|
||||
+{
|
||||
+ return RemoveRecursive(CURL{ strPath });
|
||||
+}
|
||||
+
|
||||
bool CDirectory::Remove(const CURL& url)
|
||||
{
|
||||
try
|
||||
@@ -345,6 +350,28 @@ bool CDirectory::Remove(const CURL& url)
|
||||
return false;
|
||||
}
|
||||
|
||||
+bool CDirectory::RemoveRecursive(const CURL& url)
|
||||
+{
|
||||
+ try
|
||||
+ {
|
||||
+ CURL realURL = URIUtils::SubstitutePath(url);
|
||||
+ std::unique_ptr<IDirectory> pDirectory(CDirectoryFactory::Create(realURL));
|
||||
+ if (pDirectory.get())
|
||||
+ if(pDirectory->RemoveRecursive(realURL))
|
||||
+ {
|
||||
+ g_directoryCache.ClearFile(realURL.Get());
|
||||
+ return true;
|
||||
+ }
|
||||
+ }
|
||||
+ XBMCCOMMONS_HANDLE_UNCHECKED
|
||||
+ catch (...)
|
||||
+ {
|
||||
+ CLog::Log(LOGERROR, "%s - Unhandled exception", __FUNCTION__);
|
||||
+ }
|
||||
+ CLog::Log(LOGERROR, "%s - Error removing %s", __FUNCTION__, url.GetRedacted().c_str());
|
||||
+ return false;
|
||||
+}
|
||||
+
|
||||
void CDirectory::FilterFileDirectories(CFileItemList &items, const std::string &mask)
|
||||
{
|
||||
for (int i=0; i< items.Size(); ++i)
|
||||
diff --git a/xbmc/filesystem/Directory.h b/xbmc/filesystem/Directory.h
|
||||
index bb06f32..a1f8f85 100644
|
||||
--- a/xbmc/filesystem/Directory.h
|
||||
+++ b/xbmc/filesystem/Directory.h
|
||||
@@ -58,6 +58,7 @@ class CDirectory
|
||||
static bool Create(const CURL& url);
|
||||
static bool Exists(const CURL& url, bool bUseCache = true);
|
||||
static bool Remove(const CURL& url);
|
||||
+ static bool RemoveRecursive(const CURL& url);
|
||||
|
||||
static bool GetDirectory(const std::string& strPath
|
||||
, CFileItemList &items
|
||||
@@ -73,6 +74,7 @@ class CDirectory
|
||||
static bool Create(const std::string& strPath);
|
||||
static bool Exists(const std::string& strPath, bool bUseCache = true);
|
||||
static bool Remove(const std::string& strPath);
|
||||
+ static bool RemoveRecursive(const std::string& strPath);
|
||||
|
||||
/*! \brief Filter files that act like directories from the list, replacing them with their directory counterparts
|
||||
\param items The item list to filter
|
||||
diff --git a/xbmc/filesystem/IDirectory.h b/xbmc/filesystem/IDirectory.h
|
||||
index 03e086b..246c4d0 100644
|
||||
--- a/xbmc/filesystem/IDirectory.h
|
||||
+++ b/xbmc/filesystem/IDirectory.h
|
||||
@@ -102,6 +102,13 @@ class IDirectory
|
||||
virtual bool Remove(const CURL& url) { return false; }
|
||||
|
||||
/*!
|
||||
+ \brief Recursively removes the directory
|
||||
+ \param url Directory to remove.
|
||||
+ \return Returns \e false if not succesful
|
||||
+ */
|
||||
+ virtual bool RemoveRecursive(const CURL& url) { return false; }
|
||||
+
|
||||
+ /*!
|
||||
\brief Whether this file should be listed
|
||||
\param url File to test.
|
||||
\return Returns \e true if the file should be listed
|
||||
diff --git a/xbmc/filesystem/posix/PosixDirectory.cpp b/xbmc/filesystem/posix/PosixDirectory.cpp
|
||||
index f23037d..c90572d 100644
|
||||
--- a/xbmc/filesystem/posix/PosixDirectory.cpp
|
||||
+++ b/xbmc/filesystem/posix/PosixDirectory.cpp
|
||||
@@ -128,6 +128,56 @@ bool CPosixDirectory::Remove(const CURL& url)
|
||||
|
||||
return !Exists(url);
|
||||
}
|
||||
+ bool CPosixDirectory::RemoveRecursive(const CURL& url)
|
||||
+ {
|
||||
+ std::string root = url.Get();
|
||||
+
|
||||
+ if (IsAliasShortcut(root, true))
|
||||
+ TranslateAliasShortcut(root);
|
||||
+
|
||||
+ DIR *dir = opendir(root.c_str());
|
||||
+ if (!dir)
|
||||
+ return false;
|
||||
+
|
||||
+ struct dirent* entry;
|
||||
+ while ((entry = readdir(dir)) != NULL)
|
||||
+ {
|
||||
+ if (strcmp(entry->d_name, ".") == 0 || strcmp(entry->d_name, "..") == 0)
|
||||
+ continue;
|
||||
+
|
||||
+ std::string itemLabel(entry->d_name);
|
||||
+ CCharsetConverter::unknownToUTF8(itemLabel);
|
||||
+ std::string itemPath(URIUtils::AddFileToFolder(root, entry->d_name));
|
||||
+
|
||||
+ bool bStat = false;
|
||||
+ struct stat buffer;
|
||||
+
|
||||
+ // Unix-based readdir implementations may return an incorrect dirent.d_ino value that
|
||||
+ // is not equal to the (correct) stat() obtained one. In this case the file type
|
||||
+ // could not be determined and the value of dirent.d_type is set to DT_UNKNOWN.
|
||||
+ // In order to get a correct value we have to incur the cost of calling stat.
|
||||
+ if (entry->d_type == DT_UNKNOWN || entry->d_type == DT_LNK)
|
||||
+ {
|
||||
+ if (stat(itemPath.c_str(), &buffer) == 0)
|
||||
+ bStat = true;
|
||||
+ }
|
||||
+
|
||||
+ if (entry->d_type == DT_DIR || (bStat && S_ISDIR(buffer.st_mode)))
|
||||
+ {
|
||||
+ if (!RemoveRecursive(CURL{ itemPath }))
|
||||
+ return false;
|
||||
+ if (rmdir(itemPath.c_str()) != 0)
|
||||
+ return false;
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ if (unlink(itemPath.c_str()) != 0)
|
||||
+ return false;
|
||||
+ }
|
||||
+ }
|
||||
+ closedir(dir);
|
||||
+ return true;
|
||||
+ }
|
||||
|
||||
bool CPosixDirectory::Exists(const CURL& url)
|
||||
{
|
||||
diff --git a/xbmc/filesystem/posix/PosixDirectory.h b/xbmc/filesystem/posix/PosixDirectory.h
|
||||
index 91b97c6..8c2a837 100644
|
||||
--- a/xbmc/filesystem/posix/PosixDirectory.h
|
||||
+++ b/xbmc/filesystem/posix/PosixDirectory.h
|
||||
@@ -33,5 +33,6 @@ class CPosixDirectory : public IDirectory
|
||||
virtual bool Create(const CURL& url);
|
||||
virtual bool Exists(const CURL& url);
|
||||
virtual bool Remove(const CURL& url);
|
||||
+ virtual bool RemoveRecursive(const CURL& url);
|
||||
};
|
||||
}
|
||||
diff --git a/xbmc/filesystem/win32/Win32Directory.cpp b/xbmc/filesystem/win32/Win32Directory.cpp
|
||||
index 339cefa..c580c2b 100644
|
||||
--- a/xbmc/filesystem/win32/Win32Directory.cpp
|
||||
+++ b/xbmc/filesystem/win32/Win32Directory.cpp
|
||||
@@ -178,4 +178,60 @@ bool CWin32Directory::Remove(const CURL& url)
|
||||
return !Exists(url);
|
||||
}
|
||||
|
||||
+bool CWin32Directory::RemoveRecursive(const CURL& url)
|
||||
+{
|
||||
+ std::string pathWithSlash(url.Get());
|
||||
+ if (!pathWithSlash.empty() && pathWithSlash.back() != '\\')
|
||||
+ pathWithSlash.push_back('\\');
|
||||
+
|
||||
+ auto basePath = CWIN32Util::ConvertPathToWin32Form(pathWithSlash);
|
||||
+ if (basePath.empty())
|
||||
+ return false;
|
||||
+
|
||||
+ auto searchMask = basePath + L'*';
|
||||
+
|
||||
+ HANDLE hSearch;
|
||||
+ WIN32_FIND_DATAW findData = {};
|
||||
+
|
||||
+ if (g_sysinfo.IsWindowsVersionAtLeast(CSysInfo::WindowsVersionWin7))
|
||||
+ hSearch = FindFirstFileExW(searchMask.c_str(), FindExInfoBasic, &findData, FindExSearchNameMatch, nullptr, FIND_FIRST_EX_LARGE_FETCH);
|
||||
+ else
|
||||
+ hSearch = FindFirstFileExW(searchMask.c_str(), FindExInfoStandard, &findData, FindExSearchNameMatch, nullptr, 0);
|
||||
+
|
||||
+ if (hSearch == INVALID_HANDLE_VALUE)
|
||||
+ return GetLastError() == ERROR_FILE_NOT_FOUND ? Exists(url) : false; // return true if directory exist and empty
|
||||
+
|
||||
+ do
|
||||
+ {
|
||||
+ std::wstring itemNameW(findData.cFileName);
|
||||
+ if (itemNameW == L"." || itemNameW == L"..")
|
||||
+ continue;
|
||||
+
|
||||
+ auto pathW = basePath + itemNameW;
|
||||
+ if (0 != (findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
|
||||
+ {
|
||||
+ std::string path;
|
||||
+ if (!g_charsetConverter.wToUTF8(pathW, path, true))
|
||||
+ {
|
||||
+ CLog::Log(LOGERROR, "%s: Can't convert wide string name to UTF-8 encoding", __FUNCTION__);
|
||||
+ continue;
|
||||
+ }
|
||||
+
|
||||
+ if (!RemoveRecursive(CURL{ path }))
|
||||
+ return false;
|
||||
+
|
||||
+ if (FALSE == RemoveDirectoryW(pathW.c_str()))
|
||||
+ return false;
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ if (FALSE == DeleteFileW(pathW.c_str()))
|
||||
+ return false;
|
||||
+ }
|
||||
+ } while (FindNextFileW(hSearch, &findData));
|
||||
+
|
||||
+ FindClose(hSearch);
|
||||
+
|
||||
+ return true;
|
||||
+}
|
||||
#endif // TARGET_WINDOWS
|
||||
diff --git a/xbmc/filesystem/win32/Win32Directory.h b/xbmc/filesystem/win32/Win32Directory.h
|
||||
index 2d77588..c03e68b 100644
|
||||
--- a/xbmc/filesystem/win32/Win32Directory.h
|
||||
+++ b/xbmc/filesystem/win32/Win32Directory.h
|
||||
@@ -27,11 +27,12 @@ namespace XFILE
|
||||
class CWin32Directory : public IDirectory
|
||||
{
|
||||
public:
|
||||
- CWin32Directory(void);
|
||||
- virtual ~CWin32Directory(void);
|
||||
- virtual bool GetDirectory(const CURL& url, CFileItemList &items);
|
||||
- virtual bool Create(const CURL& url);
|
||||
- virtual bool Exists(const CURL& url);
|
||||
- virtual bool Remove(const CURL& url);
|
||||
+ CWin32Directory();
|
||||
+ virtual ~CWin32Directory();
|
||||
+ bool GetDirectory(const CURL& url, CFileItemList &items) override;
|
||||
+ bool Create(const CURL& url) override;
|
||||
+ bool Exists(const CURL& url) override;
|
||||
+ bool Remove(const CURL& url) override;
|
||||
+ bool RemoveRecursive(const CURL& url) override;
|
||||
};
|
||||
}
|
@ -1,24 +0,0 @@
|
||||
From 793d8434039e88f2fe098c51ff2a98561c54debc Mon Sep 17 00:00:00 2001
|
||||
From: Rainer Hochecker <fernetmenta@online.de>
|
||||
Date: Mon, 1 Aug 2016 19:58:17 +0200
|
||||
Subject: [PATCH] VideoPlayer: fix handling of progressive content in
|
||||
RenderManager
|
||||
|
||||
---
|
||||
xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.cpp | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.cpp b/xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.cpp
|
||||
index b482fc1..558a1f3 100644
|
||||
--- a/xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.cpp
|
||||
+++ b/xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.cpp
|
||||
@@ -806,6 +806,9 @@ void CRenderManager::FlipPage(volatile std::atomic_bool& bStop, double pts /* =
|
||||
}
|
||||
else
|
||||
{
|
||||
+ if (sync == FS_NONE)
|
||||
+ presentmethod = PRESENT_METHOD_SINGLE;
|
||||
+ else
|
||||
{
|
||||
bool invert = false;
|
||||
if (interlacemethod == VS_INTERLACEMETHOD_RENDER_BLEND)
|
135
packages/mediacenter/kodi/patches/kodi-999.99-PR10309.patch
Normal file
135
packages/mediacenter/kodi/patches/kodi-999.99-PR10309.patch
Normal file
@ -0,0 +1,135 @@
|
||||
From ee2dc577a03d86ac61e06bc95aaff1d1eddbf593 Mon Sep 17 00:00:00 2001
|
||||
From: Garrett Brown <themagnificentmrb@gmail.com>
|
||||
Date: Thu, 18 Aug 2016 14:10:36 -0700
|
||||
Subject: [PATCH] Rename CPeripherals::GetAddon() to GetAddonWithButtonMap()
|
||||
and move to addon bus
|
||||
|
||||
---
|
||||
xbmc/peripherals/Peripherals.cpp | 26 +++++----------------
|
||||
xbmc/peripherals/Peripherals.h | 2 +-
|
||||
xbmc/peripherals/addons/AddonButtonMapping.cpp | 2 +-
|
||||
xbmc/peripherals/addons/AddonInputHandling.cpp | 2 +-
|
||||
.../peripherals/bus/virtual/PeripheralBusAddon.cpp | 27 ++++++++++++++++++----
|
||||
5 files changed, 31 insertions(+), 28 deletions(-)
|
||||
|
||||
diff --git a/xbmc/peripherals/Peripherals.cpp b/xbmc/peripherals/Peripherals.cpp
|
||||
index 629846d..30f160e 100644
|
||||
--- a/xbmc/peripherals/Peripherals.cpp
|
||||
+++ b/xbmc/peripherals/Peripherals.cpp
|
||||
@@ -762,29 +762,15 @@ void CPeripherals::ProcessEvents(void)
|
||||
bus->ProcessEvents();
|
||||
}
|
||||
|
||||
-PeripheralAddonPtr CPeripherals::GetAddon(const CPeripheral* device)
|
||||
+PeripheralAddonPtr CPeripherals::GetAddonWithButtonMap(const CPeripheral* device)
|
||||
{
|
||||
- PeripheralAddonPtr addon;
|
||||
-
|
||||
PeripheralBusAddonPtr addonBus = std::static_pointer_cast<CPeripheralBusAddon>(GetBusByType(PERIPHERAL_BUS_ADDON));
|
||||
- if (device && addonBus)
|
||||
- {
|
||||
- PeripheralBusType busType = device->GetBusType();
|
||||
|
||||
- if (busType == PERIPHERAL_BUS_ADDON)
|
||||
- {
|
||||
- // If device is from an add-on, use that add-on
|
||||
- PeripheralAddonPtr peripheralAddon;
|
||||
- unsigned int index;
|
||||
- if (addonBus->SplitLocation(device->Location(), addon, index))
|
||||
- addon = std::move(peripheralAddon);
|
||||
- }
|
||||
- else
|
||||
- {
|
||||
- // Otherwise, have the add-on bus find a suitable add-on
|
||||
- addonBus->GetAddonWithButtonMap(device, addon);
|
||||
- }
|
||||
- }
|
||||
+ PeripheralAddonPtr addon;
|
||||
+
|
||||
+ PeripheralAddonPtr addonWithButtonMap;
|
||||
+ if (addonBus && addonBus->GetAddonWithButtonMap(device, addonWithButtonMap))
|
||||
+ addon = std::move(addonWithButtonMap);
|
||||
|
||||
return addon;
|
||||
}
|
||||
diff --git a/xbmc/peripherals/Peripherals.h b/xbmc/peripherals/Peripherals.h
|
||||
index b66970d..33ca7fb 100644
|
||||
--- a/xbmc/peripherals/Peripherals.h
|
||||
+++ b/xbmc/peripherals/Peripherals.h
|
||||
@@ -239,7 +239,7 @@ namespace PERIPHERALS
|
||||
// implementation of IEventScannerCallback
|
||||
virtual void ProcessEvents(void) override;
|
||||
|
||||
- virtual PeripheralAddonPtr GetAddon(const CPeripheral* device);
|
||||
+ virtual PeripheralAddonPtr GetAddonWithButtonMap(const CPeripheral* device);
|
||||
|
||||
virtual void ResetButtonMaps(const std::string& controllerId);
|
||||
|
||||
diff --git a/xbmc/peripherals/addons/AddonButtonMapping.cpp b/xbmc/peripherals/addons/AddonButtonMapping.cpp
|
||||
index 818e894..32a45c2 100644
|
||||
--- a/xbmc/peripherals/addons/AddonButtonMapping.cpp
|
||||
+++ b/xbmc/peripherals/addons/AddonButtonMapping.cpp
|
||||
@@ -29,7 +29,7 @@ using namespace PERIPHERALS;
|
||||
|
||||
CAddonButtonMapping::CAddonButtonMapping(CPeripheral* peripheral, IButtonMapper* mapper)
|
||||
{
|
||||
- PeripheralAddonPtr addon = g_peripherals.GetAddon(peripheral);
|
||||
+ PeripheralAddonPtr addon = g_peripherals.GetAddonWithButtonMap(peripheral);
|
||||
|
||||
if (!addon)
|
||||
{
|
||||
diff --git a/xbmc/peripherals/addons/AddonInputHandling.cpp b/xbmc/peripherals/addons/AddonInputHandling.cpp
|
||||
index 7a29c9e..89527f4 100644
|
||||
--- a/xbmc/peripherals/addons/AddonInputHandling.cpp
|
||||
+++ b/xbmc/peripherals/addons/AddonInputHandling.cpp
|
||||
@@ -32,7 +32,7 @@ using namespace PERIPHERALS;
|
||||
|
||||
CAddonInputHandling::CAddonInputHandling(CPeripheral* peripheral, IInputHandler* handler, IDriverReceiver* receiver)
|
||||
{
|
||||
- PeripheralAddonPtr addon = g_peripherals.GetAddon(peripheral);
|
||||
+ PeripheralAddonPtr addon = g_peripherals.GetAddonWithButtonMap(peripheral);
|
||||
|
||||
if (!addon)
|
||||
{
|
||||
diff --git a/xbmc/peripherals/bus/virtual/PeripheralBusAddon.cpp b/xbmc/peripherals/bus/virtual/PeripheralBusAddon.cpp
|
||||
index b533686..2426285 100644
|
||||
--- a/xbmc/peripherals/bus/virtual/PeripheralBusAddon.cpp
|
||||
+++ b/xbmc/peripherals/bus/virtual/PeripheralBusAddon.cpp
|
||||
@@ -80,15 +80,32 @@ bool CPeripheralBusAddon::GetAddon(const std::string &strId, AddonPtr &addon) co
|
||||
bool CPeripheralBusAddon::GetAddonWithButtonMap(const CPeripheral* device, PeripheralAddonPtr &addon) const
|
||||
{
|
||||
CSingleLock lock(m_critSection);
|
||||
- for (const auto& addonIt : m_addons)
|
||||
+
|
||||
+ // If device is from an add-on, try to use that add-on
|
||||
+ if (device && device->GetBusType() == PERIPHERAL_BUS_ADDON)
|
||||
{
|
||||
- if (addonIt->HasButtonMaps())
|
||||
+ PeripheralAddonPtr addonWithButtonMap;
|
||||
+ unsigned int index;
|
||||
+ if (SplitLocation(device->Location(), addonWithButtonMap, index))
|
||||
{
|
||||
- addon = addonIt;
|
||||
- return true;
|
||||
+ if (addonWithButtonMap->HasButtonMaps())
|
||||
+ addon = std::move(addonWithButtonMap);
|
||||
}
|
||||
}
|
||||
- return false;
|
||||
+
|
||||
+ if (!addon)
|
||||
+ {
|
||||
+ auto it = std::find_if(m_addons.begin(), m_addons.end(),
|
||||
+ [](const PeripheralAddonPtr& addon)
|
||||
+ {
|
||||
+ return addon->HasButtonMaps();
|
||||
+ });
|
||||
+
|
||||
+ if (it != m_addons.end())
|
||||
+ addon = *it;
|
||||
+ }
|
||||
+
|
||||
+ return addon.get() != nullptr;
|
||||
}
|
||||
|
||||
unsigned int CPeripheralBusAddon::GetAddonCount(void) const
|
82
packages/mediacenter/kodi/patches/kodi-999.99-PR10345.patch
Normal file
82
packages/mediacenter/kodi/patches/kodi-999.99-PR10345.patch
Normal file
@ -0,0 +1,82 @@
|
||||
From 11c81dbb3d0ccfbe3a4197890dea09801617eae2 Mon Sep 17 00:00:00 2001
|
||||
From: mapfau <pfau@peakwork.de>
|
||||
Date: Sun, 28 Aug 2016 23:15:34 +0200
|
||||
Subject: [PATCH] check for kodi.inputstream version
|
||||
|
||||
---
|
||||
xbmc/addons/InputStream.cpp | 23 +++++++++++++++++++++--
|
||||
xbmc/addons/InputStream.h | 4 +++-
|
||||
2 files changed, 24 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/xbmc/addons/InputStream.cpp b/xbmc/addons/InputStream.cpp
|
||||
index 9d6aee2..5d09a4c 100644
|
||||
--- a/xbmc/addons/InputStream.cpp
|
||||
+++ b/xbmc/addons/InputStream.cpp
|
||||
@@ -36,8 +36,22 @@ std::unique_ptr<CInputStream> CInputStream::FromExtension(AddonProps props, cons
|
||||
std::string extensions = CAddonMgr::GetInstance().GetExtValue(ext->configuration, "@extension");
|
||||
std::string protocols = CAddonMgr::GetInstance().GetExtValue(ext->configuration, "@protocols");
|
||||
std::string name(ext->plugin->identifier);
|
||||
+
|
||||
+ bool matchAPIVersion(true);
|
||||
+ for (unsigned int i(0); i < ext->plugin->num_imports; ++i)
|
||||
+ if (strcmp(ext->plugin->imports[i].plugin_id, "kodi.inputstream") == 0 && strcmp(ext->plugin->imports[i].version, INPUTSTREAM_API_VERSION) != 0)
|
||||
+ {
|
||||
+ matchAPIVersion = false;
|
||||
+ CLog::Log(LOGNOTICE, "CInputStream::FromExtension - %s (%s) not loaded due to API mismatch, has %s, wanted %s",
|
||||
+ props.id.c_str(),
|
||||
+ props.version.Upstream().c_str(),
|
||||
+ ext->plugin->imports[i].version,
|
||||
+ INPUTSTREAM_API_VERSION);
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
std::unique_ptr<CInputStream> istr(new CInputStream(props, name, listitemprops,
|
||||
- extensions, protocols));
|
||||
+ extensions, protocols, matchAPIVersion));
|
||||
istr->CheckConfig();
|
||||
return istr;
|
||||
}
|
||||
@@ -46,8 +60,10 @@ CInputStream::CInputStream(const AddonProps& props,
|
||||
const std::string& name,
|
||||
const std::string& listitemprops,
|
||||
const std::string& extensions,
|
||||
- const std::string& protocols)
|
||||
+ const std::string& protocols,
|
||||
+ bool matchAPIVersion)
|
||||
: InputStreamDll(std::move(props))
|
||||
+, m_matchAPIVersion(matchAPIVersion)
|
||||
{
|
||||
m_fileItemProps = StringUtils::Tokenize(listitemprops, "|");
|
||||
for (auto &key : m_fileItemProps)
|
||||
@@ -71,6 +87,9 @@ CInputStream::CInputStream(const AddonProps& props,
|
||||
|
||||
bool CInputStream::CheckAPIVersion()
|
||||
{
|
||||
+ if (!m_matchAPIVersion)
|
||||
+ return false;
|
||||
+
|
||||
std::string dllVersion = m_pStruct->GetApiVersion();
|
||||
if (dllVersion.compare(INPUTSTREAM_API_VERSION) != 0)
|
||||
{
|
||||
diff --git a/xbmc/addons/InputStream.h b/xbmc/addons/InputStream.h
|
||||
index c081472..328e036 100644
|
||||
--- a/xbmc/addons/InputStream.h
|
||||
+++ b/xbmc/addons/InputStream.h
|
||||
@@ -46,7 +46,8 @@ namespace ADDON
|
||||
const std::string& name,
|
||||
const std::string& listitemprops,
|
||||
const std::string& extensions,
|
||||
- const std::string& protocols);
|
||||
+ const std::string& protocols,
|
||||
+ bool hasAPIVersion);
|
||||
virtual ~CInputStream() {}
|
||||
|
||||
virtual void SaveSettings() override;
|
||||
@@ -100,6 +101,7 @@ namespace ADDON
|
||||
std::vector<std::string> m_extensionsList;
|
||||
std::vector<std::string> m_protocolsList;
|
||||
INPUTSTREAM_CAPABILITIES m_caps;
|
||||
+ bool m_matchAPIVersion;
|
||||
std::map<int, CDemuxStream*> m_streams;
|
||||
|
||||
static CCriticalSection m_parentSection;
|
@ -1,75 +0,0 @@
|
||||
From 9fe38dcb04d89770e12d374880b3115acd9da4f1 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Fetzer <fetzer.ch@gmail.com>
|
||||
Date: Tue, 2 Aug 2016 07:54:15 +0200
|
||||
Subject: [PATCH] [VideoPlayer] Fix build after dropping deinterlacing mode
|
||||
|
||||
25718f4ccebd227eaf63f0f8b53f0552f89f01e5 forgot to remove some methods
|
||||
that still use EDEINTERLACEMODE.
|
||||
---
|
||||
.../VideoPlayer/VideoRenderers/HwDecRender/RendererAML.cpp | 10 ----------
|
||||
.../cores/VideoPlayer/VideoRenderers/HwDecRender/RendererAML.h | 1 -
|
||||
.../VideoPlayer/VideoRenderers/HwDecRender/RendererOpenMax.cpp | 5 -----
|
||||
.../VideoPlayer/VideoRenderers/HwDecRender/RendererOpenMax.h | 1 -
|
||||
4 files changed, 17 deletions(-)
|
||||
|
||||
diff --git a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/RendererAML.cpp b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/RendererAML.cpp
|
||||
index d0baa27..d8674c8 100644
|
||||
--- a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/RendererAML.cpp
|
||||
+++ b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/RendererAML.cpp
|
||||
@@ -81,16 +81,6 @@ bool CRendererAML::Supports(EINTERLACEMETHOD method)
|
||||
return false;
|
||||
}
|
||||
|
||||
-bool CRendererAML::Supports(EDEINTERLACEMODE mode)
|
||||
-{
|
||||
- if(mode == VS_DEINTERLACEMODE_OFF
|
||||
- || mode == VS_DEINTERLACEMODE_AUTO
|
||||
- || mode == VS_DEINTERLACEMODE_FORCE)
|
||||
- return true;
|
||||
-
|
||||
- return false;
|
||||
-}
|
||||
-
|
||||
bool CRendererAML::Supports(ESCALINGMETHOD method)
|
||||
{
|
||||
return false;
|
||||
diff --git a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/RendererAML.h b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/RendererAML.h
|
||||
index 819f6e3..828f584a 100644
|
||||
--- a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/RendererAML.h
|
||||
+++ b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/RendererAML.h
|
||||
@@ -41,7 +41,6 @@ class CRendererAML : public CLinuxRendererGLES
|
||||
|
||||
// Feature support
|
||||
virtual bool Supports(EINTERLACEMETHOD method);
|
||||
- virtual bool Supports(EDEINTERLACEMODE mode);
|
||||
virtual bool Supports(ESCALINGMETHOD method);
|
||||
virtual bool Supports(ERENDERFEATURE feature);
|
||||
|
||||
diff --git a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/RendererOpenMax.cpp b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/RendererOpenMax.cpp
|
||||
index 0fb0312..ba05557 100644
|
||||
--- a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/RendererOpenMax.cpp
|
||||
+++ b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/RendererOpenMax.cpp
|
||||
@@ -71,11 +71,6 @@ bool CRendererOMX::Supports(EINTERLACEMETHOD method)
|
||||
return false;
|
||||
}
|
||||
|
||||
-bool CRendererOMX::Supports(EDEINTERLACEMODE mode)
|
||||
-{
|
||||
- return false;
|
||||
-}
|
||||
-
|
||||
bool CRendererOMX::Supports(ESCALINGMETHOD mode)
|
||||
{
|
||||
return false;
|
||||
diff --git a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/RendererOpenMax.h b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/RendererOpenMax.h
|
||||
index 5f18452..6e84cb2 100644
|
||||
--- a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/RendererOpenMax.h
|
||||
+++ b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/RendererOpenMax.h
|
||||
@@ -38,7 +38,6 @@ class CRendererOMX : public CLinuxRendererGLES
|
||||
|
||||
// Feature support
|
||||
virtual bool Supports(EINTERLACEMETHOD method);
|
||||
- virtual bool Supports(EDEINTERLACEMODE mode);
|
||||
virtual bool Supports(ESCALINGMETHOD method);
|
||||
|
||||
|
@ -45,9 +45,8 @@ single_stacktrace()
|
||||
|
||||
print_crash_report()
|
||||
{
|
||||
if [ ! -d $CRASHLOG_DIR ] ; then
|
||||
mkdir -p $CRASHLOG_DIR
|
||||
fi
|
||||
mkdir -p $CRASHLOG_DIR
|
||||
|
||||
DATE=`date +%Y%m%d%H%M%S`
|
||||
FILE="$CRASHLOG_DIR/.kodi_crashlog.log"
|
||||
echo "############## kodi CRASH LOG ###############" > $FILE
|
||||
|
@ -9,6 +9,8 @@ Environment=__GL_YIELD=USLEEP
|
||||
Environment=DISPLAY=:0.0
|
||||
Environment=SDL_MOUSE_RELATIVE=0
|
||||
Environment=HOME=/storage
|
||||
Environment=KODI_TEMP=/storage/.kodi/temp
|
||||
Environment=KODI_HOME=/usr/share/kodi/
|
||||
EnvironmentFile=-/run/libreelec/kodi.conf
|
||||
EnvironmentFile=-/run/libreelec/debug/kodi.conf
|
||||
ExecStartPre=-/usr/lib/kodi/kodi-config
|
||||
|
@ -18,7 +18,7 @@
|
||||
|
||||
PKG_NAME="ffmpeg"
|
||||
# Current branch is: release/3.1-xbmc
|
||||
PKG_VERSION="c65cfe4"
|
||||
PKG_VERSION="6da2f5f"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="LGPLv2.1+"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="expat"
|
||||
PKG_VERSION="2.1.1"
|
||||
PKG_VERSION="2.2.0"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="OSS"
|
||||
|
@ -25,7 +25,7 @@
|
||||
# there: http://forum.xbmc.org/showthread.php?tid=177557
|
||||
|
||||
PKG_NAME="curl"
|
||||
PKG_VERSION="7.49.1"
|
||||
PKG_VERSION="7.50.1"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="MIT"
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user