Merge pull request #1297 from lrusak/kodi-18

kodi: remove aarch64 patches that have been merged upstream
This commit is contained in:
Christian Hewitt 2017-02-08 12:51:23 +04:00 committed by GitHub
commit 1e9896e063
2 changed files with 0 additions and 154 deletions

View File

@ -1,89 +0,0 @@
From a348ef744e260f76e1e4e1299f9181ae40352eb5 Mon Sep 17 00:00:00 2001
From: kszaq <kszaquitto@gmail.com>
Date: Mon, 22 Aug 2016 06:55:00 +0200
Subject: [PATCH] EGLNativeTypeAmlogic: Enable GUI free_scale when framebuffer
size is less than output resolution
For 4K output Kodi renders GUI at 1080p and this results in GUI covering only 1/4 screen.
This patch enables hardware upscaling if output resolution is greater than rendered GUI
resolution.
---
xbmc/windowing/egl/EGLNativeTypeAmlogic.cpp | 33 ++++++++++++++++++++++++++---
xbmc/windowing/egl/EGLNativeTypeAmlogic.h | 2 ++
2 files changed, 32 insertions(+), 3 deletions(-)
diff --git a/xbmc/windowing/egl/EGLNativeTypeAmlogic.cpp b/xbmc/windowing/egl/EGLNativeTypeAmlogic.cpp
index 88cd385..3cbb604 100644
--- a/xbmc/windowing/egl/EGLNativeTypeAmlogic.cpp
+++ b/xbmc/windowing/egl/EGLNativeTypeAmlogic.cpp
@@ -133,6 +133,8 @@ bool CEGLNativeTypeAmlogic::GetNativeResolution(RESOLUTION_INFO *res) const
bool CEGLNativeTypeAmlogic::SetNativeResolution(const RESOLUTION_INFO &res)
{
+ bool result = false;
+
#if defined(_FBDEV_WINDOW_H_)
if (m_nativeWindow)
{
@@ -144,10 +146,12 @@ bool CEGLNativeTypeAmlogic::SetNativeResolution(const RESOLUTION_INFO &res)
// Don't set the same mode as current
std::string mode;
SysfsUtils::GetString("/sys/class/display/mode", mode);
- if (res.strId == mode)
- return false;
+ if (res.strId != mode)
+ result = SetDisplayResolution(res.strId.c_str());
+
+ DealWithScale(res);
- return SetDisplayResolution(res.strId.c_str());
+ return result;
}
bool CEGLNativeTypeAmlogic::ProbeResolutions(std::vector<RESOLUTION_INFO> &resolutions)
@@ -220,6 +224,29 @@ void CEGLNativeTypeAmlogic::SetupVideoScaling(const char *mode)
SysfsUtils::SetInt("/sys/class/graphics/fb0/blank", 0);
}
+void CEGLNativeTypeAmlogic::DealWithScale(const RESOLUTION_INFO &res)
+{
+ if (res.iScreenWidth > res.iWidth && res.iScreenHeight > res.iHeight)
+ EnableFreeScale(res);
+ else
+ DisableFreeScale();
+}
+
+void CEGLNativeTypeAmlogic::EnableFreeScale(const RESOLUTION_INFO &res)
+{
+ char fsaxis_str[256] = {0};
+ sprintf(fsaxis_str, "0 0 %d %d", res.iWidth-1, res.iHeight-1);
+ char waxis_str[256] = {0};
+ sprintf(waxis_str, "0 0 %d %d", res.iScreenWidth-1, res.iScreenHeight-1);
+
+ SysfsUtils::SetInt("/sys/class/graphics/fb0/free_scale", 0);
+ SysfsUtils::SetString("/sys/class/graphics/fb0/free_scale_axis", fsaxis_str);
+ SysfsUtils::SetString("/sys/class/graphics/fb0/window_axis", waxis_str);
+ SysfsUtils::SetInt("/sys/class/graphics/fb0/scale_width", res.iWidth);
+ SysfsUtils::SetInt("/sys/class/graphics/fb0/scale_height", res.iHeight);
+ SysfsUtils::SetInt("/sys/class/graphics/fb0/free_scale", 0x10001);
+}
+
void CEGLNativeTypeAmlogic::DisableFreeScale()
{
// turn off frame buffer freescale
diff --git a/xbmc/windowing/egl/EGLNativeTypeAmlogic.h b/xbmc/windowing/egl/EGLNativeTypeAmlogic.h
index cfb33ca..96aa6f7 100644
--- a/xbmc/windowing/egl/EGLNativeTypeAmlogic.h
+++ b/xbmc/windowing/egl/EGLNativeTypeAmlogic.h
@@ -53,6 +53,8 @@ public:
protected:
bool SetDisplayResolution(const char *resolution);
void SetupVideoScaling(const char *mode);
+ void DealWithScale(const RESOLUTION_INFO &res);
+ void EnableFreeScale(const RESOLUTION_INFO &res);
void DisableFreeScale();
private:
--
1.8.3.1

View File

@ -1,65 +0,0 @@
From 211edfa19b20820772b33f6042992811037a21b3 Mon Sep 17 00:00:00 2001
From: Jamie Coldhill <wrxtasy@amnet.net.au>
Date: Thu, 6 Oct 2016 17:54:40 +0800
Subject: [PATCH] [aml] Scale video axis correctly when 1080p to 2160p switching
Fixup 720p60hz fallback resolution
---
xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp | 10 +++++++++-
xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.h | 1 +
xbmc/windowing/egl/EGLNativeTypeAmlogic.cpp | 2 +-
3 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp
index f9b4138..2a3b413 100644
--- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp
+++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp
@@ -2163,6 +2163,13 @@ void CAMLCodec::SetVideoRect(const CRect &SrcRect, const CRect &DestRect)
update = true;
}
+ RESOLUTION video_res = g_graphicsContext.GetVideoResolution();
+ if (m_video_res != video_res)
+ {
+ m_video_res = video_res;
+ update = true;
+ }
+
if (!update)
{
// mainvideo 'should' be showing already if we get here, make sure.
@@ -2176,7 +2183,8 @@ void CAMLCodec::SetVideoRect(const CRect &SrcRect, const CRect &DestRect)
#ifdef TARGET_ANDROID
display = m_display_rect;
#else
- display = gui;
+ const RESOLUTION_INFO& video_res_info = CDisplaySettings::GetInstance().GetResolutionInfo(video_res);
+ display = m_display_rect = CRect(0, 0, video_res_info.iScreenWidth, video_res_info.iScreenHeight);
#endif
if (gui != display)
{
diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.h b/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.h
index 0eb5c3e..ede815d 100644
--- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.h
+++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.h
@@ -93,6 +93,7 @@ private:
float m_zoom;
int m_contrast;
int m_brightness;
+ RESOLUTION m_video_res;
PosixFilePtr m_amlVideoFile;
std::string m_defaultVfmMap;
diff --git a/xbmc/windowing/egl/EGLNativeTypeAmlogic.cpp b/xbmc/windowing/egl/EGLNativeTypeAmlogic.cpp
index 88cd385..6d63571 100644
--- a/xbmc/windowing/egl/EGLNativeTypeAmlogic.cpp
+++ b/xbmc/windowing/egl/EGLNativeTypeAmlogic.cpp
@@ -173,7 +173,7 @@ bool CEGLNativeTypeAmlogic::GetPreferredResolution(RESOLUTION_INFO *res) const
if (!GetNativeResolution(res))
{
// punt to 720p if we get nothing
- aml_mode_to_resolution("720p", res);
+ aml_mode_to_resolution("720p60hz", res);
}
return true;