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; }
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; }
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; }
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); }
VaApiMixer::~VaApiMixer() { if (m_glSurface) vaDestroySurfaceGLX(VaApi::glx(), m_glSurface); }