[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