[Libva] [PATCH 4/5] API: backend: add VA display types.

Xiang, Haihao haihao.xiang at intel.com
Wed Jul 4 20:01:47 PDT 2012


On Mon, 2012-07-02 at 18:25 +0200, Gwenole Beauchesne wrote: 
> Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne at intel.com>
> ---
>  va/android/va_android.cpp |    1 +
>  va/glx/va_glx.c           |    1 +
>  va/va_backend.h           |   18 +++++++++++++++++-
>  va/x11/va_x11.c           |    1 +
>  4 files changed, 20 insertions(+), 1 deletion(-)
> 
> diff --git a/va/android/va_android.cpp b/va/android/va_android.cpp
> index 24329fe..12d5f1c 100644
> --- a/va/android/va_android.cpp
> +++ b/va/android/va_android.cpp
> @@ -223,6 +223,7 @@ VADisplay vaGetDisplay (
>              pDisplayContext->vadpy_magic = VA_DISPLAY_MAGIC;          
>  
>              pDriverContext->native_dpy       = (void *)native_dpy;
> +            pDriverContext->display_type     = VA_DISPLAY_ANDROID;
>              pDisplayContext->pDriverContext  = pDriverContext;
>              pDisplayContext->vaIsValid       = va_DisplayContextIsValid;
>              pDisplayContext->vaDestroy       = va_DisplayContextDestroy;
> diff --git a/va/glx/va_glx.c b/va/glx/va_glx.c
> index 1812ef5..e03847e 100644
> --- a/va/glx/va_glx.c
> +++ b/va/glx/va_glx.c
> @@ -98,6 +98,7 @@ VADisplay vaGetDisplayGLX(Display *native_dpy)
>      if (!pDriverContextGLX)
>          goto error;
>  
> +    pDriverContext->display_type  = VA_DISPLAY_GLX;
>      pDisplayContextGLX->vaDestroy = pDisplayContext->vaDestroy;
>      pDisplayContext->vaDestroy    = va_DisplayContextDestroy;
>      pDisplayContext->opaque       = pDisplayContextGLX;
> diff --git a/va/va_backend.h b/va/va_backend.h
> index 522f606..472967a 100644
> --- a/va/va_backend.h
> +++ b/va/va_backend.h
> @@ -38,6 +38,19 @@
>  typedef struct VADriverContext *VADriverContextP;
>  typedef struct VADisplayContext *VADisplayContextP;
>  
> +/** \brief VA display types. */
> +enum {
> +    /** \brief Mask to major identifier for VA display type */
> +    VA_DISPLAY_MAJOR_MASK = 0xf0,
> +
> +    /** \brief VA/X11 API is used, through vaGetDisplay() entry-point */
> +    VA_DISPLAY_X11      = 0x10,
> +    /** \brief VA/GLX API is used, through vaGetDisplayGLX() entry-point */
> +    VA_DISPLAY_GLX      = (VA_DISPLAY_X11 | (1 << 0)),
> +    /** \brief VA/Android API is used, through vaGetDisplay() entry-point */
> +    VA_DISPLAY_ANDROID  = 0x20,
> +};
> +
>  struct VADriverVTable
>  {
>  	VAStatus (*vaTerminate) ( VADriverContextP ctx );
> @@ -461,7 +474,10 @@ struct VADriverContext
>       */
>      struct VADriverVTableVPP *vtable_vpp;
>  
> -    unsigned long reserved[44];         /* reserve for future add-ins, decrease the subscript accordingly */
> +    /** \brief VA display type. */
> +    unsigned int        display_type;

use 'unsigned long' to avoid compatible issue on 64 bits OS.

> +
> +    unsigned long reserved[43];         /* reserve for future add-ins, decrease the subscript accordingly */
>  };
>  
>  #define VA_DISPLAY_MAGIC 0x56414430 /* VAD0 */
> diff --git a/va/x11/va_x11.c b/va/x11/va_x11.c
> index f81e30a..2aa579b 100644
> --- a/va/x11/va_x11.c
> +++ b/va/x11/va_x11.c
> @@ -185,6 +185,7 @@ VADisplay vaGetDisplay (
>  	  pDisplayContext->vadpy_magic = VA_DISPLAY_MAGIC;          
>  
>  	  pDriverContext->native_dpy       = (void *)native_dpy;
> +          pDriverContext->display_type     = VA_DISPLAY_X11;
>  	  pDisplayContext->pDriverContext  = pDriverContext;
>  	  pDisplayContext->vaIsValid       = va_DisplayContextIsValid;
>  	  pDisplayContext->vaDestroy       = va_DisplayContextDestroy;




More information about the Libva mailing list