[Mesa-dev] [PATCH 2/2] st/vdpau: fold vdpau_interop.h and vdpau_dmabuf.h
Christian König
deathsimple at vodafone.de
Fri Apr 21 12:31:55 UTC 2017
Am 21.04.2017 um 14:11 schrieb Emil Velikov:
> 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 <christian.koenig at amd.com>
> Signed-off-by: Emil Velikov <emil.l.velikov at gmail.com>
NAK, the seperation is intentional. vdpau_interop.h is the old one we
sooner or later want to remove.
And vdpau_dmabuf.h is the new one we want to keep.
Regards,
Christian.
> ---
> 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 <christian.koenig at amd.com>
> - *
> - */
> -
> -#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 *
More information about the mesa-dev
mailing list