Trying out the test build, it appears that it crashes in a few places around doing things to playback.
Full stack trace is:
Kodi.exe!CWinRenderer::Stage1() Line 970 C++
Kodi.exe!CWinRenderer::Render(unsigned long flags) Line 750 C++
Kodi.exe!CWinRenderer::RenderUpdate(bool clear, unsigned long flags, unsigned long alpha) Line 374 C++
Kodi.exe!CXBMCRenderManager:
resentSingle(bool clear, unsigned long flags, unsigned long alpha) Line 801 C++
Kodi.exe!CXBMCRenderManager::Render(bool clear, unsigned long flags, unsigned long alpha) Line 793 C++
> Kodi.exe!CApplication::RenderNoPresent() Line 2177 C++
Kodi.exe!CApplication::Render() Line 2290 C++
Kodi.exe!CXBApplicationEx::Run() Line 184 C++
Kodi.exe!WinMain(HINSTANCE__ * hInst, HINSTANCE__ * __formal, char * commandLine, int __formal) Line 243 C++
Kodi.exe!__tmainCRTStartup() Line 251 C
Checking Stage1, the crash is on line:
m_colorShader->Render(m_sourceRect, g_graphicsContext.StereoCorrection(m_destRect),
CMediaSettings::Get().GetCurrentVideoSettings().m_Contrast,
CMediaSettings::Get().GetCurrentVideoSettings().m_Brightness,
m_iFlags,
(YUVBuffer*)m_VideoBuffers[m_iYV12RenderBuffer]);
Specifically m_VideoBuffers = 0x000000b4, which appears to be because "this" is null, IE the CWinRenderer.
Checking up the stack, I suspect that it's the call through:
/* simple present method */
void CXBMCRenderManager:
resentSingle(bool clear, DWORD flags, DWORD alpha)
{
CSingleLock lock(g_graphicsContext);
m_pRenderer->RenderUpdate(clear, flags, alpha);
}
where the null comes in.
What did puzzle me was how it makes the call if m_pRenderer is null, I suspect that because RenderUpdate isn't a virtual function, so the virtual function table isn't needed (so a null object doesn't blow up, I guess it's a hardcoded branch into the right function.
I'll try and get the memory dump zipped and uploaded.
I suspect the PresentSingle having an if (IsConfigured()) might fix this crash, as that'll make sure the renderer is configured before trying to use it.
I'll keep digging as there were a few other crashes, but this one keeps coming up.
Thanks,
Chris