diff --git a/xbmc/linux/RBP.cpp b/xbmc/linux/RBP.cpp index a8c17d53eea4a..fe1df0014d37d 100644 --- a/xbmc/linux/RBP.cpp +++ b/xbmc/linux/RBP.cpp @@ -186,17 +186,17 @@ static void vsync_callback(DISPMANX_UPDATE_HANDLE_T u, void *arg) void CRBP::WaitVsync() { int s; - CEvent sync; DISPMANX_DISPLAY_HANDLE_T m_display = vc_dispmanx_display_open( 0 /*screen*/ ); if (m_display == DISPMANX_NO_HANDLE) { CLog::Log(LOGDEBUG, "CRBP::%s skipping while display closed", __func__); return; } - s = vc_dispmanx_vsync_callback(m_display, vsync_callback, (void *)&sync); + m_vsync.Reset(); + s = vc_dispmanx_vsync_callback(m_display, vsync_callback, (void *)&m_vsync); if (s == 0) { - sync.Wait(); + m_vsync.Wait(); } else assert(0); s = vc_dispmanx_vsync_callback(m_display, NULL, NULL); diff --git a/xbmc/linux/RBP.h b/xbmc/linux/RBP.h index e7f8c9bbc554b..4a0418367d8fc 100644 --- a/xbmc/linux/RBP.h +++ b/xbmc/linux/RBP.h @@ -39,6 +39,7 @@ #include "OMXCore.h" #include "xbmc/utils/CPUInfo.h" #include "threads/CriticalSection.h" +#include "threads/Event.h" class CRBP { @@ -81,6 +82,7 @@ class CRBP class DllLibOMXCore; CCriticalSection m_critSection; DISPMANX_DISPLAY_HANDLE_T m_display; + CEvent m_vsync; }; extern CRBP g_RBP;