mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-29 13:46:49 +00:00
kodi: post beta2 patches, crash and mem leak fixes
This commit is contained in:
parent
ef0f30ad8b
commit
e27f52b401
116
packages/mediacenter/kodi/patches/kodi-999.99-PR10501.patch
Normal file
116
packages/mediacenter/kodi/patches/kodi-999.99-PR10501.patch
Normal file
@ -0,0 +1,116 @@
|
|||||||
|
From e0b1e6bd9afc7db17173200b21fcbf0084f83e78 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Rainer Hochecker <fernetmenta@online.de>
|
||||||
|
Date: Mon, 19 Sep 2016 14:20:44 +0200
|
||||||
|
Subject: [PATCH] VideoPlayer: drop obsolete player method HasFrame, fix subs
|
||||||
|
for bypass renderer
|
||||||
|
|
||||||
|
---
|
||||||
|
xbmc/ApplicationPlayer.cpp | 9 ---------
|
||||||
|
xbmc/ApplicationPlayer.h | 1 -
|
||||||
|
xbmc/cores/IPlayer.h | 2 --
|
||||||
|
xbmc/cores/VideoPlayer/VideoPlayer.cpp | 5 -----
|
||||||
|
xbmc/cores/VideoPlayer/VideoPlayer.h | 1 -
|
||||||
|
xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.cpp | 3 ++-
|
||||||
|
xbmc/video/windows/GUIWindowFullScreen.cpp | 2 +-
|
||||||
|
7 files changed, 3 insertions(+), 20 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/xbmc/ApplicationPlayer.cpp b/xbmc/ApplicationPlayer.cpp
|
||||||
|
index b76134d..205cdd5 100644
|
||||||
|
--- a/xbmc/ApplicationPlayer.cpp
|
||||||
|
+++ b/xbmc/ApplicationPlayer.cpp
|
||||||
|
@@ -762,15 +762,6 @@ void CApplicationPlayer::FrameMove()
|
||||||
|
player->FrameMove();
|
||||||
|
}
|
||||||
|
|
||||||
|
-bool CApplicationPlayer::HasFrame()
|
||||||
|
-{
|
||||||
|
- std::shared_ptr<IPlayer> player = GetInternal();
|
||||||
|
- if (player)
|
||||||
|
- return player->HasFrame();
|
||||||
|
- else
|
||||||
|
- return false;
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
void CApplicationPlayer::Render(bool clear, uint32_t alpha, bool gui)
|
||||||
|
{
|
||||||
|
std::shared_ptr<IPlayer> player = GetInternal();
|
||||||
|
diff --git a/xbmc/ApplicationPlayer.h b/xbmc/ApplicationPlayer.h
|
||||||
|
index d27e8df..5144a0d 100644
|
||||||
|
--- a/xbmc/ApplicationPlayer.h
|
||||||
|
+++ b/xbmc/ApplicationPlayer.h
|
||||||
|
@@ -83,7 +83,6 @@ class CApplicationPlayer
|
||||||
|
void SetPlaySpeed(float speed);
|
||||||
|
|
||||||
|
void FrameMove();
|
||||||
|
- bool HasFrame();
|
||||||
|
void Render(bool clear, uint32_t alpha = 255, bool gui = true);
|
||||||
|
void FlushRenderer();
|
||||||
|
void SetRenderViewMode(int mode);
|
||||||
|
diff --git a/xbmc/cores/IPlayer.h b/xbmc/cores/IPlayer.h
|
||||||
|
index 7bc005b..d004a4e 100644
|
||||||
|
--- a/xbmc/cores/IPlayer.h
|
||||||
|
+++ b/xbmc/cores/IPlayer.h
|
||||||
|
@@ -389,8 +389,6 @@ class IPlayer
|
||||||
|
*/
|
||||||
|
virtual void FrameMove() {};
|
||||||
|
|
||||||
|
- virtual bool HasFrame() { return false; };
|
||||||
|
-
|
||||||
|
virtual void Render(bool clear, uint32_t alpha = 255, bool gui = true) {};
|
||||||
|
|
||||||
|
virtual void FlushRenderer() {};
|
||||||
|
diff --git a/xbmc/cores/VideoPlayer/VideoPlayer.cpp b/xbmc/cores/VideoPlayer/VideoPlayer.cpp
|
||||||
|
index b4a604c..ac67923 100644
|
||||||
|
--- a/xbmc/cores/VideoPlayer/VideoPlayer.cpp
|
||||||
|
+++ b/xbmc/cores/VideoPlayer/VideoPlayer.cpp
|
||||||
|
@@ -5039,11 +5039,6 @@ void CVideoPlayer::FrameMove()
|
||||||
|
m_renderManager.FrameMove();
|
||||||
|
}
|
||||||
|
|
||||||
|
-bool CVideoPlayer::HasFrame()
|
||||||
|
-{
|
||||||
|
- return m_renderManager.HasFrame();
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
void CVideoPlayer::Render(bool clear, uint32_t alpha, bool gui)
|
||||||
|
{
|
||||||
|
m_renderManager.Render(clear, 0, alpha, gui);
|
||||||
|
diff --git a/xbmc/cores/VideoPlayer/VideoPlayer.h b/xbmc/cores/VideoPlayer/VideoPlayer.h
|
||||||
|
index 3f39706..d022ce2 100644
|
||||||
|
--- a/xbmc/cores/VideoPlayer/VideoPlayer.h
|
||||||
|
+++ b/xbmc/cores/VideoPlayer/VideoPlayer.h
|
||||||
|
@@ -368,7 +368,6 @@ class CVideoPlayer : public IPlayer, public CThread, public IVideoPlayer, public
|
||||||
|
virtual bool SwitchChannel(const PVR::CPVRChannelPtr &channel);
|
||||||
|
|
||||||
|
virtual void FrameMove();
|
||||||
|
- virtual bool HasFrame();
|
||||||
|
virtual void Render(bool clear, uint32_t alpha = 255, bool gui = true);
|
||||||
|
virtual void FlushRenderer();
|
||||||
|
virtual void SetRenderViewMode(int mode);
|
||||||
|
diff --git a/xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.cpp b/xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.cpp
|
||||||
|
index bbdd403..52d418b 100644
|
||||||
|
--- a/xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.cpp
|
||||||
|
+++ b/xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.cpp
|
||||||
|
@@ -960,7 +960,8 @@ bool CRenderManager::IsGuiLayer()
|
||||||
|
if (!m_pRenderer)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
- if (m_pRenderer->IsGuiLayer() || m_renderedOverlay || m_overlays.HasOverlay(m_presentsource))
|
||||||
|
+ if ((m_pRenderer->IsGuiLayer() && HasFrame()) ||
|
||||||
|
+ m_renderedOverlay || m_overlays.HasOverlay(m_presentsource))
|
||||||
|
return true;
|
||||||
|
|
||||||
|
if (m_renderDebug && m_debugTimer.IsTimePast())
|
||||||
|
diff --git a/xbmc/video/windows/GUIWindowFullScreen.cpp b/xbmc/video/windows/GUIWindowFullScreen.cpp
|
||||||
|
index 7263752..72da165 100644
|
||||||
|
--- a/xbmc/video/windows/GUIWindowFullScreen.cpp
|
||||||
|
+++ b/xbmc/video/windows/GUIWindowFullScreen.cpp
|
||||||
|
@@ -485,7 +485,7 @@ void CGUIWindowFullScreen::FrameMove()
|
||||||
|
|
||||||
|
void CGUIWindowFullScreen::Process(unsigned int currentTime, CDirtyRegionList &dirtyregion)
|
||||||
|
{
|
||||||
|
- if (g_application.m_pPlayer->IsRenderingGuiLayer() && g_application.m_pPlayer->HasFrame())
|
||||||
|
+ if (g_application.m_pPlayer->IsRenderingGuiLayer())
|
||||||
|
MarkDirtyRegion();
|
||||||
|
|
||||||
|
CGUIWindow::Process(currentTime, dirtyregion);
|
44
packages/mediacenter/kodi/patches/kodi-999.99-PR10502.patch
Normal file
44
packages/mediacenter/kodi/patches/kodi-999.99-PR10502.patch
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
From 56fc55be3f7e8361ce95dab9131a6d5bfeae1a7d Mon Sep 17 00:00:00 2001
|
||||||
|
From: Rainer Hochecker <fernetmenta@online.de>
|
||||||
|
Date: Mon, 19 Sep 2016 14:45:29 +0200
|
||||||
|
Subject: [PATCH] VideoPlayer: make processInfo a smart pointer, fixes mem leak
|
||||||
|
|
||||||
|
---
|
||||||
|
xbmc/cores/VideoPlayer/VideoPlayer.cpp | 2 +-
|
||||||
|
xbmc/cores/VideoPlayer/VideoPlayer.h | 3 ++-
|
||||||
|
2 files changed, 3 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/xbmc/cores/VideoPlayer/VideoPlayer.cpp b/xbmc/cores/VideoPlayer/VideoPlayer.cpp
|
||||||
|
index b4a604c..7c5b243 100644
|
||||||
|
--- a/xbmc/cores/VideoPlayer/VideoPlayer.cpp
|
||||||
|
+++ b/xbmc/cores/VideoPlayer/VideoPlayer.cpp
|
||||||
|
@@ -663,7 +663,7 @@ CVideoPlayer::CVideoPlayer(IPlayerCallback& callback)
|
||||||
|
|
||||||
|
m_SkipCommercials = true;
|
||||||
|
|
||||||
|
- m_processInfo = CProcessInfo::CreateInstance();
|
||||||
|
+ m_processInfo.reset(CProcessInfo::CreateInstance());
|
||||||
|
CreatePlayers();
|
||||||
|
|
||||||
|
m_displayLost = false;
|
||||||
|
diff --git a/xbmc/cores/VideoPlayer/VideoPlayer.h b/xbmc/cores/VideoPlayer/VideoPlayer.h
|
||||||
|
index 3f39706..2684376 100644
|
||||||
|
--- a/xbmc/cores/VideoPlayer/VideoPlayer.h
|
||||||
|
+++ b/xbmc/cores/VideoPlayer/VideoPlayer.h
|
||||||
|
@@ -21,6 +21,7 @@
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <atomic>
|
||||||
|
+#include <memory>
|
||||||
|
#include <utility>
|
||||||
|
#include <vector>
|
||||||
|
#include "cores/IPlayer.h"
|
||||||
|
@@ -503,7 +504,7 @@ class CVideoPlayer : public IPlayer, public CThread, public IVideoPlayer, public
|
||||||
|
XbmcThreads::EndTime m_cachingTimer;
|
||||||
|
CFileItem m_item;
|
||||||
|
XbmcThreads::EndTime m_ChannelEntryTimeOut;
|
||||||
|
- CProcessInfo *m_processInfo;
|
||||||
|
+ std::unique_ptr<CProcessInfo> m_processInfo;
|
||||||
|
|
||||||
|
CCurrentStream m_CurrentAudio;
|
||||||
|
CCurrentStream m_CurrentVideo;
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user