diff --git a/packages/mediacenter/kodi/package.mk b/packages/mediacenter/kodi/package.mk index c50fa312eb..f1a113c375 100644 --- a/packages/mediacenter/kodi/package.mk +++ b/packages/mediacenter/kodi/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="kodi" -PKG_VERSION="147cec4" +PKG_VERSION="3aa19b0" PKG_ARCH="any" PKG_LICENSE="GPL" PKG_SITE="http://www.kodi.tv" diff --git a/packages/mediacenter/kodi/patches/aarch64/kodi-0003-EGLNativeTypeAmlogic-Enable-GUI-free_scale-when-framebuffer-size-is-less-than-output.patch b/packages/mediacenter/kodi/patches/aarch64/kodi-0003-EGLNativeTypeAmlogic-Enable-GUI-free_scale-when-framebuffer-size-is-less-than-output.patch index 728e967992..cb9ced9133 100644 --- a/packages/mediacenter/kodi/patches/aarch64/kodi-0003-EGLNativeTypeAmlogic-Enable-GUI-free_scale-when-framebuffer-size-is-less-than-output.patch +++ b/packages/mediacenter/kodi/patches/aarch64/kodi-0003-EGLNativeTypeAmlogic-Enable-GUI-free_scale-when-framebuffer-size-is-less-than-output.patch @@ -1,4 +1,4 @@ -From a348ef744e260f76e1e4e1299f9181ae40352eb5 Mon Sep 17 00:00:00 2001 +From 9be904d691012c452d58fbaa4817de9c5d84ee87 Mon Sep 17 00:00:00 2001 From: kszaq Date: Mon, 22 Aug 2016 06:55:00 +0200 Subject: [PATCH] EGLNativeTypeAmlogic: Enable GUI free_scale when framebuffer @@ -8,40 +8,24 @@ For 4K output Kodi renders GUI at 1080p and this results in GUI covering only 1/ This patch enables hardware upscaling if output resolution is greater than rendered GUI resolution. --- - xbmc/windowing/egl/EGLNativeTypeAmlogic.cpp | 33 ++++++++++++++++++++++++++--- + xbmc/windowing/egl/EGLNativeTypeAmlogic.cpp | 25 +++++++++++++++++++++++++ xbmc/windowing/egl/EGLNativeTypeAmlogic.h | 2 ++ - 2 files changed, 32 insertions(+), 3 deletions(-) + 2 files changed, 27 insertions(+) diff --git a/xbmc/windowing/egl/EGLNativeTypeAmlogic.cpp b/xbmc/windowing/egl/EGLNativeTypeAmlogic.cpp -index 88cd385..3cbb604 100644 +index 711d892..421a2af 100644 --- a/xbmc/windowing/egl/EGLNativeTypeAmlogic.cpp +++ b/xbmc/windowing/egl/EGLNativeTypeAmlogic.cpp -@@ -133,6 +133,8 @@ bool CEGLNativeTypeAmlogic::GetNativeResolution(RESOLUTION_INFO *res) const +@@ -151,6 +151,8 @@ bool CEGLNativeTypeAmlogic::SetNativeResolution(const RESOLUTION_INFO &res) + if (res.strId != mode) + result = SetDisplayResolution(res.strId.c_str()); - bool CEGLNativeTypeAmlogic::SetNativeResolution(const RESOLUTION_INFO &res) - { -+ bool result = false; -+ - #if defined(_FBDEV_WINDOW_H_) - if (m_nativeWindow) - { -@@ -144,10 +146,12 @@ bool CEGLNativeTypeAmlogic::SetNativeResolution(const RESOLUTION_INFO &res) - // Don't set the same mode as current - std::string mode; - SysfsUtils::GetString("/sys/class/display/mode", mode); -- if (res.strId == mode) -- return false; -+ if (res.strId != mode) -+ result = SetDisplayResolution(res.strId.c_str()); -+ + DealWithScale(res); - -- return SetDisplayResolution(res.strId.c_str()); -+ return result; - } - - bool CEGLNativeTypeAmlogic::ProbeResolutions(std::vector &resolutions) -@@ -220,6 +224,29 @@ void CEGLNativeTypeAmlogic::SetupVideoScaling(const char *mode) ++ + RENDER_STEREO_MODE stereo_mode = g_graphicsContext.GetStereoMode(); + aml_handle_display_stereo_mode(stereo_mode); + +@@ -233,6 +235,29 @@ void CEGLNativeTypeAmlogic::SetupVideoScaling(const char *mode) SysfsUtils::SetInt("/sys/class/graphics/fb0/blank", 0); } diff --git a/packages/mediacenter/kodi/patches/kodi-100.16-smb-maxprotocol-visible.patch b/packages/mediacenter/kodi/patches/kodi-100.16-smb-maxprotocol-visible.patch new file mode 100644 index 0000000000..42afc99dc2 --- /dev/null +++ b/packages/mediacenter/kodi/patches/kodi-100.16-smb-maxprotocol-visible.patch @@ -0,0 +1,11 @@ +--- a/system/settings/settings.xml 2017-08-05 04:22:39.894495691 +0100 ++++ b/system/settings/settings.xml 2017-08-05 07:41:42.493159153 +0100 +@@ -1964,7 +1964,7 @@ + + + 2 +- false ++ true + 0 + + diff --git a/packages/mediacenter/kodi/patches/kodi-999.18-PR12111-smbclient-changes-for-samba4.patch b/packages/mediacenter/kodi/patches/kodi-999.18-PR12111-smbclient-changes-for-samba4.patch deleted file mode 100644 index ddb5ab4e3f..0000000000 --- a/packages/mediacenter/kodi/patches/kodi-999.18-PR12111-smbclient-changes-for-samba4.patch +++ /dev/null @@ -1,242 +0,0 @@ -From 5c7b7960036917338e0830ba2986b62c36bb5589 Mon Sep 17 00:00:00 2001 -From: chewitt -Date: Tue, 16 May 2017 12:51:32 +0100 -Subject: [PATCH] smbclient: cleanup smbclient configuration - ---- - .../resource.language.en_gb/resources/strings.po | 44 ++++++++++++++++++++- - system/settings/settings.xml | 21 ++++++++-- - xbmc/filesystem/SMBFile.cpp | 45 ++++++++++++++-------- - xbmc/network/NetworkServices.cpp | 3 +- - xbmc/settings/Settings.cpp | 2 + - xbmc/settings/Settings.h | 1 + - 6 files changed, 95 insertions(+), 21 deletions(-) - -diff --git a/addons/resource.language.en_gb/resources/strings.po b/addons/resource.language.en_gb/resources/strings.po -index e0060d1fae55..e8e3f2c169ec 100644 ---- a/addons/resource.language.en_gb/resources/strings.po -+++ b/addons/resource.language.en_gb/resources/strings.po -@@ -19063,7 +19063,49 @@ msgctxt "#36620" - msgid "Enable high quality downscaling of pictures (uses more memory and has moderate performance impact)." - msgstr "" - --#empty strings from id 36621 to 36899 -+#. Label of a setting, allow the maximum smbclient protocol to be configured -+#: system/settings/settings.xml -+msgctxt "#36621" -+msgid "Maximum protocol version" -+msgstr "" -+ -+#. Description of setting with label #36621 "Maximum protocol version" -+#: system/settings/settings.xml -+msgctxt "#36622" -+msgid "Set the maximum SMB protocol version to negotiate when making connections. Forcing SMBv2 or SMBv1 compatibility may be required with older NAS and Windows shares." -+msgstr "" -+ -+#. Values for setting with label #36621 "Maximum protocol version" - none means "no protocol version is forced" -+#: system/settings/settings.xml -+msgctxt "#36623" -+msgid "None" -+msgstr "" -+ -+#. Values for setting with label #36621 "Maximum protocol version" -+#: system/settings/settings.xml -+msgctxt "#36624" -+msgid "SMBv1" -+msgstr "" -+ -+#. Values for setting with label #36621 "Maximum protocol version" -+#: system/settings/settings.xml -+msgctxt "#36625" -+msgid "SMBv2" -+msgstr "" -+ -+#. Values for setting with label #36621 "Maximum protocol version" -+#: system/settings/settings.xml -+msgctxt "#36626" -+msgid "SMBv3" -+msgstr "" -+ -+#. Label of a group, that allows configuration of the system SMB client -+#: system/settings/settings.xml -+msgctxt "#36627" -+msgid "Client" -+msgstr "" -+ -+#empty strings from id 36628 to 36899 - - #: xbmc/media/MediaType.cpp - msgctxt "#36900" -diff --git a/system/settings/settings.xml b/system/settings/settings.xml -index 301e7276e5b7..f453ed0ad296 100644 ---- a/system/settings/settings.xml -+++ b/system/settings/settings.xml -@@ -1944,15 +1944,30 @@ - - HAS_FILESYSTEM_SMB - -+ -+ 2 -+ WORKGROUP -+ -+ -+ -+ - - 2 - 0.0.0.0 - - -- -+ - 2 -- WORKGROUP -- -+ 3 -+ -+ -+ -+ -+ -+ -+ -+ -+ - - - -diff --git a/xbmc/filesystem/SMBFile.cpp b/xbmc/filesystem/SMBFile.cpp -index e53d5552cf10..e5301b0452f9 100644 ---- a/xbmc/filesystem/SMBFile.cpp -+++ b/xbmc/filesystem/SMBFile.cpp -@@ -27,6 +27,7 @@ - #include "PasswordManager.h" - #include "SMBDirectory.h" - #include -+#include "filesystem/SpecialProtocol.h" - #include "settings/AdvancedSettings.h" - #include "settings/Settings.h" - #include "threads/SingleLock.h" -@@ -91,34 +92,39 @@ void CSMB::Deinit() - void CSMB::Init() - { - CSingleLock lock(*this); -+ - if (!m_context) - { -- // Create ~/.smb/smb.conf. This file is used by libsmbclient. -+ // force libsmbclient to use our own smb.conf by overriding HOME -+ std::string truehome(getenv("HOME")); -+ setenv("HOME", CSpecialProtocol::TranslatePath("special://home").c_str(), 1); -+ -+ // Create ~/.kodi/.smb/smb.conf. This file is used by libsmbclient. - // http://us1.samba.org/samba/docs/man/manpages-3/libsmbclient.7.html - // http://us1.samba.org/samba/docs/man/manpages-3/smb.conf.5.html -- char smb_conf[MAX_PATH]; -+ std::string smb_conf; - std::string home(getenv("HOME")); - URIUtils::RemoveSlashAtEnd(home); -- snprintf(smb_conf, sizeof(smb_conf), "%s/.smb", home.c_str()); -- if (mkdir(smb_conf, 0755) == 0) -+ smb_conf = home + "/.smb"; -+ int result = mkdir(smb_conf.c_str(), 0755); -+ if (result == 0 || (errno == EEXIST && IsFirstInit)) - { -- snprintf(smb_conf, sizeof(smb_conf), "%s/.smb/smb.conf", getenv("HOME")); -- FILE* f = fopen(smb_conf, "w"); -+ smb_conf += "/smb.conf"; -+ FILE* f = fopen(smb_conf.c_str(), "w"); - if (f != NULL) - { - fprintf(f, "[global]\n"); - -- // make sure we're not acting like a server -- fprintf(f, "\tpreferred master = no\n"); -- fprintf(f, "\tlocal master = no\n"); -- fprintf(f, "\tdomain master = no\n"); -+ fprintf(f, "\tlock directory = %s/.smb/\n", home.c_str()); - -- // use the weaker LANMAN password hash in order to be compatible with older servers -- fprintf(f, "\tclient lanman auth = yes\n"); -- fprintf(f, "\tlanman auth = yes\n"); -- -- fprintf(f, "\tsocket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=65536 SO_SNDBUF=65536\n"); -- fprintf(f, "\tlock directory = %s/.smb/\n", getenv("HOME")); -+ // set maximum smbclient protocol version -+ if (CSettings::GetInstance().GetInt(CSettings::SETTING_SMB_MAXPROTOCOL) > 0) -+ { -+ if (CSettings::GetInstance().GetInt(CSettings::SETTING_SMB_MAXPROTOCOL) == 1) -+ fprintf(f, "\tclient max protocol = NT1\n"); -+ else -+ fprintf(f, "\tclient max protocol = SMB%d\n", CSettings::GetInstance().GetInt(CSettings::SETTING_SMB_MAXPROTOCOL)); -+ } - - // set wins server if there's one. name resolve order defaults to 'lmhosts host wins bcast'. - // if no WINS server has been specified the wins method will be ignored. -@@ -135,6 +141,9 @@ void CSMB::Init() - if (g_advancedSettings.m_sambadoscodepage.length() > 0) - fprintf(f, "\tdos charset = %s\n", g_advancedSettings.m_sambadoscodepage.c_str()); - -+ // include users configuration if available -+ fprintf(f, "\tinclude = %s/.smb/user.conf\n", home.c_str()); -+ - fclose(f); - } - } -@@ -151,6 +160,10 @@ void CSMB::Init() - - // setup our context - m_context = smbc_new_context(); -+ -+ // restore HOME -+ setenv("HOME", truehome.c_str(), 1); -+ - #ifdef DEPRECATED_SMBC_INTERFACE - smbc_setDebug(m_context, g_advancedSettings.CanLogComponent(LOGSAMBA) ? 10 : 0); - smbc_setFunctionAuthData(m_context, xb_smbc_auth); -diff --git a/xbmc/network/NetworkServices.cpp b/xbmc/network/NetworkServices.cpp -index 6c5842625202..393dabc3067d 100644 ---- a/xbmc/network/NetworkServices.cpp -+++ b/xbmc/network/NetworkServices.cpp -@@ -438,7 +438,8 @@ void CNetworkServices::OnSettingChanged(const CSetting *setting) - else - #endif // HAS_WEB_SERVER - if (settingId == CSettings::SETTING_SMB_WINSSERVER || -- settingId == CSettings::SETTING_SMB_WORKGROUP) -+ settingId == CSettings::SETTING_SMB_WORKGROUP || -+ settingId == CSettings::SETTING_SMB_MAXPROTOCOL) - { - // okey we really don't need to restart, only deinit samba, but that could be damn hard if something is playing - //! @todo - General way of handling setting changes that require restart -diff --git a/xbmc/settings/Settings.cpp b/xbmc/settings/Settings.cpp -index 9b3372b13b15..f76c152b4d37 100644 ---- a/xbmc/settings/Settings.cpp -+++ b/xbmc/settings/Settings.cpp -@@ -333,6 +333,7 @@ const std::string CSettings::SETTING_SERVICES_AIRPLAYPASSWORD = "services.airpla - const std::string CSettings::SETTING_SERVICES_AIRPLAYVIDEOSUPPORT = "services.airplayvideosupport"; - const std::string CSettings::SETTING_SMB_WINSSERVER = "smb.winsserver"; - const std::string CSettings::SETTING_SMB_WORKGROUP = "smb.workgroup"; -+const std::string CSettings::SETTING_SMB_MAXPROTOCOL = "smb.maxprotocol"; - const std::string CSettings::SETTING_VIDEOSCREEN_MONITOR = "videoscreen.monitor"; - const std::string CSettings::SETTING_VIDEOSCREEN_SCREEN = "videoscreen.screen"; - const std::string CSettings::SETTING_VIDEOSCREEN_RESOLUTION = "videoscreen.resolution"; -@@ -1159,6 +1160,7 @@ void CSettings::InitializeISettingCallbacks() - settingSet.insert(CSettings::SETTING_SERVICES_ESCONTINUOUSDELAY); - settingSet.insert(CSettings::SETTING_SMB_WINSSERVER); - settingSet.insert(CSettings::SETTING_SMB_WORKGROUP); -+ settingSet.insert(CSettings::SETTING_SMB_MAXPROTOCOL); - m_settingsManager->RegisterCallback(&CNetworkServices::GetInstance(), settingSet); - - settingSet.clear(); -diff --git a/xbmc/settings/Settings.h b/xbmc/settings/Settings.h -index 2921b7244fe7..ab6770997ce5 100644 ---- a/xbmc/settings/Settings.h -+++ b/xbmc/settings/Settings.h -@@ -290,6 +290,7 @@ class CSettings : public CSettingCreator, public CSettingControlCreator - static const std::string SETTING_SERVICES_AIRPLAYVIDEOSUPPORT; - static const std::string SETTING_SMB_WINSSERVER; - static const std::string SETTING_SMB_WORKGROUP; -+ static const std::string SETTING_SMB_MAXPROTOCOL; - static const std::string SETTING_VIDEOSCREEN_MONITOR; - static const std::string SETTING_VIDEOSCREEN_SCREEN; - static const std::string SETTING_VIDEOSCREEN_RESOLUTION; diff --git a/packages/mediacenter/kodi/patches/kodi-999.97-revert-PR12361.patch b/packages/mediacenter/kodi/patches/kodi-999.97-revert-PR12361.patch new file mode 100644 index 0000000000..a05f6a37b2 --- /dev/null +++ b/packages/mediacenter/kodi/patches/kodi-999.97-revert-PR12361.patch @@ -0,0 +1,25 @@ +From 65cd4f6c4c476e48259a131960fcc24ebd715e10 Mon Sep 17 00:00:00 2001 +From: Christian Hewitt +Date: Wed, 2 Aug 2017 11:10:31 +0400 +Subject: [PATCH] Revert "VAAPI: Return false on FF_PROFILE_HEVC_MAIN_10" + +--- + xbmc/cores/VideoPlayer/DVDCodecs/Video/VAAPI.cpp | 5 ----- + 1 file changed, 5 deletions(-) + +diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/VAAPI.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/VAAPI.cpp +index 2f6502561de8..ed27cbbb6ec9 100644 +--- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/VAAPI.cpp ++++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/VAAPI.cpp +@@ -558,11 +558,6 @@ bool CDecoder::Open(AVCodecContext* avctx, AVCodecContext* mainctx, const enum A + } + case AV_CODEC_ID_HEVC: + { +- // for distributions using far newer ffmpeg +- // not available when Krypton was released +- if (avctx->profile == FF_PROFILE_HEVC_MAIN_10) +- return false; +- + profile = VAProfileHEVCMain; + if (!m_vaapiConfig.context->SupportsProfile(profile)) + return false; diff --git a/projects/RPi/patches/kodi/kodi-001-backport.patch b/projects/RPi/patches/kodi/kodi-001-backport.patch index 6a250524a2..ed3b647051 100644 --- a/projects/RPi/patches/kodi/kodi-001-backport.patch +++ b/projects/RPi/patches/kodi/kodi-001-backport.patch @@ -49591,7 +49591,7 @@ index 6f53a2785027cf6c34d084402f3f1aee7cf5860a..e4a67e91b0a6b9fafad972b0f6f8e86c @@ -17,7 +17,7 @@ freetype-db5a22-win32-vc140.7z giflib-5.1.4-win32-vc140.7z jsonschemabuilder-1.0.0-win32-3.7z - libass-d18a5f1-win32-vc140.7z + libass-317313-win32-vc140.7z -libbluray-0.9.3-win32-vc140.7z +libbluray-0.9.2-mvc-win32-vc120.7z libcdio-0.9.3-win32-vc140.7z diff --git a/projects/RPi2/patches/kodi/kodi-001-backport.patch b/projects/RPi2/patches/kodi/kodi-001-backport.patch index 6a250524a2..ed3b647051 100644 --- a/projects/RPi2/patches/kodi/kodi-001-backport.patch +++ b/projects/RPi2/patches/kodi/kodi-001-backport.patch @@ -49591,7 +49591,7 @@ index 6f53a2785027cf6c34d084402f3f1aee7cf5860a..e4a67e91b0a6b9fafad972b0f6f8e86c @@ -17,7 +17,7 @@ freetype-db5a22-win32-vc140.7z giflib-5.1.4-win32-vc140.7z jsonschemabuilder-1.0.0-win32-3.7z - libass-d18a5f1-win32-vc140.7z + libass-317313-win32-vc140.7z -libbluray-0.9.3-win32-vc140.7z +libbluray-0.9.2-mvc-win32-vc120.7z libcdio-0.9.3-win32-vc140.7z