blob: 1e9d90c5fadbefc0d3d9d5b438221a5bfc5dc4af [file] [log] [blame]
/*
* va_drm_utils.h - VA/DRM Utilities
*
* Copyright (c) 2012 Intel Corporation. All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sub license, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice (including the
* next paragraph) shall be included in all copies or substantial portions
* of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
* IN NO EVENT SHALL INTEL AND/OR ITS SUPPLIERS BE LIABLE FOR
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#ifndef VA_DRM_UTILS_H
#define VA_DRM_UTILS_H
#include <va/va_backend.h>
/**
* \file va_drm_utils.h
* \brief VA/DRM Utilities
*
* This file contains VA/DRM utility functions. The API herein defined is
* internal to libva. Users include the VA/DRM API itself or VA/Android,
* should it be based on DRM.
*/
#ifdef __cplusplus
extern "C" {
#endif
DLL_HIDDEN
VAStatus
VA_DRM_GetNumCandidates(VADriverContextP ctx, int * num_candidates);
/**
* \brief Returns the VA driver name for the active display.
*
* This functions returns a newly allocated buffer in @driver_name_ptr that
* contains the VA driver name for the active display. Active display means
* the display obtained with any of the vaGetDisplay*() functions.
*
* The VADriverContext.drm_state structure must be valid, i.e. allocated
* and containing an open DRM connection descriptor. The DRM connection
* does *not* need to be authenticated as it only performs a call to
* drmGetVersion().
*
* @param[in] ctx the pointer to a VADriverContext
* @param[out] driver_name_ptr the newly allocated buffer containing
* the VA driver name
* @return VA_STATUS_SUCCESS if operation is successful, or another
* #VAStatus value otherwise.
*/
DLL_HIDDEN
VAStatus
VA_DRM_GetDriverName(VADriverContextP ctx, char **driver_name_ptr, int candidate_index);
/**
* \brief Checks whether the file descriptor is a DRM Render-Nodes one
*
* This functions checks whether the supplied file descriptor @fd
* falls into the set of DRM Render-Nodes.
*/
DLL_HIDDEN
int
VA_DRM_IsRenderNodeFd(int fd);
/**@}*/
#ifdef __cplusplus
}
#endif
#endif /* VA_DRM_UTILS_H */