Skip to content

Commit

Permalink
VideoPlayer: optimze configure of renderer
Browse files Browse the repository at this point in the history
  • Loading branch information
FernetMenta committed Jan 14, 2016
1 parent 9428f0d commit 91807a4
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 9 deletions.
5 changes: 4 additions & 1 deletion xbmc/cores/VideoPlayer/VideoRenderers/LinuxRendererGL.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -531,9 +531,12 @@ void CLinuxRendererGL::Flush()

void CLinuxRendererGL::Update()
{
if (!m_bConfigured) return;
if (!m_bConfigured)
return;
ManageDisplay();
m_scalingMethodGui = (ESCALINGMETHOD)-1;

ValidateRenderTarget();
}

void CLinuxRendererGL::RenderUpdate(bool clear, DWORD flags, DWORD alpha)
Expand Down
4 changes: 3 additions & 1 deletion xbmc/cores/VideoPlayer/VideoRenderers/LinuxRendererGLES.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -413,8 +413,10 @@ void CLinuxRendererGLES::Flush()

void CLinuxRendererGLES::Update()
{
if (!m_bConfigured) return;
if (!m_bConfigured)
return;
ManageDisplay();
ValidateRenderTarget();
}

void CLinuxRendererGLES::RenderUpdate(bool clear, DWORD flags, DWORD alpha)
Expand Down
12 changes: 6 additions & 6 deletions xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -307,6 +307,10 @@ bool CRenderManager::Configure(DVDVideoPicture& picture, float fps, unsigned fla
m_NumberBuffers = buffers;
m_renderState = STATE_CONFIGURING;
m_stateEvent.Reset();

CSingleLock lock2(m_presentlock);
m_presentstep = PRESENT_READY;
m_presentevent.notifyAll();
}

if (!m_stateEvent.WaitMSec(1000))
Expand Down Expand Up @@ -400,12 +404,6 @@ bool CRenderManager::IsConfigured() const
return false;
}

void CRenderManager::Update()
{
if (m_pRenderer)
m_pRenderer->Update();
}

void CRenderManager::FrameWait(int ms)
{
XbmcThreads::EndTime timeout(ms);
Expand Down Expand Up @@ -437,6 +435,8 @@ void CRenderManager::FrameMove()
if (!Configure())
return;

FrameWait(50);

if (m_flags & CONF_FLAGS_FULLSCREEN)
{
CApplicationMessenger::GetInstance().PostMsg(TMSG_SWITCHTOFULLSCREEN);
Expand Down
1 change: 0 additions & 1 deletion xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.h
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,6 @@ class CRenderManager
// Functions called from render thread
void GetVideoRect(CRect &source, CRect &dest, CRect &view);
float GetAspectRatio();
void Update();
void FrameMove();
void FrameFinish();
void FrameWait(int ms);
Expand Down

0 comments on commit 91807a4

Please sign in to comment.