mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-30 22:26:42 +00:00
Merge pull request #5360 from HiassofT/le10-kodi-19.1
kodi: update to v19.1
This commit is contained in:
commit
8e8c9b9bc0
@ -3,8 +3,8 @@
|
|||||||
# Copyright (C) 2017-present Team LibreELEC (https://libreelec.tv)
|
# Copyright (C) 2017-present Team LibreELEC (https://libreelec.tv)
|
||||||
|
|
||||||
PKG_NAME="kodi"
|
PKG_NAME="kodi"
|
||||||
PKG_VERSION="1a1c5028f24a992134e2a1745519914e303eee4c"
|
PKG_VERSION="19.1-Matrix"
|
||||||
PKG_SHA256="b125bf10459b6d2a15f6f4740348cf8424591e1229281b12f5aeb7f8f71a5d57"
|
PKG_SHA256="195a916a32057e259e6f42b49ba8f07cc6253460018851a52deb058ae938c58c"
|
||||||
PKG_LICENSE="GPL"
|
PKG_LICENSE="GPL"
|
||||||
PKG_SITE="http://www.kodi.tv"
|
PKG_SITE="http://www.kodi.tv"
|
||||||
PKG_URL="https://github.com/xbmc/xbmc/archive/${PKG_VERSION}.tar.gz"
|
PKG_URL="https://github.com/xbmc/xbmc/archive/${PKG_VERSION}.tar.gz"
|
||||||
|
@ -1,63 +0,0 @@
|
|||||||
From bdd6c0e14d52f1ec8dac34c1dee9a636fd5cd1e8 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Matthias Reichl <hias@horus.com>
|
|
||||||
Date: Wed, 17 Feb 2021 22:14:15 +0100
|
|
||||||
Subject: [PATCH] windowing/gbm/drm: default to original crtc mode
|
|
||||||
|
|
||||||
This brings RES_DESKTOP handling of gbm in line with other windowing
|
|
||||||
systems.
|
|
||||||
|
|
||||||
If the framebuffer has been set up with a valid mode before kodi
|
|
||||||
startup then use that as the default / DESKTOP mode, otherwise fall
|
|
||||||
back to the previous behaviour of setting DESKTOP to the preferred
|
|
||||||
mode reported by drm.
|
|
||||||
|
|
||||||
This avoids unnecessary mode switches at kodi startup (which usually
|
|
||||||
lead to screen blanking for a short time) and allows users to easily
|
|
||||||
override broken video/edid/... setups by manually configuring a mode
|
|
||||||
in linux which then kodi uses too. That is especially important when
|
|
||||||
running kodi for the first time, if it switches to a different mode
|
|
||||||
that might not be working with the user's monitor the result is a
|
|
||||||
black screen with no easy possibility to fix the settings.
|
|
||||||
|
|
||||||
Signed-off-by: Matthias Reichl <hias@horus.com>
|
|
||||||
---
|
|
||||||
xbmc/windowing/gbm/drm/DRMCrtc.h | 1 +
|
|
||||||
xbmc/windowing/gbm/drm/DRMUtils.cpp | 10 ++++++++++
|
|
||||||
2 files changed, 11 insertions(+)
|
|
||||||
|
|
||||||
--- a/xbmc/windowing/gbm/drm/DRMCrtc.h
|
|
||||||
+++ b/xbmc/windowing/gbm/drm/DRMCrtc.h
|
|
||||||
@@ -30,6 +30,7 @@ public:
|
|
||||||
uint32_t GetX() const { return m_crtc->x; }
|
|
||||||
uint32_t GetY() const { return m_crtc->y; }
|
|
||||||
drmModeModeInfoPtr GetMode() const { return &m_crtc->mode; }
|
|
||||||
+ bool GetModeValid() const { return m_crtc->mode_valid != 0; }
|
|
||||||
|
|
||||||
private:
|
|
||||||
struct DrmModeCrtcDeleter
|
|
||||||
--- a/xbmc/windowing/gbm/drm/DRMUtils.cpp
|
|
||||||
+++ b/xbmc/windowing/gbm/drm/DRMUtils.cpp
|
|
||||||
@@ -144,6 +144,9 @@ drm_fb * CDRMUtils::DrmFbGetFromBo(struc
|
|
||||||
|
|
||||||
bool CDRMUtils::FindPreferredMode()
|
|
||||||
{
|
|
||||||
+ if (m_mode)
|
|
||||||
+ return true;
|
|
||||||
+
|
|
||||||
for (int i = 0, area = 0; i < m_connector->GetModesCount(); i++)
|
|
||||||
{
|
|
||||||
drmModeModeInfo* current_mode = m_connector->GetModeForIndex(i);
|
|
||||||
@@ -534,6 +537,13 @@ bool CDRMUtils::FindCrtc()
|
|
||||||
if (m_crtcs[i]->GetCrtcId() == m_encoder->GetCrtcId())
|
|
||||||
{
|
|
||||||
m_orig_crtc = m_crtcs[i].get();
|
|
||||||
+ if (m_orig_crtc->GetModeValid())
|
|
||||||
+ {
|
|
||||||
+ m_mode = m_orig_crtc->GetMode();
|
|
||||||
+ CLog::Log(LOGDEBUG, "CDRMUtils::{} - original crtc mode: {}x{}{} @ {} Hz", __FUNCTION__,
|
|
||||||
+ m_mode->hdisplay, m_mode->vdisplay,
|
|
||||||
+ m_mode->flags & DRM_MODE_FLAG_INTERLACE ? "i" : "", m_mode->vrefresh);
|
|
||||||
+ }
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,61 +0,0 @@
|
|||||||
From a30656bf2bee534836a984bbd488b1f16e01b9a0 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jernej Skrabec <jernej.skrabec@siol.net>
|
|
||||||
Date: Sun, 14 Mar 2021 08:40:19 +0100
|
|
||||||
Subject: [PATCH] CDVDVideoCodecDRMPRIME: skip frames when requested
|
|
||||||
|
|
||||||
---
|
|
||||||
.../DVDCodecs/Video/DVDVideoCodecDRMPRIME.cpp | 27 +++++++++++++++++++
|
|
||||||
.../DVDCodecs/Video/DVDVideoCodecDRMPRIME.h | 2 +-
|
|
||||||
2 files changed, 28 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
--- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecDRMPRIME.cpp
|
|
||||||
+++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecDRMPRIME.cpp
|
|
||||||
@@ -517,6 +517,12 @@ void CDVDVideoCodecDRMPRIME::SetPictureP
|
|
||||||
pVideoPicture->iFlags = 0;
|
|
||||||
pVideoPicture->iFlags |= m_pFrame->interlaced_frame ? DVP_FLAG_INTERLACED : 0;
|
|
||||||
pVideoPicture->iFlags |= m_pFrame->top_field_first ? DVP_FLAG_TOP_FIELD_FIRST : 0;
|
|
||||||
+ pVideoPicture->iFlags |= m_pFrame->data[0] ? 0 : DVP_FLAG_DROPPED;
|
|
||||||
+
|
|
||||||
+ if (m_codecControlFlags & DVD_CODEC_CTRL_DROP)
|
|
||||||
+ {
|
|
||||||
+ pVideoPicture->iFlags |= DVP_FLAG_DROPPED;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
int64_t pts = m_pFrame->best_effort_timestamp;
|
|
||||||
pVideoPicture->pts = (pts == AV_NOPTS_VALUE)
|
|
||||||
@@ -590,3 +596,24 @@ CDVDVideoCodec::VCReturn CDVDVideoCodecD
|
|
||||||
|
|
||||||
return VC_PICTURE;
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+void CDVDVideoCodecDRMPRIME::SetCodecControl(int flags)
|
|
||||||
+{
|
|
||||||
+ m_codecControlFlags = flags;
|
|
||||||
+
|
|
||||||
+ if (m_pCodecContext)
|
|
||||||
+ {
|
|
||||||
+ if ((flags & DVD_CODEC_CTRL_DROP_ANY) != 0)
|
|
||||||
+ {
|
|
||||||
+ m_pCodecContext->skip_frame = AVDISCARD_NONREF;
|
|
||||||
+ m_pCodecContext->skip_idct = AVDISCARD_NONREF;
|
|
||||||
+ m_pCodecContext->skip_loop_filter = AVDISCARD_NONREF;
|
|
||||||
+ }
|
|
||||||
+ else
|
|
||||||
+ {
|
|
||||||
+ m_pCodecContext->skip_frame = AVDISCARD_DEFAULT;
|
|
||||||
+ m_pCodecContext->skip_idct = AVDISCARD_DEFAULT;
|
|
||||||
+ m_pCodecContext->skip_loop_filter = AVDISCARD_DEFAULT;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+}
|
|
||||||
--- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecDRMPRIME.h
|
|
||||||
+++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecDRMPRIME.h
|
|
||||||
@@ -29,7 +29,7 @@ public:
|
|
||||||
CDVDVideoCodec::VCReturn GetPicture(VideoPicture* pVideoPicture) override;
|
|
||||||
const char* GetName() override { return m_name.c_str(); }
|
|
||||||
unsigned GetAllowedReferences() override { return 5; }
|
|
||||||
- void SetCodecControl(int flags) override { m_codecControlFlags = flags; }
|
|
||||||
+ void SetCodecControl(int flags) override;
|
|
||||||
|
|
||||||
protected:
|
|
||||||
void Drain();
|
|
Loading…
x
Reference in New Issue
Block a user