mfxStatus CRendererPipeline::CreateHWDevice() { mfxStatus sts = MFX_ERR_NONE; #if D3D_SURFACES_SUPPORT POINT point = {0, 0}; HWND window = m_hParentWnd;// WindowFromPoint(point); #if MFX_D3D11_SUPPORT if (D3D11_MEMORY == m_memType) m_hwdev = new CD3D11Device(); else #endif // #if MFX_D3D11_SUPPORT m_hwdev = new CD3D9Device(); if (NULL == m_hwdev) return MFX_ERR_MEMORY_ALLOC; sts = m_hwdev->Init( window, 1, MSDKAdapter::GetNumber(m_mfxSession)/* MSDKAdapter::GetNumber(GetFirstSession())*/); MSDK_CHECK_RESULT(sts, MFX_ERR_NONE, sts); #elif LIBVA_SUPPORT m_hwdev = CreateVAAPIDevice(); if (NULL == m_hwdev) { return MFX_ERR_MEMORY_ALLOC; } sts = m_hwdev->Init(NULL, 0, MSDKAdapter::GetNumber(GetFirstSession())); MSDK_CHECK_RESULT(sts, MFX_ERR_NONE, sts); #endif return MFX_ERR_NONE; }
void cReactorPlugin::RegisterSessionReactors(void) { cReactorSession* session; session = GetFirstSession(); while (session) { session->RegisterReactorInstance( GetNuclearReactor() ); session = GetNextSession( session ); } }
int cReactorPlugin::NuclearRelease(fd_set *rfds, fd_set *wfds, fd_set *efds) { cReactorSession* session; session = GetFirstSession(); while (session) { session->Release(rfds, wfds, efds); session = GetNextSession( session ); } return 0; }
int cReactorPlugin::NuclearFission(fd_set *rfds, fd_set *wfds, fd_set *efds) { cReactorSession* session; int rd = 0; session = GetFirstSession(); while (session) { rd = MAX_FD(session->GetSocket(), rd); session->Fission(rfds, wfds, efds); session = GetNextSession( session ); } return rd; }