for (i = 0; i < MAX_SUBSYSTEMS; i++)
{
H264_CONTEXT_SUBSYSTEM* subsystem = subSystems[i];
- if (!subsystem->Init)
+ if (!subsystem || !subsystem->Init)
break;
if (subsystem->Init(h264))
"MFCreateMediaType");
sys->MFCreateDXGIDeviceManager = (pfnMFCreateDXGIDeviceManager) GetProcAddress(
sys->mfplat, "MFCreateDXGIDeviceManager");
-
+ /**
+ * Note: MFCreateDXGIDeviceManager is supported starting from Windows 8.
+ * Don't fail below if GetProcAddress returned NULL.
+ */
if (!sys->MFStartup || !sys->MFShutdown || !sys->MFCreateSample
- || !sys->MFCreateMemoryBuffer ||
- !sys->MFCreateMediaType || !sys->MFCreateDXGIDeviceManager)
+ || !sys->MFCreateMemoryBuffer || !sys->MFCreateMediaType)
goto error;
CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);