Both headers are used everywhere, plus they both provide interop mechanism.
Since they define [consecutive] VDPAU driver funcs, we really want the definitions side by side. Otherwise we risk clashing multiple functions at the same address. Cc: Christian König <[email protected]> Signed-off-by: Emil Velikov <[email protected]> --- src/gallium/include/state_tracker/vdpau_dmabuf.h | 110 ---------------------- src/gallium/include/state_tracker/vdpau_interop.h | 75 ++++++++++++++- src/gallium/state_trackers/vdpau/vdpau_private.h | 1 - src/mesa/state_tracker/st_vdpau.c | 1 - 4 files changed, 72 insertions(+), 115 deletions(-) delete mode 100644 src/gallium/include/state_tracker/vdpau_dmabuf.h diff --git a/src/gallium/include/state_tracker/vdpau_dmabuf.h b/src/gallium/include/state_tracker/vdpau_dmabuf.h deleted file mode 100644 index 47c20b48ae6..00000000000 --- a/src/gallium/include/state_tracker/vdpau_dmabuf.h +++ /dev/null @@ -1,110 +0,0 @@ -/************************************************************************** - * - * Copyright 2016 Advanced Micro Devices, Inc. - * 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 THE COPYRIGHT HOLDER(S) OR AUTHOR(S) 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. - * - **************************************************************************/ - -/* - * Authors: - * Christian König <[email protected]> - * - */ - -#ifndef _VDPAU_DMABUF_H_ -#define _VDPAU_DMABUF_H_ - -#include <vdpau/vdpau.h> -#include "pipe/p_format.h" - -/* driver specific functions for NV_vdpau_interop */ -#ifndef VDP_FUNC_ID_BASE_DRIVER -#define VDP_FUNC_ID_BASE_DRIVER 0x2000 -#endif - -/* New DMA-buf based implementation */ -#define VDP_FUNC_ID_VIDEO_SURFACE_DMA_BUF (VDP_FUNC_ID_BASE_DRIVER + 2) -#define VDP_FUNC_ID_OUTPUT_SURFACE_DMA_BUF (VDP_FUNC_ID_BASE_DRIVER + 3) - -/* Define some more internal RGBA formats for more - * robust handling of Video Surfaces - */ -#define VDP_RGBA_FORMAT_R8 (-1) -#define VDP_RGBA_FORMAT_R8G8 (-2) - -static inline enum pipe_format -VdpCustomFormatRGBAToPipe(uint32_t vdpau_format) -{ - switch (vdpau_format) { - case VDP_RGBA_FORMAT_R8: - return PIPE_FORMAT_R8_UNORM; - case VDP_RGBA_FORMAT_R8G8: - return PIPE_FORMAT_R8G8_UNORM; - default: - assert(0); - } - - return PIPE_FORMAT_NONE; -} - -struct VdpSurfaceDMABufDesc { - /* DMA-buf file descriptor */ - uint32_t handle; - /* Width in pixel */ - uint32_t width; - /* Height in pixel */ - uint32_t height; - /* Offset in bytes */ - uint32_t offset; - /* Stride in bytes */ - uint32_t stride; - /* VDP_RGBA_FORMAT_* as defined above. */ - uint32_t format; -}; - -/** - * \brief Video surface planes - */ -typedef uint32_t VdpVideoSurfacePlane; - -/** \hideinitializer \brief Luma top field */ -#define VDP_VIDEO_SURFACE_PLANE_LUMA_TOP ((VdpVideoSurfacePlane)0) -/** \hideinitializer \brief Luma bottom field */ -#define VDP_VIDEO_SURFACE_PLANE_LUMA_BOTTOM ((VdpVideoSurfacePlane)1) -/** \hideinitializer \brief Chroma top field */ -#define VDP_VIDEO_SURFACE_PLANE_CHROMA_TOP ((VdpVideoSurfacePlane)2) -/** \hideinitializer \brief Chroma bottom field */ -#define VDP_VIDEO_SURFACE_PLANE_CHROMA_BOTTOM ((VdpVideoSurfacePlane)3) - -typedef VdpStatus VdpVideoSurfaceDMABuf( - VdpVideoSurface surface, - VdpVideoSurfacePlane plane, - struct VdpSurfaceDMABufDesc * result -); - -typedef VdpStatus VdpOutputSurfaceDMABuf( - VdpOutputSurface surface, - struct VdpSurfaceDMABufDesc * result -); - -#endif /* _VDPAU_DMABUF_H_ */ diff --git a/src/gallium/include/state_tracker/vdpau_interop.h b/src/gallium/include/state_tracker/vdpau_interop.h index 04d455a370a..2ff6783e109 100644 --- a/src/gallium/include/state_tracker/vdpau_interop.h +++ b/src/gallium/include/state_tracker/vdpau_interop.h @@ -1,6 +1,7 @@ /************************************************************************** * * Copyright 2013 Advanced Micro Devices, Inc. + * Copyright 2016 Advanced Micro Devices, Inc. * All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a @@ -34,7 +35,9 @@ #ifndef _VDPAU_INTEROP_H_ #define _VDPAU_INTEROP_H_ -/* driver specific functions for NV_vdpau_interop */ +#include <vdpau/vdpau.h> +#include "pipe/p_format.h" + #ifndef VDP_FUNC_ID_BASE_DRIVER #define VDP_FUNC_ID_BASE_DRIVER 0x2000 #endif @@ -48,7 +51,73 @@ struct pipe_resource; struct pipe_video_buffer; -typedef struct pipe_video_buffer *VdpVideoSurfaceGallium(uint32_t surface); -typedef struct pipe_resource *VdpOutputSurfaceGallium(uint32_t surface); +typedef struct pipe_video_buffer *VdpVideoSurfaceGallium(VdpVideoSurface surface); +typedef struct pipe_resource *VdpOutputSurfaceGallium(VdpOutputSurface surface); + + +/* New DMA-buf based implementation */ +#define VDP_FUNC_ID_VIDEO_SURFACE_DMA_BUF (VDP_FUNC_ID_BASE_DRIVER + 2) +#define VDP_FUNC_ID_OUTPUT_SURFACE_DMA_BUF (VDP_FUNC_ID_BASE_DRIVER + 3) + +/* Define some more internal RGBA formats for more + * robust handling of Video Surfaces + */ +#define VDP_RGBA_FORMAT_R8 (-1) +#define VDP_RGBA_FORMAT_R8G8 (-2) + +static inline enum pipe_format +VdpCustomFormatRGBAToPipe(uint32_t vdpau_format) +{ + switch (vdpau_format) { + case VDP_RGBA_FORMAT_R8: + return PIPE_FORMAT_R8_UNORM; + case VDP_RGBA_FORMAT_R8G8: + return PIPE_FORMAT_R8G8_UNORM; + default: + assert(0); + } + + return PIPE_FORMAT_NONE; +} + +struct VdpSurfaceDMABufDesc { + /* DMA-buf file descriptor */ + uint32_t handle; + /* Width in pixel */ + uint32_t width; + /* Height in pixel */ + uint32_t height; + /* Offset in bytes */ + uint32_t offset; + /* Stride in bytes */ + uint32_t stride; + /* VDP_RGBA_FORMAT_* as defined above. */ + uint32_t format; +}; + +/** + * \brief Video surface planes + */ +typedef uint32_t VdpVideoSurfacePlane; + +/** \hideinitializer \brief Luma top field */ +#define VDP_VIDEO_SURFACE_PLANE_LUMA_TOP ((VdpVideoSurfacePlane)0) +/** \hideinitializer \brief Luma bottom field */ +#define VDP_VIDEO_SURFACE_PLANE_LUMA_BOTTOM ((VdpVideoSurfacePlane)1) +/** \hideinitializer \brief Chroma top field */ +#define VDP_VIDEO_SURFACE_PLANE_CHROMA_TOP ((VdpVideoSurfacePlane)2) +/** \hideinitializer \brief Chroma bottom field */ +#define VDP_VIDEO_SURFACE_PLANE_CHROMA_BOTTOM ((VdpVideoSurfacePlane)3) + +typedef VdpStatus VdpVideoSurfaceDMABuf( + VdpVideoSurface surface, + VdpVideoSurfacePlane plane, + struct VdpSurfaceDMABufDesc * result +); + +typedef VdpStatus VdpOutputSurfaceDMABuf( + VdpOutputSurface surface, + struct VdpSurfaceDMABufDesc * result +); #endif /* _VDPAU_INTEROP_H_ */ diff --git a/src/gallium/state_trackers/vdpau/vdpau_private.h b/src/gallium/state_trackers/vdpau/vdpau_private.h index 1cf8c059ba9..c92a6f2d89d 100644 --- a/src/gallium/state_trackers/vdpau/vdpau_private.h +++ b/src/gallium/state_trackers/vdpau/vdpau_private.h @@ -37,7 +37,6 @@ #include "pipe/p_video_codec.h" #include "state_tracker/vdpau_interop.h" -#include "state_tracker/vdpau_dmabuf.h" #include "util/u_debug.h" #include "util/u_rect.h" diff --git a/src/mesa/state_tracker/st_vdpau.c b/src/mesa/state_tracker/st_vdpau.c index 57d02395fee..9e732f1583e 100644 --- a/src/mesa/state_tracker/st_vdpau.c +++ b/src/mesa/state_tracker/st_vdpau.c @@ -51,7 +51,6 @@ #ifdef HAVE_ST_VDPAU #include "state_tracker/vdpau_interop.h" -#include "state_tracker/vdpau_dmabuf.h" #include "state_tracker/drm_driver.h" static struct pipe_resource * -- 2.12.2 _______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
