Merge pull request #4255 from MilhouseVH/le10_kodi19-next05

kodi: next update (end of March 2020?)
This commit is contained in:
CvH 2020-04-19 22:36:20 +02:00 committed by GitHub
commit b99876f107
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 42 additions and 310 deletions

View File

@ -2,8 +2,8 @@
# Copyright (C) 2017-present Team LibreELEC (https://libreelec.tv)
PKG_NAME="libfmt"
PKG_VERSION="6.1.2"
PKG_SHA256="1cafc80701b746085dddf41bd9193e6d35089e1c6ec1940e037fcb9c98f62365"
PKG_VERSION="7d01859ef16e6b65bc023ad8bebfedecb088bf81"
PKG_SHA256="ecc44fb4c4ca42ec0af260e849642cc1f89cb9169659aa53bbcaad7ad4acbc16"
PKG_LICENSE="BSD"
PKG_SITE="https://github.com/fmtlib/fmt"
PKG_URL="https://github.com/fmtlib/fmt/archive/$PKG_VERSION.tar.gz"

View File

@ -0,0 +1,14 @@
# SPDX-License-Identifier: GPL-2.0
# Copyright (C) 2017-present Team LibreELEC (https://libreelec.tv)
PKG_NAME="spdlog"
PKG_VERSION="1.5.0"
PKG_SHA256="b38e0bbef7faac2b82fed550a0c19b0d4e7f6737d5321d4fd8f216b80f8aee8a"
PKG_LICENSE="MIT"
PKG_SITE="https://github.com/gabime/spdlog"
PKG_URL="https://github.com/gabime/spdlog/archive/v$PKG_VERSION.tar.gz"
PKG_DEPENDS_TARGET="toolchain libfmt"
PKG_LONGDESC="Very fast, header only, C++ logging library."
PKG_TOOLCHAIN="cmake"
PKG_CMAKE_OPTS_TARGET="-DCMAKE_CXX_STANDARD=14 -DCMAKE_CXX_EXTENSIONS:BOOL=OFF -DSPDLOG_FMT_EXTERNAL=ON -DSPDLOG_BUILD_EXAMPLE=OFF -DSPDLOG_BUILD_TESTS=OFF"

View File

@ -3,8 +3,8 @@
# Copyright (C) 2017-present Team LibreELEC (https://libreelec.tv)
PKG_NAME="LibreELEC-settings"
PKG_VERSION="98b9f77e9a6562e1ea429097cebf2ccaac2ee6a9"
PKG_SHA256="8bc617577ed38721ebbb7134fe828ab78fc2c9593caa8ce8ab294b662810c7b3"
PKG_VERSION="7b5ef62bd17a2357fbdd43aa543194ab4f4beee5"
PKG_SHA256="24b7879e67edc4d6ba41d0d243414a176770753293f2da9d5d659678572d47d1"
PKG_LICENSE="GPL"
PKG_SITE="https://libreelec.tv"
PKG_URL="https://github.com/LibreELEC/service.libreelec.settings/archive/$PKG_VERSION.tar.gz"

View File

@ -10,7 +10,7 @@ PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="https://github.com/xbmc/screensaver.pingpong"
PKG_URL="https://github.com/xbmc/screensaver.pingpong/archive/$PKG_VERSION.tar.gz"
PKG_DEPENDS_TARGET="toolchain kodi-platform"
PKG_DEPENDS_TARGET="toolchain kodi-platform glm"
PKG_SECTION=""
PKG_SHORTDESC="screensaver.pingpong"
PKG_LONGDESC="screensaver.pingpong"

View File

@ -5,7 +5,7 @@
PKG_NAME="kodi"
PKG_LICENSE="GPL"
PKG_SITE="http://www.kodi.tv"
PKG_DEPENDS_TARGET="toolchain JsonSchemaBuilder:host TexturePacker:host Python3 zlib systemd lzo pcre swig:host libass curl fontconfig fribidi tinyxml libjpeg-turbo freetype libcdio taglib libxml2 libxslt rapidjson sqlite ffmpeg crossguid giflib libdvdnav libhdhomerun libfmt lirc libfstrcmp flatbuffers:host flatbuffers"
PKG_DEPENDS_TARGET="toolchain JsonSchemaBuilder:host TexturePacker:host Python3 zlib systemd lzo pcre swig:host libass curl fontconfig fribidi tinyxml libjpeg-turbo freetype libcdio taglib libxml2 libxslt rapidjson sqlite ffmpeg crossguid giflib libdvdnav libhdhomerun libfmt lirc libfstrcmp flatbuffers:host flatbuffers libudfread spdlog"
PKG_LONGDESC="A free and open source cross-platform media player."
PKG_BUILD_FLAGS="+speed"
@ -13,14 +13,14 @@ PKG_PATCH_DIRS="$KODI_VENDOR"
case $KODI_VENDOR in
raspberrypi)
PKG_VERSION="78f79b5700b90f402da48190ee00dd08d3d6c594"
PKG_SHA256="e4638c5bcd0325709bb5eaa5ca47765652df89bd91446558b9a936740cc4c95c"
PKG_VERSION="newclock5_20200419"
PKG_SHA256="f50ea08a4f7f4dc2083c8470115063eaeb67c9b8682ecc6bfaf42dafcb69fd5c"
PKG_URL="https://github.com/popcornmix/xbmc/archive/$PKG_VERSION.tar.gz"
PKG_SOURCE_NAME="kodi-$KODI_VENDOR-$PKG_VERSION.tar.gz"
;;
*)
PKG_VERSION="3375a26606b3a6913bea18f4ef7b85a72b724915"
PKG_SHA256="995c9f78143d1c96a0ae1d6dc4ad8c49e9a2f24047f9569130675dfc08797cb2"
PKG_VERSION="392dcf7331e06afda77d957d12664d3e1dc6c714"
PKG_SHA256="7ecc55d7c2930efbf0156d74a341a58b8580dd05226bef63768702ae3892b7ae"
PKG_URL="https://github.com/xbmc/xbmc/archive/$PKG_VERSION.tar.gz"
PKG_SOURCE_NAME="kodi-$PKG_VERSION.tar.gz"
;;
@ -210,12 +210,15 @@ configure_package() {
-DWITH_TEXTUREPACKER=$TOOLCHAIN/bin/TexturePacker \
-DWITH_JSONSCHEMABUILDER=$TOOLCHAIN/bin/JsonSchemaBuilder \
-DDEPENDS_PATH=$PKG_BUILD/depends \
-DSWIG_EXECUTABLE=$TOOLCHAIN/bin/swig \
-DPYTHON_EXECUTABLE=$TOOLCHAIN/bin/$PKG_PYTHON_VERSION \
-DPYTHON_INCLUDE_DIRS=$SYSROOT_PREFIX/usr/include/$PKG_PYTHON_VERSION \
-DGIT_VERSION=$PKG_VERSION \
-DFFMPEG_PATH=$SYSROOT_PREFIX/usr \
-DENABLE_INTERNAL_FFMPEG=OFF \
-DENABLE_INTERNAL_CROSSGUID=OFF \
-DENABLE_INTERNAL_UDFREAD=OFF \
-DENABLE_INTERNAL_SPDLOG=OFF \
-DENABLE_UDEV=ON \
-DENABLE_DBUS=ON \
-DENABLE_XSLT=ON \
@ -225,6 +228,7 @@ configure_package() {
-DENABLE_LDGOLD=ON \
-DENABLE_DEBUGFISSION=OFF \
-DENABLE_APP_AUTONAME=OFF \
-DENABLE_TESTING=OFF \
-DENABLE_INTERNAL_FLATBUFFERS=OFF \
$PKG_KODI_USE_LTO \
$KODI_ARCH \

View File

@ -0,0 +1,14 @@
# SPDX-License-Identifier: GPL-2.0
# Copyright (C) 2020-present Team LibreELEC (https://libreelec.tv)
PKG_NAME="libudfread"
PKG_VERSION="1.0.0"
PKG_SHA256="539dd69d2f43816a2a3f69b77fae05268c3930650c2d0d5b092614cce853583c"
PKG_LICENSE="LGPLv2.1"
PKG_SITE="https://code.videolan.org/videolan/libudfread"
PKG_URL="https://code.videolan.org/videolan/$PKG_NAME/-/archive/$PKG_VERSION/$PKG_NAME-$PKG_VERSION.tar.gz"
PKG_DEPENDS_TARGET="toolchain"
PKG_LONGDESC="UDF reader"
PKG_TOOLCHAIN="autotools"
PKG_CONFIGURE_OPTS_TARGET="--enable-static --disable-shared"

View File

@ -1,150 +0,0 @@
From a1818990f68fe77d02a63c07c29e7832e2b9da27 Mon Sep 17 00:00:00 2001
From: Jonas Karlman <jonas@kwiboo.se>
Date: Wed, 16 Oct 2019 19:38:11 +0000
Subject: [PATCH] windowing/gbm: add option to limit gui size
---
.../resources/strings.po | 44 ++++++++++++++++++-
system/settings/gbm.xml | 15 +++++++
xbmc/windowing/gbm/DRMUtils.cpp | 32 ++++++++++++++
3 files changed, 90 insertions(+), 1 deletion(-)
diff --git a/addons/resource.language.en_gb/resources/strings.po b/addons/resource.language.en_gb/resources/strings.po
index c573f6e5f9c9..a520acda5ca7 100644
--- a/addons/resource.language.en_gb/resources/strings.po
+++ b/addons/resource.language.en_gb/resources/strings.po
@@ -7234,7 +7234,49 @@ msgctxt "#13465"
msgid "EGL"
msgstr ""
-#empty strings from id 13466 to 13504
+#. Option for setting Limit GUI Size
+#: system/settings/gbm.xml
+msgctxt "#13466"
+msgid "Limit GUI Size"
+msgstr ""
+
+#. Description of setting with label #13466 "Limit GUI Size"
+#: system/settings/gbm.xml
+msgctxt "#13467"
+msgid "This option limits GUI size for screen resolutions above 1080p. Requires restart."
+msgstr ""
+
+#. String for options 1 of setting with label #13466 "Limit GUI Size"
+#: system/settings/gbm.xml
+msgctxt "#13468"
+msgid "No limit"
+msgstr ""
+
+#. String for options 2 of setting with label #13466 "Limit GUI Size"
+#: system/settings/gbm.xml
+msgctxt "#13469"
+msgid "720p"
+msgstr ""
+
+#. String for options 3 of setting with label #13466 "Limit GUI Size"
+#: system/settings/gbm.xml
+msgctxt "#13470"
+msgid "1080p / 720p (>30hz)"
+msgstr ""
+
+#. String for options 4 of setting with label #13466 "Limit GUI Size"
+#: system/settings/gbm.xml
+msgctxt "#13471"
+msgid "1080p"
+msgstr ""
+
+#. String for options 5 of setting with label #13466 "Limit GUI Size"
+#: system/settings/gbm.xml
+msgctxt "#13472"
+msgid "No limit / 1080p (>30hz)"
+msgstr ""
+
+#empty strings from id 13473 to 13504
#: system/settings/settings.xml
msgctxt "#13505"
diff --git a/system/settings/gbm.xml b/system/settings/gbm.xml
index 939ca12ba287..9bd1d04dfb7a 100644
--- a/system/settings/gbm.xml
+++ b/system/settings/gbm.xml
@@ -36,6 +36,21 @@
<setting id="videoscreen.screen">
<visible>false</visible>
</setting>
+ <setting id="videoscreen.limitguisize" type="integer" label="13466" help="13467">
+ <visible>false</visible>
+ <level>3</level>
+ <default>0</default>
+ <constraints>
+ <options>
+ <option label="13468">0</option> <!-- No limit -->
+ <option label="13469">1</option> <!-- 720p -->
+ <option label="13470">2</option> <!-- 1080p / 720p (>30hz) -->
+ <option label="13471">3</option> <!-- 1080p -->
+ <option label="13472">4</option> <!-- No limit / 1080p (>30hz) -->
+ </options>
+ </constraints>
+ <control type="list" format="string" />
+ </setting>
<setting id="videoscreen.limitedrange" type="boolean" label="36042" help="36359">
<level>3</level>
<default>false</default>
diff --git a/xbmc/windowing/gbm/DRMUtils.cpp b/xbmc/windowing/gbm/DRMUtils.cpp
index bbbc447498cf..3980ef7058e9 100644
--- a/xbmc/windowing/gbm/DRMUtils.cpp
+++ b/xbmc/windowing/gbm/DRMUtils.cpp
@@ -8,6 +8,8 @@
#include "DRMUtils.h"
+#include "settings/Settings.h"
+#include "settings/SettingsComponent.h"
#include "utils/StringUtils.h"
#include "utils/log.h"
#include "windowing/GraphicContext.h"
@@ -27,6 +29,11 @@
using namespace KODI::WINDOWING::GBM;
+namespace
+{
+const std::string SETTING_VIDEOSCREEN_LIMITGUISIZE = "videoscreen.limitguisize";
+}
+
CDRMUtils::CDRMUtils()
: m_connector(new connector)
, m_encoder(new encoder)
@@ -763,6 +770,31 @@ RESOLUTION_INFO CDRMUtils::GetResolutionInfo(drmModeModeInfoPtr mode)
res.iWidth = res.iScreenWidth;
res.iHeight = res.iScreenHeight;
+ int limit = CServiceBroker::GetSettingsComponent()->GetSettings()->GetInt(
+ SETTING_VIDEOSCREEN_LIMITGUISIZE);
+ if (limit > 0 && res.iScreenWidth > 1920 && res.iScreenHeight > 1080)
+ {
+ switch (limit)
+ {
+ case 1: // 720p
+ res.iWidth = 1280;
+ res.iHeight = 720;
+ break;
+ case 2: // 1080p / 720p (>30hz)
+ res.iWidth = mode->vrefresh > 30 ? 1280 : 1920;
+ res.iHeight = mode->vrefresh > 30 ? 720 : 1080;
+ break;
+ case 3: // 1080p
+ res.iWidth = 1920;
+ res.iHeight = 1080;
+ break;
+ case 4: // No limit / 1080p (>30hz)
+ res.iWidth = mode->vrefresh > 30 ? 1920 : res.iScreenWidth;
+ res.iHeight = mode->vrefresh > 30 ? 1080 : res.iScreenHeight;
+ break;
+ }
+ }
+
if (mode->clock % 5 != 0)
res.fRefreshRate = static_cast<float>(mode->vrefresh) * (1000.0f/1001.0f);
else

View File

@ -1,150 +0,0 @@
From a1818990f68fe77d02a63c07c29e7832e2b9da27 Mon Sep 17 00:00:00 2001
From: Jonas Karlman <jonas@kwiboo.se>
Date: Wed, 16 Oct 2019 19:38:11 +0000
Subject: [PATCH] windowing/gbm: add option to limit gui size
---
.../resources/strings.po | 44 ++++++++++++++++++-
system/settings/gbm.xml | 15 +++++++
xbmc/windowing/gbm/DRMUtils.cpp | 32 ++++++++++++++
3 files changed, 90 insertions(+), 1 deletion(-)
diff --git a/addons/resource.language.en_gb/resources/strings.po b/addons/resource.language.en_gb/resources/strings.po
index c573f6e5f9c9..a520acda5ca7 100644
--- a/addons/resource.language.en_gb/resources/strings.po
+++ b/addons/resource.language.en_gb/resources/strings.po
@@ -7234,7 +7234,49 @@ msgctxt "#13465"
msgid "EGL"
msgstr ""
-#empty strings from id 13466 to 13504
+#. Option for setting Limit GUI Size
+#: system/settings/gbm.xml
+msgctxt "#13466"
+msgid "Limit GUI Size"
+msgstr ""
+
+#. Description of setting with label #13466 "Limit GUI Size"
+#: system/settings/gbm.xml
+msgctxt "#13467"
+msgid "This option limits GUI size for screen resolutions above 1080p. Requires restart."
+msgstr ""
+
+#. String for options 1 of setting with label #13466 "Limit GUI Size"
+#: system/settings/gbm.xml
+msgctxt "#13468"
+msgid "No limit"
+msgstr ""
+
+#. String for options 2 of setting with label #13466 "Limit GUI Size"
+#: system/settings/gbm.xml
+msgctxt "#13469"
+msgid "720p"
+msgstr ""
+
+#. String for options 3 of setting with label #13466 "Limit GUI Size"
+#: system/settings/gbm.xml
+msgctxt "#13470"
+msgid "1080p / 720p (>30hz)"
+msgstr ""
+
+#. String for options 4 of setting with label #13466 "Limit GUI Size"
+#: system/settings/gbm.xml
+msgctxt "#13471"
+msgid "1080p"
+msgstr ""
+
+#. String for options 5 of setting with label #13466 "Limit GUI Size"
+#: system/settings/gbm.xml
+msgctxt "#13472"
+msgid "No limit / 1080p (>30hz)"
+msgstr ""
+
+#empty strings from id 13473 to 13504
#: system/settings/settings.xml
msgctxt "#13505"
diff --git a/system/settings/gbm.xml b/system/settings/gbm.xml
index 939ca12ba287..9bd1d04dfb7a 100644
--- a/system/settings/gbm.xml
+++ b/system/settings/gbm.xml
@@ -36,6 +36,21 @@
<setting id="videoscreen.screen">
<visible>false</visible>
</setting>
+ <setting id="videoscreen.limitguisize" type="integer" label="13466" help="13467">
+ <visible>false</visible>
+ <level>3</level>
+ <default>0</default>
+ <constraints>
+ <options>
+ <option label="13468">0</option> <!-- No limit -->
+ <option label="13469">1</option> <!-- 720p -->
+ <option label="13470">2</option> <!-- 1080p / 720p (>30hz) -->
+ <option label="13471">3</option> <!-- 1080p -->
+ <option label="13472">4</option> <!-- No limit / 1080p (>30hz) -->
+ </options>
+ </constraints>
+ <control type="list" format="string" />
+ </setting>
<setting id="videoscreen.limitedrange" type="boolean" label="36042" help="36359">
<level>3</level>
<default>false</default>
diff --git a/xbmc/windowing/gbm/DRMUtils.cpp b/xbmc/windowing/gbm/DRMUtils.cpp
index bbbc447498cf..3980ef7058e9 100644
--- a/xbmc/windowing/gbm/DRMUtils.cpp
+++ b/xbmc/windowing/gbm/DRMUtils.cpp
@@ -8,6 +8,8 @@
#include "DRMUtils.h"
+#include "settings/Settings.h"
+#include "settings/SettingsComponent.h"
#include "utils/StringUtils.h"
#include "utils/log.h"
#include "windowing/GraphicContext.h"
@@ -27,6 +29,11 @@
using namespace KODI::WINDOWING::GBM;
+namespace
+{
+const std::string SETTING_VIDEOSCREEN_LIMITGUISIZE = "videoscreen.limitguisize";
+}
+
CDRMUtils::CDRMUtils()
: m_connector(new connector)
, m_encoder(new encoder)
@@ -763,6 +770,31 @@ RESOLUTION_INFO CDRMUtils::GetResolutionInfo(drmModeModeInfoPtr mode)
res.iWidth = res.iScreenWidth;
res.iHeight = res.iScreenHeight;
+ int limit = CServiceBroker::GetSettingsComponent()->GetSettings()->GetInt(
+ SETTING_VIDEOSCREEN_LIMITGUISIZE);
+ if (limit > 0 && res.iScreenWidth > 1920 && res.iScreenHeight > 1080)
+ {
+ switch (limit)
+ {
+ case 1: // 720p
+ res.iWidth = 1280;
+ res.iHeight = 720;
+ break;
+ case 2: // 1080p / 720p (>30hz)
+ res.iWidth = mode->vrefresh > 30 ? 1280 : 1920;
+ res.iHeight = mode->vrefresh > 30 ? 720 : 1080;
+ break;
+ case 3: // 1080p
+ res.iWidth = 1920;
+ res.iHeight = 1080;
+ break;
+ case 4: // No limit / 1080p (>30hz)
+ res.iWidth = mode->vrefresh > 30 ? 1920 : res.iScreenWidth;
+ res.iHeight = mode->vrefresh > 30 ? 1080 : res.iScreenHeight;
+ break;
+ }
+ }
+
if (mode->clock % 5 != 0)
res.fRefreshRate = static_cast<float>(mode->vrefresh) * (1000.0f/1001.0f);
else