I'm trying to play a video for a DirectX texture via Media Foundation by searching I did not find much about it except for this example of #
The problem is in the following code, still starting the Media Engine , sets the attributes of it, starts the factory , but when it finally starts MediaEngine , return HRESULT , is 0xc00d3e85 , which has no documentation on the MSDN , relative to the function), and the MediaEngine pointer is zeroed:
//Globais:IMFDXGIDeviceManager* m_spDXGIManager = 0,IMFMediaEngine* m_spMediaEngine = 0 //Parametros:HWND hwnd, DXGI_FORMAT formato = DXGI_FORMAT_B8G8R8A8_UNORM MediaEngineNotify* spNotify = 0; IMFMediaEngineClassFactory* spFactory = 0; IMFAttributes* spAttributes = 0; spNotify = new MediaEngineNotify(hwnd); if (spNotify == nullptr) goto FIM_INIT; spNotify->MediaEngineNotifyCallback(this); h = CoCreateInstance(CLSID_MFMediaEngineClassFactory, nullptr, CLSCTX_INPROC_SERVER,IID_PPV_ARGS(&spFactory)); if (FAILED(h)) goto FIM; h = MFCreateAttributes(&spAttributes, 1); if (FAILED(h)) goto FIM; h = spAttributes->SetUnknown(MF_MEDIA_ENGINE_DXGI_MANAGER, (IUnknown*)m_spDXGIManager); if (FAILED(h)) goto FIM; h = spAttributes->SetUnknown(MF_MEDIA_ENGINE_CALLBACK, (IUnknown*)spNotify); if (FAILED(h)) goto FIM; h = spAttributes->SetUINT32(MF_MEDIA_ENGINE_VIDEO_OUTPUT_FORMAT, formato); if (FAILED(h)) goto FIM;
Walk this is the error ...
h = spFactory->CreateInstance(MF_MEDIA_ENGINE_WAITFORSTABLE_STATE, spAttributes, &m_spMediaEngine); if (FAILED(h)) goto FIM;
What am I doing wrong? how does the code in the example wheel work in the same way, just because it uses CLI (does not it make sense)?