kodi: aarch64-patches fix 1080p to 2160p GUI and video scaling

kodi: aarch64-patches fix 1080p to 2160p GUI and video scaling
This commit is contained in:
wrxtasy 2016-10-08 00:59:24 +08:00 committed by Christian Hewitt
parent 4417cf4f92
commit 61621c4245
3 changed files with 67 additions and 20 deletions

View File

@ -1,12 +1,15 @@
From d642bb3423bc06e262dbdefd2aefaf2e852fdd0d Mon Sep 17 00:00:00 2001
From 211edfa19b20820772b33f6042992811037a21b3 Mon Sep 17 00:00:00 2001
From: Jamie Coldhill <wrxtasy@amnet.net.au>
Date: Tue, 27 Sep 2016 15:45:06 +0800
Subject: [PATCH] [aml] Scale video axis correctly when 1080p to 2160p
switching
Date: Thu, 6 Oct 2016 17:54:40 +0800
Subject: [PATCH] [aml] Scale video axis correctly when 1080p to 2160p switching
Limit 4096x2160p (smpte24hz) resolution to 3840x2160p display width.
Fixup 720p60hz fallback resolution
---
.../cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp | 20 +++++++++++++++-----
1 file changed, 15 insertions(+), 5 deletions(-)
xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp | 20 +++++++++++++++-----
xbmc/utils/AMLUtils.cpp | 2 +-
xbmc/windowing/egl/EGLNativeTypeAmlogic.cpp | 2 +-
3 files changed, 17 insertions(+), 7 deletions(-)
diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp
index f9b4138..dd7100a 100644
@ -47,6 +50,32 @@ index f9b4138..dd7100a 100644
if (m_stereo_mode == RENDER_STEREO_MODE_MONO)
{
diff --git a/xbmc/utils/AMLUtils.cpp b/xbmc/utils/AMLUtils.cpp
index 80fb453..fd3b38d 100644
--- a/xbmc/utils/AMLUtils.cpp
+++ b/xbmc/utils/AMLUtils.cpp
@@ -465,7 +465,7 @@ bool aml_mode_to_resolution(const char *mode, RESOLUTION_INFO *res)
{
res->iWidth = 1920;
res->iHeight= 1080;
- res->iScreenWidth = 4096;
+ res->iScreenWidth = 3840;
res->iScreenHeight= 2160;
res->fRefreshRate = 24;
res->dwFlags = D3DPRESENTFLAG_PROGRESSIVE;
diff --git a/xbmc/windowing/egl/EGLNativeTypeAmlogic.cpp b/xbmc/windowing/egl/EGLNativeTypeAmlogic.cpp
index 3cbb604..67f9984 100644
--- a/xbmc/windowing/egl/EGLNativeTypeAmlogic.cpp
+++ b/xbmc/windowing/egl/EGLNativeTypeAmlogic.cpp
@@ -177,7 +177,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;
--
1.7.10.4
1.9.1

View File

@ -1,13 +0,0 @@
diff --git a/xbmc/windowing/egl/EGLNativeTypeAmlogic.cpp b/xbmc/windowing/egl/EGLNativeTypeAmlogic.cpp
index cad677a..ad7be0b 100644
--- a/xbmc/windowing/egl/EGLNativeTypeAmlogic.cpp
+++ b/xbmc/windowing/egl/EGLNativeTypeAmlogic.cpp
@@ -178,7 +178,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;

View File

@ -0,0 +1,31 @@
From cf4d1b4f9b291197ebbea3bab36179575a470a7f Mon Sep 17 00:00:00 2001
From: Jamie Coldhill <wrxtasy@amnet.net.au>
Date: Wed, 28 Sep 2016 12:30:57 +0800
Subject: [PATCH] [aml] video & GUI 1080p >> 2160p scaling
---
xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp
index dd7100a..48853ab 100644
--- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp
+++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp
@@ -1628,7 +1628,7 @@ bool CAMLCodec::OpenDecoder(CDVDStreamInfo &hints)
Create();
- m_display_rect = CRect(0, 0, CDisplaySettings::GetInstance().GetCurrentResolutionInfo().iWidth, CDisplaySettings::GetInstance().GetCurrentResolutionInfo().iHeight);
+ m_display_rect = CRect(0, 0, CDisplaySettings::GetInstance().GetCurrentResolutionInfo().iScreenWidth, CDisplaySettings::GetInstance().GetCurrentResolutionInfo().iScreenHeight);
std::string strScaler;
SysfsUtils::GetString("/sys/class/ppmgr/ppscaler", strScaler);
@@ -2258,6 +2258,8 @@ void CAMLCodec::SetVideoRect(const CRect &SrcRect, const CRect &DestRect)
std::string s_gui = StringUtils::Format("%i,%i,%i,%i",
(int)gui.x1, (int)gui.y1,
(int)gui.Width(), (int)gui.Height());
+ CLog::Log(LOGDEBUG, "CAMLCodec::SetVideoRect:SrcRect(%i,%i,%i,%i)", (int)SrcRect.x1, (int)SrcRect.y1, (int)SrcRect.Width(), (int)SrcRect.Height());
+ CLog::Log(LOGDEBUG, "CAMLCodec::SetVideoRect:DestRect(%i,%i,%i,%i)", (int)DestRect.x1, (int)DestRect.y1, (int)DestRect.Width(), (int)DestRect.Height());
CLog::Log(LOGDEBUG, "CAMLCodec::SetVideoRect:display(%s)", s_display.c_str());
CLog::Log(LOGDEBUG, "CAMLCodec::SetVideoRect:gui(%s)", s_gui.c_str());
CLog::Log(LOGDEBUG, "CAMLCodec::SetVideoRect:m_dst_rect(%s)", s_m_dst_rect.c_str());