va.h | va.h | |||
---|---|---|---|---|
skipping to change at line 59 | skipping to change at line 59 | |||
* rev 0.27 (11/19/2007 Matt Sottek) - Added DeriveImage | * rev 0.27 (11/19/2007 Matt Sottek) - Added DeriveImage | |||
* rev 0.28 (12/06/2007 Jonathan Bian) - Added new versions of PutImage and AssociateSubpicture | * rev 0.28 (12/06/2007 Jonathan Bian) - Added new versions of PutImage and AssociateSubpicture | |||
* to enable scaling | * to enable scaling | |||
* rev 0.29 (02/07/2008 Jonathan Bian) - VC1 parameter fixes, | * rev 0.29 (02/07/2008 Jonathan Bian) - VC1 parameter fixes, | |||
* added VA_STATUS_ERROR_RESOLUTION_N OT_SUPPORTED | * added VA_STATUS_ERROR_RESOLUTION_N OT_SUPPORTED | |||
* rev 0.30 (03/01/2009 Jonathan Bian) - Added encoding support for H.264 B P and MPEG-4 SP and fixes | * rev 0.30 (03/01/2009 Jonathan Bian) - Added encoding support for H.264 B P and MPEG-4 SP and fixes | |||
* for ISO C conformance. | * for ISO C conformance. | |||
* rev 0.31 (09/02/2009 Gwenole Beauchesne) - VC-1/H264 fields change for V DPAU and XvBA backend | * rev 0.31 (09/02/2009 Gwenole Beauchesne) - VC-1/H264 fields change for V DPAU and XvBA backend | |||
* Application needs to relink with t he new library. | * Application needs to relink with t he new library. | |||
* | * | |||
* rev 0.31.1 (03/29/2009) - Data structure for JPEG encode | * rev 0.31.1 (03/29/2009) - Data structure for JPEG encode | |||
* rev 0.31.2 (01/13/2011 Anthony Pabon)- Added a flag to indicate Subpictu | ||||
re coordinates are screen | ||||
* screen relative rather than sourc | ||||
e video relative. | ||||
* rev 0.32.0 (01/13/2011 Xiang Haihao) - Add profile into VAPictureParamet | ||||
erBufferVC1 | ||||
* update VAAPI to 0.32.0 | ||||
* | * | |||
* Acknowledgements: | * Acknowledgements: | |||
* Some concepts borrowed from XvMC and XvImage. | * Some concepts borrowed from XvMC and XvImage. | |||
* Waldo Bastian (Intel), Matt Sottek (Intel), Austin Yuan (Intel), and G wenole Beauchesne (SDS) | * Waldo Bastian (Intel), Matt Sottek (Intel), Austin Yuan (Intel), and G wenole Beauchesne (SDS) | |||
* contributed to various aspects of the API. | * contributed to various aspects of the API. | |||
*/ | */ | |||
#ifndef _VA_H_ | #ifndef _VA_H_ | |||
#define _VA_H_ | #define _VA_H_ | |||
skipping to change at line 866 | skipping to change at line 870 | |||
unsigned int pulldown : 1; /* SEQUENCE_LAYER::PULLDOWN */ | unsigned int pulldown : 1; /* SEQUENCE_LAYER::PULLDOWN */ | |||
unsigned int interlace : 1; /* SEQUENCE_LAYER::INTERLACE */ | unsigned int interlace : 1; /* SEQUENCE_LAYER::INTERLACE */ | |||
unsigned int tfcntrflag : 1; /* SEQUENCE_LAYER::TFCNTRFLAG * / | unsigned int tfcntrflag : 1; /* SEQUENCE_LAYER::TFCNTRFLAG * / | |||
unsigned int finterpflag : 1; /* SEQUENCE_LAYER::FINTERPFLAG */ | unsigned int finterpflag : 1; /* SEQUENCE_LAYER::FINTERPFLAG */ | |||
unsigned int psf : 1; /* SEQUENCE_LAYER::PSF */ | unsigned int psf : 1; /* SEQUENCE_LAYER::PSF */ | |||
unsigned int multires : 1; /* METADATA::MULTIRES */ | unsigned int multires : 1; /* METADATA::MULTIRES */ | |||
unsigned int overlap : 1; /* METADATA::OVERLAP */ | unsigned int overlap : 1; /* METADATA::OVERLAP */ | |||
unsigned int syncmarker : 1; /* METADATA::SYNCMARKER */ | unsigned int syncmarker : 1; /* METADATA::SYNCMARKER */ | |||
unsigned int rangered : 1; /* METADATA::RANGERED */ | unsigned int rangered : 1; /* METADATA::RANGERED */ | |||
unsigned int max_b_frames : 3; /* METADATA::MAXBFRAMES */ | unsigned int max_b_frames : 3; /* METADATA::MAXBFRAMES */ | |||
unsigned int profile : 2; /* SEQUENCE_LAYER::PROFILE or T he MSB of METADATA::PROFILE */ | ||||
} bits; | } bits; | |||
unsigned int value; | unsigned int value; | |||
} sequence_fields; | } sequence_fields; | |||
unsigned short coded_width; /* ENTRY_POINT_LAYER::CODED_ WIDTH */ | unsigned short coded_width; /* ENTRY_POINT_LAYER::CODED_ WIDTH */ | |||
unsigned short coded_height; /* ENTRY_POINT_LAYER::CODED_HEIGHT * / | unsigned short coded_height; /* ENTRY_POINT_LAYER::CODED_HEIGHT * / | |||
union { | union { | |||
struct { | struct { | |||
unsigned int broken_link : 1; /* ENTRY_POINT_LAYER::BROKEN_LI NK */ | unsigned int broken_link : 1; /* ENTRY_POINT_LAYER::BROKEN_LI NK */ | |||
unsigned int closed_entry : 1; /* ENTRY_POINT_LAYER::CLOSED_EN TRY */ | unsigned int closed_entry : 1; /* ENTRY_POINT_LAYER::CLOSED_EN TRY */ | |||
skipping to change at line 1683 | skipping to change at line 1688 | |||
*/ | */ | |||
typedef VAGenericID VASubpictureID; | typedef VAGenericID VASubpictureID; | |||
/* Get maximum number of subpicture formats supported by the implementation */ | /* Get maximum number of subpicture formats supported by the implementation */ | |||
int vaMaxNumSubpictureFormats ( | int vaMaxNumSubpictureFormats ( | |||
VADisplay dpy | VADisplay dpy | |||
); | ); | |||
/* flags for subpictures */ | /* flags for subpictures */ | |||
#define VA_SUBPICTURE_CHROMA_KEYING 0x0001 | #define VA_SUBPICTURE_CHROMA_KEYING 0x0001 | |||
#define VA_SUBPICTURE_GLOBAL_ALPHA 0x0002 | #define VA_SUBPICTURE_GLOBAL_ALPHA 0x0002 | |||
#define VA_SUBPICTURE_DESTINATION_IS_SCREEN_COORD 0x0004 | ||||
/* | /* | |||
* Query supported subpicture formats | * Query supported subpicture formats | |||
* The caller must provide a "format_list" array that can hold at | * The caller must provide a "format_list" array that can hold at | |||
* least vaMaxNumSubpictureFormats() entries. The flags arrary holds the fl ag | * least vaMaxNumSubpictureFormats() entries. The flags arrary holds the fl ag | |||
* for each format to indicate additional capabilities for that format. The actual | * for each format to indicate additional capabilities for that format. The actual | |||
* number of formats returned in "format_list" is returned in "num_formats" . | * number of formats returned in "format_list" is returned in "num_formats" . | |||
* flags: returned value to indicate addtional capabilities | * flags: returned value to indicate addtional capabilities | |||
* VA_SUBPICTURE_CHROMA_KEYING - supports chroma-keying | * VA_SUBPICTURE_CHROMA_KEYING - supports chroma-keying | |||
* VA_SUBPICTURE_GLOBAL_ALPHA - supports global alpha | * VA_SUBPICTURE_GLOBAL_ALPHA - supports global alpha | |||
* VA_SUBPICTURE_DESTINATION_IS_SCREEN_COORD - supports unscaled scr een relative subpictures for On Screen Display | ||||
*/ | */ | |||
VAStatus vaQuerySubpictureFormats ( | VAStatus vaQuerySubpictureFormats ( | |||
VADisplay dpy, | VADisplay dpy, | |||
VAImageFormat *format_list, /* out */ | VAImageFormat *format_list, /* out */ | |||
unsigned int *flags, /* out */ | unsigned int *flags, /* out */ | |||
unsigned int *num_formats /* out */ | unsigned int *num_formats /* out */ | |||
); | ); | |||
/* | /* | |||
* Subpictures are created with an image associated. | * Subpictures are created with an image associated. | |||
*/ | */ | |||
skipping to change at line 1778 | skipping to change at line 1786 | |||
int num_surfaces, | int num_surfaces, | |||
short src_x, /* upper left offset in subpicture */ | short src_x, /* upper left offset in subpicture */ | |||
short src_y, | short src_y, | |||
unsigned short src_width, | unsigned short src_width, | |||
unsigned short src_height, | unsigned short src_height, | |||
short dest_x, /* upper left offset in surface */ | short dest_x, /* upper left offset in surface */ | |||
short dest_y, | short dest_y, | |||
unsigned short dest_width, | unsigned short dest_width, | |||
unsigned short dest_height, | unsigned short dest_height, | |||
/* | /* | |||
* whether to enable chroma-keying or global-alpha | * whether to enable chroma-keying, global-alpha, or screen relative mo de | |||
* see VA_SUBPICTURE_XXX values | * see VA_SUBPICTURE_XXX values | |||
*/ | */ | |||
unsigned int flags | unsigned int flags | |||
); | ); | |||
/* | /* | |||
* vaDeassociateSubpicture removes the association of the subpicture with t arget_surfaces. | * vaDeassociateSubpicture removes the association of the subpicture with t arget_surfaces. | |||
*/ | */ | |||
VAStatus vaDeassociateSubpicture ( | VAStatus vaDeassociateSubpicture ( | |||
VADisplay dpy, | VADisplay dpy, | |||
End of changes. 6 change blocks. | ||||
4 lines changed or deleted | 15 lines changed or added | |||
va_backend.h | va_backend.h | |||
---|---|---|---|---|
skipping to change at line 184 | skipping to change at line 184 | |||
VAStatus (*vaQuerySurfaceStatus) ( | VAStatus (*vaQuerySurfaceStatus) ( | |||
VADriverContextP ctx, | VADriverContextP ctx, | |||
VASurfaceID render_target, | VASurfaceID render_target, | |||
VASurfaceStatus *status /* out */ | VASurfaceStatus *status /* out */ | |||
); | ); | |||
VAStatus (*vaQuerySurfaceError) ( | VAStatus (*vaQuerySurfaceError) ( | |||
VADriverContextP ctx, | VADriverContextP ctx, | |||
VASurfaceID render_target, | VASurfaceID render_target, | |||
VAStatus error_status, | VAStatus error_status, | |||
void **error_info /*out*/ | void **error_info /*out*/ | |||
); | ); | |||
VAStatus (*vaPutSurface) ( | VAStatus (*vaPutSurface) ( | |||
VADriverContextP ctx, | VADriverContextP ctx, | |||
VASurfaceID surface, | VASurfaceID surface, | |||
void* draw, /* Drawable of window system */ | void* draw, /* Drawable of window system */ | |||
short srcx, | short srcx, | |||
short srcy, | short srcy, | |||
unsigned short srcw, | unsigned short srcw, | |||
unsigned short srch, | unsigned short srch, | |||
skipping to change at line 381 | skipping to change at line 381 | |||
*/ | */ | |||
void **buffer /* if it is not NULL, map the surface buffer for | void **buffer /* if it is not NULL, map the surface buffer for | |||
* CPU access | * CPU access | |||
*/ | */ | |||
); | ); | |||
VAStatus (*vaUnlockSurface) ( | VAStatus (*vaUnlockSurface) ( | |||
VADriverContextP ctx, | VADriverContextP ctx, | |||
VASurfaceID surface | VASurfaceID surface | |||
); | ); | |||
/* Optional: GLX support hooks */ | ||||
struct VADriverVTableGLX *glx; | ||||
}; | }; | |||
struct VADriverContext | struct VADriverContext | |||
{ | { | |||
void *pDriverData; | void *pDriverData; | |||
struct VADriverVTable vtable; | ||||
void *vtable_tpi; /* the structure is malloc-ed */ | /** | |||
* The core VA implementation hooks. | ||||
* | ||||
* This structure is allocated from libva with calloc(). | ||||
*/ | ||||
struct VADriverVTable *vtable; | ||||
/** | ||||
* The VA/GLX implementation hooks. | ||||
* | ||||
* This structure is intended for drivers that implement the | ||||
* VA/GLX API. The driver implementation is responsible for the | ||||
* allocation and deallocation of this structure. | ||||
*/ | ||||
struct VADriverVTableGLX *vtable_glx; | ||||
/** | ||||
* The VA/EGL implementation hooks. | ||||
* | ||||
* This structure is intended for drivers that implement the | ||||
* VA/EGL API. The driver implementation is responsible for the | ||||
* allocation and deallocation of this structure. | ||||
*/ | ||||
struct VADriverVTableEGL *vtable_egl; | ||||
/** | ||||
* The third-party/private implementation hooks. | ||||
* | ||||
* This structure is intended for drivers that implement the | ||||
* private API. The driver implementation is responsible for the | ||||
* allocation and deallocation of this structure. | ||||
*/ | ||||
void *vtable_tpi; | ||||
void *native_dpy; | void *native_dpy; | |||
int x11_screen; | int x11_screen; | |||
int version_major; | int version_major; | |||
int version_minor; | int version_minor; | |||
int max_profiles; | int max_profiles; | |||
int max_entrypoints; | int max_entrypoints; | |||
int max_attributes; | int max_attributes; | |||
int max_image_formats; | int max_image_formats; | |||
int max_subpic_formats; | int max_subpic_formats; | |||
int max_display_attributes; | int max_display_attributes; | |||
const char *str_vendor; | const char *str_vendor; | |||
void *handle; /* dlopen handle */ | void *handle; /* dlopen handle */ | |||
void *dri_state; | void *dri_state; | |||
void *glx; /* opaque for GLX code */ | void *glx; /* opaque for GLX code */ | |||
unsigned long reserved[45]; /* reserve for future add-ins, decr | ||||
ease the subscript accordingly */ | ||||
}; | }; | |||
#define VA_DISPLAY_MAGIC 0x56414430 /* VAD0 */ | #define VA_DISPLAY_MAGIC 0x56414430 /* VAD0 */ | |||
struct VADisplayContext | struct VADisplayContext | |||
{ | { | |||
int vadpy_magic; | int vadpy_magic; | |||
VADisplayContextP pNext; | VADisplayContextP pNext; | |||
VADriverContextP pDriverContext; | VADriverContextP pDriverContext; | |||
End of changes. 4 change blocks. | ||||
7 lines changed or deleted | 39 lines changed or added | |||
va_version.h | va_version.h | |||
---|---|---|---|---|
skipping to change at line 40 | skipping to change at line 40 | |||
* | * | |||
* The major version of the VA library (1, if %VA_VERSION is 1.2.3) | * The major version of the VA library (1, if %VA_VERSION is 1.2.3) | |||
*/ | */ | |||
#define VA_MAJOR_VERSION (0) | #define VA_MAJOR_VERSION (0) | |||
/** | /** | |||
* VA_MINOR_VERSION: | * VA_MINOR_VERSION: | |||
* | * | |||
* The minor version of the VA library (2, if %VA_VERSION is 1.2.3) | * The minor version of the VA library (2, if %VA_VERSION is 1.2.3) | |||
*/ | */ | |||
#define VA_MINOR_VERSION (31) | #define VA_MINOR_VERSION (32) | |||
/** | /** | |||
* VA_MICRO_VERSION: | * VA_MICRO_VERSION: | |||
* | * | |||
* The micro version of the VA library (3, if %VA_VERSION is 1.2.3) | * The micro version of the VA library (3, if %VA_VERSION is 1.2.3) | |||
*/ | */ | |||
#define VA_MICRO_VERSION (1) | #define VA_MICRO_VERSION (0) | |||
/** | /** | |||
* VA_VERSION: | * VA_VERSION: | |||
* | * | |||
* The full version of the VA library, like 1.2.3 | * The full version of the VA library, like 1.2.3 | |||
*/ | */ | |||
#define VA_VERSION 0.31.1 | #define VA_VERSION 0.32.0 | |||
/** | /** | |||
* VA_VERSION_S: | * VA_VERSION_S: | |||
* | * | |||
* The full version of the VA library, in string form (suited for | * The full version of the VA library, in string form (suited for | |||
* string concatenation) | * string concatenation) | |||
*/ | */ | |||
#define VA_VERSION_S "0.31.1" | #define VA_VERSION_S "0.32.0" | |||
/** | /** | |||
* VA_VERSION_HEX: | * VA_VERSION_HEX: | |||
* | * | |||
* Numerically encoded version of the VA library, like 0x010203 | * Numerically encoded version of the VA library, like 0x010203 | |||
*/ | */ | |||
#define VA_VERSION_HEX ((VA_MAJOR_VERSION << 24) | \ | #define VA_VERSION_HEX ((VA_MAJOR_VERSION << 24) | \ | |||
(VA_MINOR_VERSION << 16) | \ | (VA_MINOR_VERSION << 16) | \ | |||
(VA_MICRO_VERSION << 8)) | (VA_MICRO_VERSION << 8)) | |||
End of changes. 4 change blocks. | ||||
4 lines changed or deleted | 4 lines changed or added | |||