bool VaapiEncoderBase::initVA() { FUNC_ENTER(); if (!m_externalDisplay) m_xDisplay = XOpenDisplay(NULL); if (!m_xDisplay) { ERROR("no x display."); return false; } int majorVersion, minorVersion; VAStatus vaStatus; m_display = vaGetDisplay(m_xDisplay); if (m_display == NULL) { ERROR("vaGetDisplay failed."); goto error; } vaStatus= vaInitialize(m_display, &majorVersion, &minorVersion); DEBUG("vaInitialize \n"); if (!checkVaapiStatus(vaStatus, "vaInitialize")) goto error; DEBUG("profile = %d", m_videoParamCommon.profile); vaStatus = vaCreateConfig(m_display, m_videoParamCommon.profile, m_entrypoint, NULL, 0, &m_config); if (!checkVaapiStatus(vaStatus, "vaCreateConfig ")) goto error; vaStatus = vaCreateContext(m_display, m_config, m_videoParamCommon.resolution.width, m_videoParamCommon.resolution.height, VA_PROGRESSIVE, 0, 0, &m_context); if (!checkVaapiStatus(vaStatus, "vaCreateContext ")) goto error; return true; error: cleanupVA(); return false; }
Encode_Status VaapiEncoderBase::stop(void) { FUNC_ENTER(); cleanupVA(); return ENCODE_SUCCESS; }
VaapiEncoderBase::~VaapiEncoderBase() { cleanupVA(); INFO("~VaapiEncoderBase"); }