From 2bd8213cc94d36e8c5af31166fbbfde839c962df Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Fri, 26 Mar 2021 21:11:26 +0100 Subject: [PATCH 1/4] crust: Update to 219383cd48924179bdd6c5e125c0dd9ab0d78c16 --- packages/tools/crust/package.mk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/tools/crust/package.mk b/packages/tools/crust/package.mk index f15baaca0a..264c327b28 100644 --- a/packages/tools/crust/package.mk +++ b/packages/tools/crust/package.mk @@ -2,8 +2,8 @@ # Copyright (C) 2020-present Team LibreELEC (https://libreelec.tv) PKG_NAME="crust" -PKG_VERSION="2abb49c37b0302399b98498b9a51f5ed30454aea" -PKG_SHA256="62da63ce5f35c41b7b9cbc9ec8c89dbd52e41a60bde00218ac747a1b335803cb" +PKG_VERSION="219383cd48924179bdd6c5e125c0dd9ab0d78c16" +PKG_SHA256="f16e362e20c4c59da4f4a6e692f5d1c3b442a7e398ae9f45932791711f6aa1f6" PKG_ARCH="arm aarch64" PKG_LICENSE="BSD-3c" PKG_SITE="https://github.com/crust-firmware/crust" From a44df9c99c7cf17a6d3e15d71b693f04d7394bed Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Fri, 26 Mar 2021 21:12:23 +0100 Subject: [PATCH 2/4] Allwinner: Remove Crust patch - it's upstreamed --- ...s-Update-or-add-board-configurations.patch | 126 ------------------ 1 file changed, 126 deletions(-) delete mode 100644 projects/Allwinner/patches/crust/0001-configs-Update-or-add-board-configurations.patch diff --git a/projects/Allwinner/patches/crust/0001-configs-Update-or-add-board-configurations.patch b/projects/Allwinner/patches/crust/0001-configs-Update-or-add-board-configurations.patch deleted file mode 100644 index f45f218825..0000000000 --- a/projects/Allwinner/patches/crust/0001-configs-Update-or-add-board-configurations.patch +++ /dev/null @@ -1,126 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Jernej Skrabec -Date: Sat, 30 Jan 2021 18:07:50 +0100 -Subject: [PATCH] configs: Update or add board configurations - ---- - configs/bananapi_m2_plus_h3_defconfig | 3 +++ - configs/beelink_x2_defconfig | 5 +++++ - configs/libretech_all_h3_cc_h3_defconfig | 3 +++ - configs/libretech_all_h3_cc_h5_defconfig | 3 +++ - configs/nanopi_m1_defconfig | 4 ++++ - configs/orangepi_2_defconfig | 1 + - configs/orangepi_pc2_defconfig | 1 + - configs/orangepi_pc_defconfig | 2 ++ - configs/orangepi_pc_plus_defconfig | 2 ++ - configs/orangepi_plus2e_defconfig | 1 + - configs/orangepi_plus_defconfig | 2 ++ - 11 files changed, 27 insertions(+) - create mode 100644 configs/bananapi_m2_plus_h3_defconfig - create mode 100644 configs/beelink_x2_defconfig - create mode 100644 configs/libretech_all_h3_cc_h3_defconfig - create mode 100644 configs/libretech_all_h3_cc_h5_defconfig - create mode 100644 configs/nanopi_m1_defconfig - -diff --git a/configs/bananapi_m2_plus_h3_defconfig b/configs/bananapi_m2_plus_h3_defconfig -new file mode 100644 -index 000000000000..d2ff46056b6c ---- /dev/null -+++ b/configs/bananapi_m2_plus_h3_defconfig -@@ -0,0 +1,3 @@ -+CONFIG_PLATFORM_H3=y -+CONFIG_CIR=y -+CONFIG_REGULATOR_GPIO_DRAM=y -diff --git a/configs/beelink_x2_defconfig b/configs/beelink_x2_defconfig -new file mode 100644 -index 000000000000..57461e95a330 ---- /dev/null -+++ b/configs/beelink_x2_defconfig -@@ -0,0 +1,5 @@ -+CONFIG_PLATFORM_H3=y -+CONFIG_CIR=y -+CONFIG_CIR_PROTO_NEC=y -+CONFIG_CIR_WAKE_CODE=0x8051 -+CONFIG_REGULATOR_GPIO_DRAM=y -diff --git a/configs/libretech_all_h3_cc_h3_defconfig b/configs/libretech_all_h3_cc_h3_defconfig -new file mode 100644 -index 000000000000..d2ff46056b6c ---- /dev/null -+++ b/configs/libretech_all_h3_cc_h3_defconfig -@@ -0,0 +1,3 @@ -+CONFIG_PLATFORM_H3=y -+CONFIG_CIR=y -+CONFIG_REGULATOR_GPIO_DRAM=y -diff --git a/configs/libretech_all_h3_cc_h5_defconfig b/configs/libretech_all_h3_cc_h5_defconfig -new file mode 100644 -index 000000000000..6cec3a1e13cb ---- /dev/null -+++ b/configs/libretech_all_h3_cc_h5_defconfig -@@ -0,0 +1,3 @@ -+CONFIG_SOC_H5=y -+CONFIG_CIR=y -+CONFIG_REGULATOR_GPIO_DRAM=y -diff --git a/configs/nanopi_m1_defconfig b/configs/nanopi_m1_defconfig -new file mode 100644 -index 000000000000..d93f873f74e2 ---- /dev/null -+++ b/configs/nanopi_m1_defconfig -@@ -0,0 +1,4 @@ -+CONFIG_PLATFORM_H3=y -+CONFIG_CIR=y -+CONFIG_CIR_USE_OSC24M=y -+CONFIG_REGULATOR_GPIO_DRAM=y -diff --git a/configs/orangepi_2_defconfig b/configs/orangepi_2_defconfig -index 77aaea55455a..d2ff46056b6c 100644 ---- a/configs/orangepi_2_defconfig -+++ b/configs/orangepi_2_defconfig -@@ -1,2 +1,3 @@ - CONFIG_PLATFORM_H3=y -+CONFIG_CIR=y - CONFIG_REGULATOR_GPIO_DRAM=y -diff --git a/configs/orangepi_pc2_defconfig b/configs/orangepi_pc2_defconfig -index 1077dd735643..25149d7f46d0 100644 ---- a/configs/orangepi_pc2_defconfig -+++ b/configs/orangepi_pc2_defconfig -@@ -1,4 +1,5 @@ - CONFIG_SOC_H5=y - CONFIG_CIR=y -+CONFIG_CIR_USE_OSC24M=y - CONFIG_REGULATOR_GPIO_DRAM=y - CONFIG_REGULATOR_SY8106A=y -diff --git a/configs/orangepi_pc_defconfig b/configs/orangepi_pc_defconfig -index 77aaea55455a..d93f873f74e2 100644 ---- a/configs/orangepi_pc_defconfig -+++ b/configs/orangepi_pc_defconfig -@@ -1,2 +1,4 @@ - CONFIG_PLATFORM_H3=y -+CONFIG_CIR=y -+CONFIG_CIR_USE_OSC24M=y - CONFIG_REGULATOR_GPIO_DRAM=y -diff --git a/configs/orangepi_pc_plus_defconfig b/configs/orangepi_pc_plus_defconfig -index 77aaea55455a..d93f873f74e2 100644 ---- a/configs/orangepi_pc_plus_defconfig -+++ b/configs/orangepi_pc_plus_defconfig -@@ -1,2 +1,4 @@ - CONFIG_PLATFORM_H3=y -+CONFIG_CIR=y -+CONFIG_CIR_USE_OSC24M=y - CONFIG_REGULATOR_GPIO_DRAM=y -diff --git a/configs/orangepi_plus2e_defconfig b/configs/orangepi_plus2e_defconfig -index d2ff46056b6c..d93f873f74e2 100644 ---- a/configs/orangepi_plus2e_defconfig -+++ b/configs/orangepi_plus2e_defconfig -@@ -1,3 +1,4 @@ - CONFIG_PLATFORM_H3=y - CONFIG_CIR=y -+CONFIG_CIR_USE_OSC24M=y - CONFIG_REGULATOR_GPIO_DRAM=y -diff --git a/configs/orangepi_plus_defconfig b/configs/orangepi_plus_defconfig -index 77aaea55455a..d93f873f74e2 100644 ---- a/configs/orangepi_plus_defconfig -+++ b/configs/orangepi_plus_defconfig -@@ -1,2 +1,4 @@ - CONFIG_PLATFORM_H3=y -+CONFIG_CIR=y -+CONFIG_CIR_USE_OSC24M=y - CONFIG_REGULATOR_GPIO_DRAM=y From acd078a83e6860a64323a00b1726256faf7b385c Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Fri, 26 Mar 2021 21:12:53 +0100 Subject: [PATCH 3/4] Allwinner: A64: Lower GPU frequency --- .../A64/patches/linux/0002-a64-increase-mali-frequency.patch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/Allwinner/devices/A64/patches/linux/0002-a64-increase-mali-frequency.patch b/projects/Allwinner/devices/A64/patches/linux/0002-a64-increase-mali-frequency.patch index 33a08323a5..be00c324aa 100644 --- a/projects/Allwinner/devices/A64/patches/linux/0002-a64-increase-mali-frequency.patch +++ b/projects/Allwinner/devices/A64/patches/linux/0002-a64-increase-mali-frequency.patch @@ -16,7 +16,7 @@ Signed-off-by: Jernej Skrabec resets = <&ccu RST_BUS_GPU>; + + assigned-clocks = <&ccu CLK_GPU>; -+ assigned-clock-rates = <576000000>; ++ assigned-clock-rates = <432000000>; }; gic: interrupt-controller@1c81000 { From a00e9645438eab0b50a529f22a7a0e0a5b1d58a6 Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Fri, 26 Mar 2021 21:14:22 +0100 Subject: [PATCH 4/4] kodi: Add upstream patch for skipping frames --- ...cDRMPRIME-skip-frames-when-requested.patch | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 packages/mediacenter/kodi/patches/kodi-995.30-CDVDVideoCodecDRMPRIME-skip-frames-when-requested.patch 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 new file mode 100644 index 0000000000..da55f3ae2d --- /dev/null +++ b/packages/mediacenter/kodi/patches/kodi-995.30-CDVDVideoCodecDRMPRIME-skip-frames-when-requested.patch @@ -0,0 +1,65 @@ +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(-) + +diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecDRMPRIME.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecDRMPRIME.cpp +index 8024c20816ffe..b27db92b5f7d7 100644 +--- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecDRMPRIME.cpp ++++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecDRMPRIME.cpp +@@ -517,6 +517,12 @@ void CDVDVideoCodecDRMPRIME::SetPictureParams(VideoPicture* pVideoPicture) + 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 CDVDVideoCodecDRMPRIME::GetPicture(VideoPicture* pVideo + + 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; ++ } ++ } ++} +diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecDRMPRIME.h b/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecDRMPRIME.h +index 77d066c3d9caf..9d70893b70b83 100644 +--- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecDRMPRIME.h ++++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecDRMPRIME.h +@@ -29,7 +29,7 @@ class CDVDVideoCodecDRMPRIME : public CDVDVideoCodec + 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();