diff --git a/packages/mediacenter/kodi/package.mk b/packages/mediacenter/kodi/package.mk index 63a9a7bc31..5e062f22c8 100644 --- a/packages/mediacenter/kodi/package.mk +++ b/packages/mediacenter/kodi/package.mk @@ -3,8 +3,8 @@ # Copyright (C) 2017-present Team LibreELEC (https://libreelec.tv) PKG_NAME="kodi" -PKG_VERSION="1a1c5028f24a992134e2a1745519914e303eee4c" -PKG_SHA256="b125bf10459b6d2a15f6f4740348cf8424591e1229281b12f5aeb7f8f71a5d57" +PKG_VERSION="19.1-Matrix" +PKG_SHA256="195a916a32057e259e6f42b49ba8f07cc6253460018851a52deb058ae938c58c" PKG_LICENSE="GPL" PKG_SITE="http://www.kodi.tv" PKG_URL="https://github.com/xbmc/xbmc/archive/${PKG_VERSION}.tar.gz" diff --git a/packages/mediacenter/kodi/patches/kodi-995.20-gbm-default-to-original-crtc-mode.patch b/packages/mediacenter/kodi/patches/kodi-995.20-gbm-default-to-original-crtc-mode.patch deleted file mode 100644 index 1803e9d504..0000000000 --- a/packages/mediacenter/kodi/patches/kodi-995.20-gbm-default-to-original-crtc-mode.patch +++ /dev/null @@ -1,63 +0,0 @@ -From bdd6c0e14d52f1ec8dac34c1dee9a636fd5cd1e8 Mon Sep 17 00:00:00 2001 -From: Matthias Reichl -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 ---- - 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; - } - } diff --git a/packages/mediacenter/kodi/patches/kodi-995.30-CDVDVideoCodecDRMPRIME-skip-frames-when-requested.patch b/packages/mediacenter/kodi/patches/kodi-995.30-CDVDVideoCodecDRMPRIME-skip-frames-when-requested.patch deleted file mode 100644 index b055828d18..0000000000 --- a/packages/mediacenter/kodi/patches/kodi-995.30-CDVDVideoCodecDRMPRIME-skip-frames-when-requested.patch +++ /dev/null @@ -1,61 +0,0 @@ -From a30656bf2bee534836a984bbd488b1f16e01b9a0 Mon Sep 17 00:00:00 2001 -From: Jernej Skrabec -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();