Example #1
0
void VAAPIContext::ClearGLXSurfaces(void)
{
    if (!m_display || (m_dispType != kVADisplayGLX))
        return;

    MythXLocker locker(m_display->m_x_disp);
    INIT_ST;
    foreach (void* surface, m_glxSurfaces)
    {
        va_status = vaDestroySurfaceGLX(m_ctx.display, surface);
        CHECK_ST;
    }
Example #2
0
static void destroy_texture(struct gl_hwdec *hw)
{
    struct priv *p = hw->priv;
    VAStatus status;

    if (p->vaglx_surface) {
        status = vaDestroySurfaceGLX(p->display, p->vaglx_surface);
        check_va_status(status, "vaDestroySurfaceGLX()");
        p->vaglx_surface = NULL;
    }

    glDeleteTextures(1, &p->gl_texture);
    p->gl_texture = 0;
}
Example #3
0
static void destroy_texture(struct gl_hwdec *hw)
{
    struct priv *p = hw->priv;
    VAStatus status;

    if (p->vaglx_surface) {
        va_lock(p->ctx);
        status = vaDestroySurfaceGLX(p->display, p->vaglx_surface);
        va_unlock(p->ctx);
        CHECK_VA_STATUS(p, "vaDestroySurfaceGLX()");
        p->vaglx_surface = NULL;
    }

    glDeleteTextures(1, &p->gl_texture);
    p->gl_texture = 0;
}
Example #4
0
VaapiSurfaceGLXImpl::~VaapiSurfaceGLXImpl()
{
    // GNASH_REPORT_FUNCTION;

    log_debug(_("VaapiSurface::~VaapiSurface(): surface %p\n", surface()));

    if (!surface()) {
        return;
    }

    VaapiGlobalContext * gvactx = VaapiGlobalContext::get();
    if (!gvactx) {
        return;
    }

    VAStatus status;
    status = vaDestroySurfaceGLX(gvactx->display(), surface());
    if (!vaapi_check_status(status, "vaDestroySurfaceGLX()")) {
        return;
    }

    reset(0);
}
Example #5
0
VaApiMixer::~VaApiMixer() {
	if (m_glSurface)
		vaDestroySurfaceGLX(VaApi::glx(), m_glSurface);
}