mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-08-02 15:37:49 +00:00
Merge pull request #4774 from HiassofT/le10-ffmpeg-rpi
ffmpeg: update rpi patch
This commit is contained in:
commit
f6135c9b8b
@ -19,8 +19,8 @@ PKG_FFMPEG_HWACCEL="--enable-hwaccels"
|
||||
|
||||
PKG_FFMPEG_RPI="--disable-mmal"
|
||||
|
||||
if [ "${PROJECT}" = "RPi" -a "${DEVICE}" = "RPi4" ]; then
|
||||
PKG_PATCH_DIRS="rpi v4l2-drmprime"
|
||||
if [ "${PROJECT}" = "RPi" ]; then
|
||||
PKG_PATCH_DIRS="rpi"
|
||||
PKG_FFMPEG_RPI+=" --disable-rpi --enable-sand"
|
||||
else
|
||||
PKG_PATCH_DIRS="v4l2-request v4l2-drmprime"
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,130 +0,0 @@
|
||||
From 276f11db060cc2967377187e2e53138242a43937 Mon Sep 17 00:00:00 2001
|
||||
From: popcornmix <popcornmix@gmail.com>
|
||||
Date: Fri, 27 Mar 2020 15:14:11 +0000
|
||||
Subject: [PATCH] VideoPlayer: Add setting to disable non-hevc accel
|
||||
|
||||
---
|
||||
addons/resource.language.en_gb/resources/strings.po | 10 ++++++++++
|
||||
system/settings/linux.xml | 12 ++++++++++++
|
||||
.../DVDCodecs/Video/DVDVideoCodecDRMPRIME.cpp | 13 +++++++++++++
|
||||
xbmc/settings/Settings.cpp | 2 ++
|
||||
xbmc/settings/Settings.h | 1 +
|
||||
5 files changed, 38 insertions(+)
|
||||
|
||||
diff --git a/addons/resource.language.en_gb/resources/strings.po b/addons/resource.language.en_gb/resources/strings.po
|
||||
index 8fa3fe34dc..1a518905e3 100644
|
||||
--- a/addons/resource.language.en_gb/resources/strings.po
|
||||
+++ b/addons/resource.language.en_gb/resources/strings.po
|
||||
@@ -7282,6 +7282,16 @@ msgctxt "#13467"
|
||||
msgid "Unlimited / 1080 (>30Hz)"
|
||||
msgstr ""
|
||||
|
||||
+#: system/settings/settings.xml
|
||||
+msgctxt "#13500"
|
||||
+msgid "Only allow acceleration for HEVC"
|
||||
+msgstr ""
|
||||
+
|
||||
+#: system/settings/settings.xml
|
||||
+msgctxt "#13501"
|
||||
+msgid "This option disables acceleration for other codecs as they don't currently support seeking with V4L2"
|
||||
+msgstr ""
|
||||
+
|
||||
#empty strings from id 13468 to 13504
|
||||
|
||||
#: system/settings/settings.xml
|
||||
diff --git a/system/settings/linux.xml b/system/settings/linux.xml
|
||||
index 6d1fb9cd49..691a84e65e 100644
|
||||
--- a/system/settings/linux.xml
|
||||
+++ b/system/settings/linux.xml
|
||||
@@ -168,6 +168,18 @@
|
||||
<default>true</default>
|
||||
<control type="toggle" />
|
||||
</setting>
|
||||
+ <setting id="videoplayer.disablenonhevc" type="boolean" parent="videoplayer.useprimedecoderforhw" label="13500" help="13501">
|
||||
+ <requirement>HAS_GLES</requirement>
|
||||
+ <visible>false</visible>
|
||||
+ <dependencies>
|
||||
+ <dependency type="enable">
|
||||
+ <condition setting="videoplayer.useprimedecoderforhw" operator="is">true</condition>
|
||||
+ </dependency>
|
||||
+ </dependencies>
|
||||
+ <level>3</level>
|
||||
+ <default>true</default>
|
||||
+ <control type="toggle" />
|
||||
+ </setting>
|
||||
<setting id="videoplayer.useprimerenderer" type="integer" label="13462" help="13463">
|
||||
<requirement>HAS_GLES</requirement>
|
||||
<visible>false</visible>
|
||||
diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecDRMPRIME.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecDRMPRIME.cpp
|
||||
index 8024c20816..74c29ba3b9 100644
|
||||
--- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecDRMPRIME.cpp
|
||||
+++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecDRMPRIME.cpp
|
||||
@@ -37,6 +37,7 @@ namespace
|
||||
{
|
||||
|
||||
constexpr const char* SETTING_VIDEOPLAYER_USEPRIMEDECODERFORHW{"videoplayer.useprimedecoderforhw"};
|
||||
+constexpr const char* SETTING_VIDEOPLAYER_DISABLENONHEVC{"videoplayer.disablenonhevc"};
|
||||
|
||||
static void ReleaseBuffer(void* opaque, uint8_t* data)
|
||||
{
|
||||
@@ -123,6 +124,15 @@ void CDVDVideoCodecDRMPRIME::Register()
|
||||
|
||||
setting->SetVisible(true);
|
||||
|
||||
+ setting = settings->GetSetting(SETTING_VIDEOPLAYER_DISABLENONHEVC);
|
||||
+ if (!setting)
|
||||
+ {
|
||||
+ CLog::Log(LOGERROR, "Failed to load setting for: {}", SETTING_VIDEOPLAYER_DISABLENONHEVC);
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ setting->SetVisible(true);
|
||||
+
|
||||
CDVDFactoryCodec::RegisterHWVideoCodec("drm_prime", CDVDVideoCodecDRMPRIME::Create);
|
||||
}
|
||||
|
||||
@@ -144,6 +154,9 @@ static const AVCodecHWConfig* FindHWConfig(const AVCodec* codec)
|
||||
if (!CServiceBroker::GetSettingsComponent()->GetSettings()->GetBool(
|
||||
SETTING_VIDEOPLAYER_USEPRIMEDECODERFORHW))
|
||||
return nullptr;
|
||||
+ if (CServiceBroker::GetSettingsComponent()->GetSettings()->GetBool(
|
||||
+ SETTING_VIDEOPLAYER_DISABLENONHEVC) && codec->id != AV_CODEC_ID_HEVC)
|
||||
+ return nullptr;
|
||||
|
||||
const AVCodecHWConfig* config = nullptr;
|
||||
for (int n = 0; (config = avcodec_get_hw_config(codec, n)); n++)
|
||||
diff --git a/xbmc/settings/Settings.cpp b/xbmc/settings/Settings.cpp
|
||||
index 2b487339d6..b9fbe306ce 100644
|
||||
--- a/xbmc/settings/Settings.cpp
|
||||
+++ b/xbmc/settings/Settings.cpp
|
||||
@@ -140,6 +140,7 @@ constexpr const char* CSettings::SETTING_VIDEOPLAYER_RENDERMETHOD;
|
||||
constexpr const char* CSettings::SETTING_VIDEOPLAYER_HQSCALERS;
|
||||
constexpr const char* CSettings::SETTING_VIDEOPLAYER_USEMEDIACODEC;
|
||||
constexpr const char* CSettings::SETTING_VIDEOPLAYER_USEMEDIACODECSURFACE;
|
||||
+constexpr const char* CSettings::SETTING_VIDEOPLAYER_DISABLE_NON_HEVC;
|
||||
constexpr const char* CSettings::SETTING_VIDEOPLAYER_USEVDPAU;
|
||||
constexpr const char* CSettings::SETTING_VIDEOPLAYER_USEVDPAUMIXER;
|
||||
constexpr const char* CSettings::SETTING_VIDEOPLAYER_USEVDPAUMPEG2;
|
||||
@@ -982,6 +983,7 @@ void CSettings::InitializeISettingCallbacks()
|
||||
settingSet.insert(CSettings::SETTING_VIDEOSCREEN_TESTPATTERN);
|
||||
settingSet.insert(CSettings::SETTING_VIDEOPLAYER_USEMEDIACODEC);
|
||||
settingSet.insert(CSettings::SETTING_VIDEOPLAYER_USEMEDIACODECSURFACE);
|
||||
+ settingSet.insert(CSettings::SETTING_VIDEOPLAYER_DISABLE_NON_HEVC);
|
||||
settingSet.insert(CSettings::SETTING_AUDIOOUTPUT_VOLUMESTEPS);
|
||||
settingSet.insert(CSettings::SETTING_SOURCE_VIDEOS);
|
||||
settingSet.insert(CSettings::SETTING_SOURCE_MUSIC);
|
||||
diff --git a/xbmc/settings/Settings.h b/xbmc/settings/Settings.h
|
||||
index 8276c8a5aa..00967cf908 100644
|
||||
--- a/xbmc/settings/Settings.h
|
||||
+++ b/xbmc/settings/Settings.h
|
||||
@@ -118,6 +118,7 @@ public:
|
||||
static constexpr auto SETTING_VIDEOPLAYER_USEMEDIACODEC = "videoplayer.usemediacodec";
|
||||
static constexpr auto SETTING_VIDEOPLAYER_USEMEDIACODECSURFACE =
|
||||
"videoplayer.usemediacodecsurface";
|
||||
+ static constexpr auto SETTING_VIDEOPLAYER_DISABLE_NON_HEVC = "videoplayer.disablenonhevc";
|
||||
static constexpr auto SETTING_VIDEOPLAYER_USEVDPAU = "videoplayer.usevdpau";
|
||||
static constexpr auto SETTING_VIDEOPLAYER_USEVDPAUMIXER = "videoplayer.usevdpaumixer";
|
||||
static constexpr auto SETTING_VIDEOPLAYER_USEVDPAUMPEG2 = "videoplayer.usevdpaumpeg2";
|
||||
--
|
||||
2.20.1
|
||||
|
@ -37,7 +37,7 @@ create_patch() {
|
||||
;;
|
||||
rpi)
|
||||
REPO="https://github.com/jc-kynesim/rpi-ffmpeg"
|
||||
REFSPEC="test/4.3/kodi_main"
|
||||
REFSPEC="dev/4.3.1/drm_prime_1"
|
||||
;;
|
||||
*)
|
||||
echo "illegal feature set ${FEATURE_SET}"
|
||||
|
Loading…
x
Reference in New Issue
Block a user