mfxStatus QSV_Encoder_Internal::Open(qsv_param_t * pParams) { mfxStatus sts = MFX_ERR_NONE; if (m_bUseD3D11) // Use D3D11 surface sts = Initialize(m_impl, m_ver, &m_session, &m_mfxAllocator); else // Use system memory sts = Initialize(m_impl, m_ver, &m_session, NULL); MSDK_CHECK_RESULT(sts, MFX_ERR_NONE, sts); m_pmfxENC = new MFXVideoENCODE(m_session); InitParams(pParams); sts = m_pmfxENC->Query(&m_mfxEncParams, &m_mfxEncParams); MSDK_IGNORE_MFX_STS(sts, MFX_WRN_INCOMPATIBLE_VIDEO_PARAM); MSDK_CHECK_RESULT(sts, MFX_ERR_NONE, sts); sts = AllocateSurfaces(); MSDK_CHECK_RESULT(sts, MFX_ERR_NONE, sts); sts = m_pmfxENC->Init(&m_mfxEncParams); MSDK_CHECK_RESULT(sts, MFX_ERR_NONE, sts); sts = GetVideoParam(); MSDK_CHECK_RESULT(sts, MFX_ERR_NONE, sts); sts = InitBitstream(); MSDK_CHECK_RESULT(sts, MFX_ERR_NONE, sts); return sts; }
mfxStatus QSV_Encoder_Internal::Open(qsv_param_t * pParams) { mfxStatus sts = MFX_ERR_NONE; InitParams(pParams); sts = m_pmfxENC->Query(&m_mfxEncParams, &m_mfxEncParams); MSDK_IGNORE_MFX_STS(sts, MFX_WRN_INCOMPATIBLE_VIDEO_PARAM); MSDK_CHECK_RESULT(sts, MFX_ERR_NONE, sts); sts = AllocateSurfaces(); MSDK_CHECK_RESULT(sts, MFX_ERR_NONE, sts); sts = m_pmfxENC->Init(&m_mfxEncParams); MSDK_CHECK_RESULT(sts, MFX_ERR_NONE, sts); sts = GetVideoParam(); MSDK_CHECK_RESULT(sts, MFX_ERR_NONE, sts); sts = InitBitstream(); MSDK_CHECK_RESULT(sts, MFX_ERR_NONE, sts); return sts; }