mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-24 11:16:51 +00:00
RBP: Remove obsolete patch
This commit is contained in:
parent
8fcd93a97e
commit
206679a738
@ -1,185 +0,0 @@
|
||||
From 1fc5cd103a26697df63075953d6fd556f39c02bd Mon Sep 17 00:00:00 2001
|
||||
From: popcornmix <popcornmix@gmail.com>
|
||||
Date: Wed, 26 Oct 2016 23:21:43 +0100
|
||||
Subject: [PATCH] squash: Restructure the pll adjust code to avoid adjustment
|
||||
when sync display is disabled
|
||||
|
||||
---
|
||||
.../AudioEngine/Engines/ActiveAE/ActiveAE.cpp | 25 ++++++++--------------
|
||||
.../Engines/ActiveAE/ActiveAEStream.cpp | 17 ++++++++++++++-
|
||||
.../AudioEngine/Engines/ActiveAE/ActiveAEStream.h | 3 ++-
|
||||
xbmc/linux/RBP.cpp | 17 ++++++++++-----
|
||||
xbmc/linux/RBP.h | 5 +++--
|
||||
5 files changed, 42 insertions(+), 25 deletions(-)
|
||||
|
||||
diff --git a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp
|
||||
index 497b443..68399ab 100644
|
||||
--- a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp
|
||||
+++ b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp
|
||||
@@ -34,10 +34,6 @@ using namespace ActiveAE;
|
||||
#include "windowing/WindowingFactory.h"
|
||||
#include "utils/log.h"
|
||||
|
||||
-#if defined(TARGET_RASPBERRY_PI)
|
||||
-#include "linux/RBP.h"
|
||||
-#endif
|
||||
-
|
||||
#define MAX_CACHE_LEVEL 0.4 // total cache time of stream in seconds
|
||||
#define MAX_WATER_LEVEL 0.2 // buffered time after stream stages in seconds
|
||||
#define MAX_BUFFER_TIME 0.1 // max time of a buffer in seconds
|
||||
@@ -2457,21 +2453,18 @@ CSampleBuffer* CActiveAE::SyncStream(CActiveAEStream *stream)
|
||||
if (!newerror || stream->m_syncState != CAESyncInfo::AESyncState::SYNC_INSYNC)
|
||||
return ret;
|
||||
|
||||
- if (stream->m_pllAdjust > 0) // pll adjust
|
||||
- {
|
||||
-#if defined(TARGET_RASPBERRY_PI)
|
||||
- double e = std::max(std::min(error / 50.0, 1.0), -1.0);
|
||||
- double m_plladjust = 1.0 + e * stream->m_pllAdjust;
|
||||
- double m_last_plladjust = g_RBP.AdjustHDMIClock(m_plladjust);
|
||||
- CLog::Log(LOGDEBUG, "CDVDPlayerAudio::%s pll:%.5f (%.5f) error:%.6f e:%.6f a:%f", __FUNCTION__, m_plladjust, m_last_plladjust, error, e * stream->m_pllAdjust, stream->m_pllAdjust );
|
||||
-#endif
|
||||
- }
|
||||
- else if (stream->m_resampleMode)
|
||||
+ if (stream->m_resampleMode)
|
||||
{
|
||||
if (stream->m_processingBuffers)
|
||||
{
|
||||
- stream->m_processingBuffers->SetRR(stream->CalcResampleRatio(error), m_settings.atempoThreshold);
|
||||
- CLog::Log(LOGDEBUG, "CDVDPlayerAudio::%s rr:%.5f threshold:%.3f error:%.6f", __FUNCTION__, stream->m_processingBuffers->GetRR(), m_settings.atempoThreshold, error);
|
||||
+ double pllAdjustRequest = 0.0, pllAdjustActual = 0.0, e = 0.0;
|
||||
+ if (stream->m_pllAdjust > 0.0)
|
||||
+ {
|
||||
+ e = std::max(std::min(error / 50.0, 1.0), - 1.0);
|
||||
+ pllAdjustRequest = 1.0 + e * stream->m_pllAdjust;
|
||||
+ }
|
||||
+ stream->m_processingBuffers->SetRR(stream->CalcResampleRatio(error), m_settings.atempoThreshold, pllAdjustRequest, stream->m_pllAdjust, pllAdjustActual);
|
||||
+ CLog::Log(LOGDEBUG, "ActiveAE::%s pll:%.5f (act:%.5f lim:%.5f) rr:%.5f threshold:%.3f error:%.6f", __FUNCTION__, pllAdjustRequest, pllAdjustActual, stream->m_pllAdjust, stream->m_processingBuffers->GetRR(), m_settings.atempoThreshold, error );
|
||||
}
|
||||
}
|
||||
else if (stream->m_processingBuffers)
|
||||
diff --git a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEStream.cpp b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEStream.cpp
|
||||
index 394459a..6b009dc 100644
|
||||
--- a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEStream.cpp
|
||||
+++ b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEStream.cpp
|
||||
@@ -29,6 +29,10 @@
|
||||
#include "ActiveAE.h"
|
||||
#include "ActiveAEStream.h"
|
||||
|
||||
+#if defined(TARGET_RASPBERRY_PI)
|
||||
+#include "linux/RBP.h"
|
||||
+#endif
|
||||
+
|
||||
using namespace ActiveAE;
|
||||
|
||||
/* typecast AE to CActiveAE */
|
||||
@@ -71,6 +75,7 @@ CActiveAEStream::CActiveAEStream(AEAudioFormat *format, unsigned int streamid)
|
||||
m_lastPtsJump = 0;
|
||||
m_errorInterval = 1000;
|
||||
m_clockSpeed = 1.0;
|
||||
+ m_pllAdjust = 0.0f;
|
||||
}
|
||||
|
||||
CActiveAEStream::~CActiveAEStream()
|
||||
@@ -715,8 +720,18 @@ bool CActiveAEStreamBuffers::IsDrained()
|
||||
return false;
|
||||
}
|
||||
|
||||
-void CActiveAEStreamBuffers::SetRR(double rr, double atempoThreshold)
|
||||
+void CActiveAEStreamBuffers::SetRR(double rr, double atempoThreshold, double pllAdjustRequest, double pllThreshold, double &pllAdjustActual)
|
||||
{
|
||||
+#if defined(TARGET_RASPBERRY_PI)
|
||||
+ if (pllAdjustRequest > 0.0f) // pll adjust
|
||||
+ {
|
||||
+ pllAdjustActual = g_RBP.AdjustHDMIClock(pllAdjustRequest);
|
||||
+ rr = 1.0;
|
||||
+ }
|
||||
+ else
|
||||
+ pllAdjustActual = g_RBP.AdjustHDMIClock(1.0);
|
||||
+#endif
|
||||
+
|
||||
if (fabs(rr - 1.0) < atempoThreshold)
|
||||
{
|
||||
m_resampleBuffers->SetRR(rr);
|
||||
diff --git a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEStream.h b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEStream.h
|
||||
index 927f93e..80ab096 100644
|
||||
--- a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEStream.h
|
||||
+++ b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEStream.h
|
||||
@@ -103,7 +103,8 @@ class CActiveAEStreamBuffers
|
||||
void Flush();
|
||||
void SetDrain(bool drain);
|
||||
bool IsDrained();
|
||||
- void SetRR(double rr, double atempoThreshold);
|
||||
+ void SetRR(double rr, double atempoThreshold, double pllAdjustRequest, double pllThreshold, double &pllAdjustActual);
|
||||
+ void SetRR(double rr, double atempoThreshold) { double pllAdjustActual; SetRR(rr, atempoThreshold, 0.0, 0.0, pllAdjustActual); }
|
||||
double GetRR();
|
||||
void FillBuffer();
|
||||
bool DoesNormalize();
|
||||
diff --git a/xbmc/linux/RBP.cpp b/xbmc/linux/RBP.cpp
|
||||
index 2efc281..5c0fbaf 100644
|
||||
--- a/xbmc/linux/RBP.cpp
|
||||
+++ b/xbmc/linux/RBP.cpp
|
||||
@@ -49,7 +49,8 @@ CRBP::CRBP()
|
||||
m_DllBcmHost = new DllBcmHost();
|
||||
m_OMX = new COMXCore();
|
||||
m_display = DISPMANX_NO_HANDLE;
|
||||
- m_last_pll_adjust = 1.0;
|
||||
+ m_requested_pll_adjust = -1.0;
|
||||
+ m_actual_pll_adjust = -1.0;
|
||||
m_p = NULL;
|
||||
m_x = 0;
|
||||
m_y = 0;
|
||||
@@ -166,7 +167,8 @@ void CRBP::CloseDisplay(DISPMANX_DISPLAY_HANDLE_T display)
|
||||
assert(s == 0);
|
||||
vc_dispmanx_display_close(m_display);
|
||||
m_display = DISPMANX_NO_HANDLE;
|
||||
- m_last_pll_adjust = 1.0;
|
||||
+ m_requested_pll_adjust = -1.0;
|
||||
+ m_actual_pll_adjust = -1.0;
|
||||
}
|
||||
|
||||
void CRBP::GetDisplaySize(int &width, int &height)
|
||||
@@ -529,12 +531,17 @@ void CRBP::uninit_cursor()
|
||||
double CRBP::AdjustHDMIClock(double adjust)
|
||||
{
|
||||
char response[80];
|
||||
+
|
||||
+ if (adjust == m_requested_pll_adjust)
|
||||
+ return m_actual_pll_adjust;
|
||||
+
|
||||
+ m_requested_pll_adjust = adjust;
|
||||
vc_gencmd(response, sizeof response, "hdmi_adjust_clock %f", adjust);
|
||||
char *p = strchr(response, '=');
|
||||
if (p)
|
||||
- m_last_pll_adjust = atof(p+1);
|
||||
- CLog::Log(LOGDEBUG, "CRBP::%s(%.4f) = %.4f", __func__, adjust, m_last_pll_adjust);
|
||||
- return m_last_pll_adjust;
|
||||
+ m_actual_pll_adjust = atof(p+1);
|
||||
+ CLog::Log(LOGDEBUG, "CRBP::%s(%.5f) = %.5f", __func__, adjust, m_actual_pll_adjust);
|
||||
+ return m_actual_pll_adjust;
|
||||
}
|
||||
|
||||
#include "cores/VideoPlayer/DVDClock.h"
|
||||
diff --git a/xbmc/linux/RBP.h b/xbmc/linux/RBP.h
|
||||
index 92ed007..9c7f4b1 100644
|
||||
--- a/xbmc/linux/RBP.h
|
||||
+++ b/xbmc/linux/RBP.h
|
||||
@@ -83,7 +83,7 @@ class CRBP
|
||||
void VSyncCallback();
|
||||
int GetMBox() { return m_mb; }
|
||||
double AdjustHDMIClock(double adjust);
|
||||
- double GetAdjustHDMIClock() { return m_last_pll_adjust; }
|
||||
+ double GetAdjustHDMIClock() { return m_actual_pll_adjust; }
|
||||
|
||||
void SuspendVideoOutput();
|
||||
void ResumeVideoOutput();
|
||||
@@ -112,7 +112,8 @@ class CRBP
|
||||
int m_x;
|
||||
int m_y;
|
||||
bool m_enabled;
|
||||
- double m_last_pll_adjust;
|
||||
+ double m_requested_pll_adjust;
|
||||
+ double m_actual_pll_adjust;
|
||||
public:
|
||||
void init_cursor();
|
||||
void set_cursor(const void *pixels, int width, int height, int hotspot_x, int hotspot_y);
|
@ -1,185 +0,0 @@
|
||||
From 1fc5cd103a26697df63075953d6fd556f39c02bd Mon Sep 17 00:00:00 2001
|
||||
From: popcornmix <popcornmix@gmail.com>
|
||||
Date: Wed, 26 Oct 2016 23:21:43 +0100
|
||||
Subject: [PATCH] squash: Restructure the pll adjust code to avoid adjustment
|
||||
when sync display is disabled
|
||||
|
||||
---
|
||||
.../AudioEngine/Engines/ActiveAE/ActiveAE.cpp | 25 ++++++++--------------
|
||||
.../Engines/ActiveAE/ActiveAEStream.cpp | 17 ++++++++++++++-
|
||||
.../AudioEngine/Engines/ActiveAE/ActiveAEStream.h | 3 ++-
|
||||
xbmc/linux/RBP.cpp | 17 ++++++++++-----
|
||||
xbmc/linux/RBP.h | 5 +++--
|
||||
5 files changed, 42 insertions(+), 25 deletions(-)
|
||||
|
||||
diff --git a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp
|
||||
index 497b443..68399ab 100644
|
||||
--- a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp
|
||||
+++ b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp
|
||||
@@ -34,10 +34,6 @@ using namespace ActiveAE;
|
||||
#include "windowing/WindowingFactory.h"
|
||||
#include "utils/log.h"
|
||||
|
||||
-#if defined(TARGET_RASPBERRY_PI)
|
||||
-#include "linux/RBP.h"
|
||||
-#endif
|
||||
-
|
||||
#define MAX_CACHE_LEVEL 0.4 // total cache time of stream in seconds
|
||||
#define MAX_WATER_LEVEL 0.2 // buffered time after stream stages in seconds
|
||||
#define MAX_BUFFER_TIME 0.1 // max time of a buffer in seconds
|
||||
@@ -2457,21 +2453,18 @@ CSampleBuffer* CActiveAE::SyncStream(CActiveAEStream *stream)
|
||||
if (!newerror || stream->m_syncState != CAESyncInfo::AESyncState::SYNC_INSYNC)
|
||||
return ret;
|
||||
|
||||
- if (stream->m_pllAdjust > 0) // pll adjust
|
||||
- {
|
||||
-#if defined(TARGET_RASPBERRY_PI)
|
||||
- double e = std::max(std::min(error / 50.0, 1.0), -1.0);
|
||||
- double m_plladjust = 1.0 + e * stream->m_pllAdjust;
|
||||
- double m_last_plladjust = g_RBP.AdjustHDMIClock(m_plladjust);
|
||||
- CLog::Log(LOGDEBUG, "CDVDPlayerAudio::%s pll:%.5f (%.5f) error:%.6f e:%.6f a:%f", __FUNCTION__, m_plladjust, m_last_plladjust, error, e * stream->m_pllAdjust, stream->m_pllAdjust );
|
||||
-#endif
|
||||
- }
|
||||
- else if (stream->m_resampleMode)
|
||||
+ if (stream->m_resampleMode)
|
||||
{
|
||||
if (stream->m_processingBuffers)
|
||||
{
|
||||
- stream->m_processingBuffers->SetRR(stream->CalcResampleRatio(error), m_settings.atempoThreshold);
|
||||
- CLog::Log(LOGDEBUG, "CDVDPlayerAudio::%s rr:%.5f threshold:%.3f error:%.6f", __FUNCTION__, stream->m_processingBuffers->GetRR(), m_settings.atempoThreshold, error);
|
||||
+ double pllAdjustRequest = 0.0, pllAdjustActual = 0.0, e = 0.0;
|
||||
+ if (stream->m_pllAdjust > 0.0)
|
||||
+ {
|
||||
+ e = std::max(std::min(error / 50.0, 1.0), - 1.0);
|
||||
+ pllAdjustRequest = 1.0 + e * stream->m_pllAdjust;
|
||||
+ }
|
||||
+ stream->m_processingBuffers->SetRR(stream->CalcResampleRatio(error), m_settings.atempoThreshold, pllAdjustRequest, stream->m_pllAdjust, pllAdjustActual);
|
||||
+ CLog::Log(LOGDEBUG, "ActiveAE::%s pll:%.5f (act:%.5f lim:%.5f) rr:%.5f threshold:%.3f error:%.6f", __FUNCTION__, pllAdjustRequest, pllAdjustActual, stream->m_pllAdjust, stream->m_processingBuffers->GetRR(), m_settings.atempoThreshold, error );
|
||||
}
|
||||
}
|
||||
else if (stream->m_processingBuffers)
|
||||
diff --git a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEStream.cpp b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEStream.cpp
|
||||
index 394459a..6b009dc 100644
|
||||
--- a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEStream.cpp
|
||||
+++ b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEStream.cpp
|
||||
@@ -29,6 +29,10 @@
|
||||
#include "ActiveAE.h"
|
||||
#include "ActiveAEStream.h"
|
||||
|
||||
+#if defined(TARGET_RASPBERRY_PI)
|
||||
+#include "linux/RBP.h"
|
||||
+#endif
|
||||
+
|
||||
using namespace ActiveAE;
|
||||
|
||||
/* typecast AE to CActiveAE */
|
||||
@@ -71,6 +75,7 @@ CActiveAEStream::CActiveAEStream(AEAudioFormat *format, unsigned int streamid)
|
||||
m_lastPtsJump = 0;
|
||||
m_errorInterval = 1000;
|
||||
m_clockSpeed = 1.0;
|
||||
+ m_pllAdjust = 0.0f;
|
||||
}
|
||||
|
||||
CActiveAEStream::~CActiveAEStream()
|
||||
@@ -715,8 +720,18 @@ bool CActiveAEStreamBuffers::IsDrained()
|
||||
return false;
|
||||
}
|
||||
|
||||
-void CActiveAEStreamBuffers::SetRR(double rr, double atempoThreshold)
|
||||
+void CActiveAEStreamBuffers::SetRR(double rr, double atempoThreshold, double pllAdjustRequest, double pllThreshold, double &pllAdjustActual)
|
||||
{
|
||||
+#if defined(TARGET_RASPBERRY_PI)
|
||||
+ if (pllAdjustRequest > 0.0f) // pll adjust
|
||||
+ {
|
||||
+ pllAdjustActual = g_RBP.AdjustHDMIClock(pllAdjustRequest);
|
||||
+ rr = 1.0;
|
||||
+ }
|
||||
+ else
|
||||
+ pllAdjustActual = g_RBP.AdjustHDMIClock(1.0);
|
||||
+#endif
|
||||
+
|
||||
if (fabs(rr - 1.0) < atempoThreshold)
|
||||
{
|
||||
m_resampleBuffers->SetRR(rr);
|
||||
diff --git a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEStream.h b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEStream.h
|
||||
index 927f93e..80ab096 100644
|
||||
--- a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEStream.h
|
||||
+++ b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEStream.h
|
||||
@@ -103,7 +103,8 @@ class CActiveAEStreamBuffers
|
||||
void Flush();
|
||||
void SetDrain(bool drain);
|
||||
bool IsDrained();
|
||||
- void SetRR(double rr, double atempoThreshold);
|
||||
+ void SetRR(double rr, double atempoThreshold, double pllAdjustRequest, double pllThreshold, double &pllAdjustActual);
|
||||
+ void SetRR(double rr, double atempoThreshold) { double pllAdjustActual; SetRR(rr, atempoThreshold, 0.0, 0.0, pllAdjustActual); }
|
||||
double GetRR();
|
||||
void FillBuffer();
|
||||
bool DoesNormalize();
|
||||
diff --git a/xbmc/linux/RBP.cpp b/xbmc/linux/RBP.cpp
|
||||
index 2efc281..5c0fbaf 100644
|
||||
--- a/xbmc/linux/RBP.cpp
|
||||
+++ b/xbmc/linux/RBP.cpp
|
||||
@@ -49,7 +49,8 @@ CRBP::CRBP()
|
||||
m_DllBcmHost = new DllBcmHost();
|
||||
m_OMX = new COMXCore();
|
||||
m_display = DISPMANX_NO_HANDLE;
|
||||
- m_last_pll_adjust = 1.0;
|
||||
+ m_requested_pll_adjust = -1.0;
|
||||
+ m_actual_pll_adjust = -1.0;
|
||||
m_p = NULL;
|
||||
m_x = 0;
|
||||
m_y = 0;
|
||||
@@ -166,7 +167,8 @@ void CRBP::CloseDisplay(DISPMANX_DISPLAY_HANDLE_T display)
|
||||
assert(s == 0);
|
||||
vc_dispmanx_display_close(m_display);
|
||||
m_display = DISPMANX_NO_HANDLE;
|
||||
- m_last_pll_adjust = 1.0;
|
||||
+ m_requested_pll_adjust = -1.0;
|
||||
+ m_actual_pll_adjust = -1.0;
|
||||
}
|
||||
|
||||
void CRBP::GetDisplaySize(int &width, int &height)
|
||||
@@ -529,12 +531,17 @@ void CRBP::uninit_cursor()
|
||||
double CRBP::AdjustHDMIClock(double adjust)
|
||||
{
|
||||
char response[80];
|
||||
+
|
||||
+ if (adjust == m_requested_pll_adjust)
|
||||
+ return m_actual_pll_adjust;
|
||||
+
|
||||
+ m_requested_pll_adjust = adjust;
|
||||
vc_gencmd(response, sizeof response, "hdmi_adjust_clock %f", adjust);
|
||||
char *p = strchr(response, '=');
|
||||
if (p)
|
||||
- m_last_pll_adjust = atof(p+1);
|
||||
- CLog::Log(LOGDEBUG, "CRBP::%s(%.4f) = %.4f", __func__, adjust, m_last_pll_adjust);
|
||||
- return m_last_pll_adjust;
|
||||
+ m_actual_pll_adjust = atof(p+1);
|
||||
+ CLog::Log(LOGDEBUG, "CRBP::%s(%.5f) = %.5f", __func__, adjust, m_actual_pll_adjust);
|
||||
+ return m_actual_pll_adjust;
|
||||
}
|
||||
|
||||
#include "cores/VideoPlayer/DVDClock.h"
|
||||
diff --git a/xbmc/linux/RBP.h b/xbmc/linux/RBP.h
|
||||
index 92ed007..9c7f4b1 100644
|
||||
--- a/xbmc/linux/RBP.h
|
||||
+++ b/xbmc/linux/RBP.h
|
||||
@@ -83,7 +83,7 @@ class CRBP
|
||||
void VSyncCallback();
|
||||
int GetMBox() { return m_mb; }
|
||||
double AdjustHDMIClock(double adjust);
|
||||
- double GetAdjustHDMIClock() { return m_last_pll_adjust; }
|
||||
+ double GetAdjustHDMIClock() { return m_actual_pll_adjust; }
|
||||
|
||||
void SuspendVideoOutput();
|
||||
void ResumeVideoOutput();
|
||||
@@ -112,7 +112,8 @@ class CRBP
|
||||
int m_x;
|
||||
int m_y;
|
||||
bool m_enabled;
|
||||
- double m_last_pll_adjust;
|
||||
+ double m_requested_pll_adjust;
|
||||
+ double m_actual_pll_adjust;
|
||||
public:
|
||||
void init_cursor();
|
||||
void set_cursor(const void *pixels, int width, int height, int hotspot_x, int hotspot_y);
|
Loading…
x
Reference in New Issue
Block a user