mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-29 05:36:47 +00:00
Merge pull request #1850 from chewitt/stuff
kodi: updates for 17.4 pre-testing
This commit is contained in:
commit
2568ed6872
@ -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"
|
||||
|
@ -1,4 +1,4 @@
|
||||
From a348ef744e260f76e1e4e1299f9181ae40352eb5 Mon Sep 17 00:00:00 2001
|
||||
From 9be904d691012c452d58fbaa4817de9c5d84ee87 Mon Sep 17 00:00:00 2001
|
||||
From: kszaq <kszaquitto@gmail.com>
|
||||
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<RESOLUTION_INFO> &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);
|
||||
}
|
||||
|
||||
|
@ -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 @@
|
||||
</setting>
|
||||
<setting id="smb.maxprotocol" type="integer" label="36621" help="36622">
|
||||
<level>2</level>
|
||||
- <visible>false</visible>
|
||||
+ <visible>true</visible>
|
||||
<default>0</default>
|
||||
<constraints>
|
||||
<options>
|
@ -1,242 +0,0 @@
|
||||
From 5c7b7960036917338e0830ba2986b62c36bb5589 Mon Sep 17 00:00:00 2001
|
||||
From: chewitt <github@chrishewitt.net>
|
||||
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 @@
|
||||
<category id="smb" label="1200" help="36346">
|
||||
<requirement>HAS_FILESYSTEM_SMB</requirement>
|
||||
<group id="1" label="16000">
|
||||
+ <setting id="smb.workgroup" type="string" label="1202" help="36348">
|
||||
+ <level>2</level>
|
||||
+ <default>WORKGROUP</default>
|
||||
+ <control type="edit" format="string" />
|
||||
+ </setting>
|
||||
+ </group>
|
||||
+ <group id="2" label="36627">
|
||||
<setting id="smb.winsserver" type="string" label="1207" help="36347">
|
||||
<level>2</level>
|
||||
<default>0.0.0.0</default>
|
||||
<control type="edit" format="ip" />
|
||||
</setting>
|
||||
- <setting id="smb.workgroup" type="string" label="1202" help="36348">
|
||||
+ <setting id="smb.maxprotocol" type="integer" label="36621" help="36622">
|
||||
<level>2</level>
|
||||
- <default>WORKGROUP</default>
|
||||
- <control type="edit" format="string" />
|
||||
+ <default>3</default>
|
||||
+ <constraints>
|
||||
+ <options>
|
||||
+ <option label="36623">0</option>
|
||||
+ <option label="36624">1</option>
|
||||
+ <option label="36625">2</option>
|
||||
+ <option label="36626">3</option>
|
||||
+ </options>
|
||||
+ </constraints>
|
||||
+ <control type="list" format="integer" />
|
||||
</setting>
|
||||
</group>
|
||||
</category>
|
||||
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 <libsmbclient.h>
|
||||
+#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;
|
@ -0,0 +1,25 @@
|
||||
From 65cd4f6c4c476e48259a131960fcc24ebd715e10 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <chewitt@users.noreply.github.com>
|
||||
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;
|
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user