va.h | va.h | |||
---|---|---|---|---|
skipping to change at line 1315 | skipping to change at line 1315 | |||
* device independent data structure for codedbuffer | * device independent data structure for codedbuffer | |||
*/ | */ | |||
/* | /* | |||
* FICTURE_AVE_QP(bit7-0): The average Qp value used during this frame | * FICTURE_AVE_QP(bit7-0): The average Qp value used during this frame | |||
* LARGE_SLICE(bit8):At least one slice in the current frame was large | * LARGE_SLICE(bit8):At least one slice in the current frame was large | |||
* enough for the encoder to attempt to limit its size. | * enough for the encoder to attempt to limit its size. | |||
* SLICE_OVERFLOW(bit9): At least one slice in the current frame has | * SLICE_OVERFLOW(bit9): At least one slice in the current frame has | |||
* exceeded the maximum slice size specified. | * exceeded the maximum slice size specified. | |||
* BITRATE_OVERFLOW(bit10): The peak bitrate was exceeded for this frame. | * BITRATE_OVERFLOW(bit10): The peak bitrate was exceeded for this frame. | |||
* BITRATE_HIGH(bit11): The frame size got within the safety margin of the maximum size (VCM only) | ||||
* AIR_MB_OVER_THRESHOLD: the number of MBs adapted to Intra MB | * AIR_MB_OVER_THRESHOLD: the number of MBs adapted to Intra MB | |||
*/ | */ | |||
#define VA_CODED_BUF_STATUS_PICTURE_AVE_QP_MASK 0xff | #define VA_CODED_BUF_STATUS_PICTURE_AVE_QP_MASK 0xff | |||
#define VA_CODED_BUF_STATUS_LARGE_SLICE_MASK 0x100 | #define VA_CODED_BUF_STATUS_LARGE_SLICE_MASK 0x100 | |||
#define VA_CODED_BUF_STATUS_SLICE_OVERFLOW_MASK 0x200 | #define VA_CODED_BUF_STATUS_SLICE_OVERFLOW_MASK 0x200 | |||
#define VA_CODED_BUF_STATUS_BITRATE_OVERFLOW 0x400 | #define VA_CODED_BUF_STATUS_BITRATE_OVERFLOW 0x400 | |||
#define VA_CODED_BUF_STATUS_BITRATE_HIGH 0x800 | ||||
#define VA_CODED_BUF_STATUS_AIR_MB_OVER_THRESHOLD 0xff0000 | #define VA_CODED_BUF_STATUS_AIR_MB_OVER_THRESHOLD 0xff0000 | |||
/* | /* | |||
* device independent data structure for codedbuffer | * device independent data structure for codedbuffer | |||
*/ | */ | |||
typedef struct _VACodedBufferSegment { | typedef struct _VACodedBufferSegment { | |||
unsigned int size;/* size of the data buffer in the coded buffer segmen t, in bytes */ | unsigned int size;/* size of the data buffer in the coded buffer segmen t, in bytes */ | |||
unsigned int bit_offset; /* bit offset into the data buffer where valid bitstream data begins */ | unsigned int bit_offset; /* bit offset into the data buffer where valid bitstream data begins */ | |||
unsigned int status; /* status set by the driver on the coded buffer*/ | unsigned int status; /* status set by the driver on the coded buffer*/ | |||
unsigned int reserved; /* for future use */ | unsigned int reserved; /* for future use */ | |||
skipping to change at line 1442 | skipping to change at line 1444 | |||
/* | /* | |||
* Find out any pending ops on the render target | * Find out any pending ops on the render target | |||
*/ | */ | |||
VAStatus vaQuerySurfaceStatus ( | VAStatus vaQuerySurfaceStatus ( | |||
VADisplay dpy, | VADisplay dpy, | |||
VASurfaceID render_target, | VASurfaceID render_target, | |||
VASurfaceStatus *status /* out */ | VASurfaceStatus *status /* out */ | |||
); | ); | |||
typedef enum | ||||
{ | ||||
VA_DECODE_SLICE_MISSING = 0, | ||||
VA_DECODE_MB_ERROR = 1, | ||||
} VA_DECODE_ERROR_TYPE; | ||||
/* | /* | |||
* Client calls vaQuerySurfaceError with VA_STATUS_ERROR_DECODING_ERROR, se rver side returns | * Client calls vaQuerySurfaceError with VA_STATUS_ERROR_DECODING_ERROR, se rver side returns | |||
* an array of structure VASurfaceDecodeMBErrors, and the array is terminat ed by setting status=-1 | * an array of structure VASurfaceDecodeMBErrors, and the array is terminat ed by setting status=-1 | |||
*/ | */ | |||
typedef struct _VASurfaceDecodeMBErrors | typedef struct _VASurfaceDecodeMBErrors | |||
{ | { | |||
int status; /* 1 if hardware has returned detailed info below, -1 means this record is invalid */ | int status; /* 1 if hardware has returned detailed info below, -1 means this record is invalid */ | |||
unsigned int start_mb; /* start mb address with errors */ | unsigned int start_mb; /* start mb address with errors */ | |||
unsigned int end_mb; /* end mb address with errors */ | unsigned int end_mb; /* end mb address with errors */ | |||
VA_DECODE_ERROR_TYPE decode_error_type; | ||||
} VASurfaceDecodeMBErrors; | } VASurfaceDecodeMBErrors; | |||
/* | /* | |||
* After the application gets VA_STATUS_ERROR_DECODING_ERROR after calling vaSyncSurface(), | * After the application gets VA_STATUS_ERROR_DECODING_ERROR after calling vaSyncSurface(), | |||
* it can call vaQuerySurfaceError to find out further details on the parti cular error. | * it can call vaQuerySurfaceError to find out further details on the parti cular error. | |||
* VA_STATUS_ERROR_DECODING_ERROR should be passed in as "error_status", | * VA_STATUS_ERROR_DECODING_ERROR should be passed in as "error_status", | |||
* upon the return, error_info will point to an array of _VASurfaceDecodeMB Errors structure, | * upon the return, error_info will point to an array of _VASurfaceDecodeMB Errors structure, | |||
* which is allocated and filled by libVA with detailed information on the missing or error macroblocks. | * which is allocated and filled by libVA with detailed information on the missing or error macroblocks. | |||
* The array is terminated if "status==-1" is detected. | * The array is terminated if "status==-1" is detected. | |||
*/ | */ | |||
skipping to change at line 1837 | skipping to change at line 1846 | |||
/* attribute value for VADisplayAttribRotation */ | /* attribute value for VADisplayAttribRotation */ | |||
#define VA_ROTATION_NONE 0x00000000 | #define VA_ROTATION_NONE 0x00000000 | |||
#define VA_ROTATION_90 0x00000001 | #define VA_ROTATION_90 0x00000001 | |||
#define VA_ROTATION_180 0x00000002 | #define VA_ROTATION_180 0x00000002 | |||
#define VA_ROTATION_270 0x00000004 | #define VA_ROTATION_270 0x00000004 | |||
/* attribute value for VADisplayAttribOutOfLoopDeblock */ | /* attribute value for VADisplayAttribOutOfLoopDeblock */ | |||
#define VA_OOL_DEBLOCKING_FALSE 0x00000000 | #define VA_OOL_DEBLOCKING_FALSE 0x00000000 | |||
#define VA_OOL_DEBLOCKING_TRUE 0x00000001 | #define VA_OOL_DEBLOCKING_TRUE 0x00000001 | |||
/* Render mode */ | ||||
#define VA_RENDER_MODE_UNDEFINED 0 | ||||
#define VA_RENDER_MODE_LOCAL_OVERLAY 1 | ||||
#define VA_RENDER_MODE_LOCAL_GPU 2 | ||||
#define VA_RENDER_MODE_EXTERNAL_OVERLAY 4 | ||||
#define VA_RENDER_MODE_EXTERNAL_GPU 8 | ||||
/* Render device */ | ||||
#define VA_RENDER_DEVICE_UNDEFINED 0 | ||||
#define VA_RENDER_DEVICE_LOCAL 1 | ||||
#define VA_RENDER_DEVICE_EXTERNAL 2 | ||||
/* Currently defined display attribute types */ | /* Currently defined display attribute types */ | |||
typedef enum | typedef enum | |||
{ | { | |||
VADisplayAttribBrightness = 0, | VADisplayAttribBrightness = 0, | |||
VADisplayAttribContrast = 1, | VADisplayAttribContrast = 1, | |||
VADisplayAttribHue = 2, | VADisplayAttribHue = 2, | |||
VADisplayAttribSaturation = 3, | VADisplayAttribSaturation = 3, | |||
/* client can specifiy a background color for the target window | /* client can specifiy a background color for the target window | |||
* the new feature of video conference, | * the new feature of video conference, | |||
* the uncovered area of the surface is filled by this color | * the uncovered area of the surface is filled by this color | |||
* also it will blend with the decoded video color*/ | * also it will blend with the decoded video color | |||
*/ | ||||
VADisplayAttribBackgroundColor = 4, | VADisplayAttribBackgroundColor = 4, | |||
/* | /* | |||
* this is a gettable only attribute. For some implementations that use the | * this is a gettable only attribute. For some implementations that use the | |||
* hardware overlay, after PutSurface is called, the surface can not be | * hardware overlay, after PutSurface is called, the surface can not be | |||
* re-used until after the subsequent PutSurface call. If this is the c ase | * re-used until after the subsequent PutSurface call. If this is the c ase | |||
* then the value for this attribute will be set to 1 so that the clien t | * then the value for this attribute will be set to 1 so that the clien t | |||
* will not attempt to re-use the surface right after returning from a call | * will not attempt to re-use the surface right after returning from a call | |||
* to PutSurface. | * to PutSurface. | |||
* | * | |||
* Don't use it, use flag VASurfaceDisplaying of vaQuerySurfaceStatus s ince | * Don't use it, use flag VASurfaceDisplaying of vaQuerySurfaceStatus s ince | |||
skipping to change at line 1882 | skipping to change at line 1904 | |||
*/ | */ | |||
VADisplayAttribCSCMatrix = 12, | VADisplayAttribCSCMatrix = 12, | |||
/* specify the constant color used to blend with video surface | /* specify the constant color used to blend with video surface | |||
* Cd = Cv*Cc*Ac + Cb *(1 - Ac) C means the constant RGB | * Cd = Cv*Cc*Ac + Cb *(1 - Ac) C means the constant RGB | |||
* d: the final color to overwrite into the frame buffer | * d: the final color to overwrite into the frame buffer | |||
* v: decoded video after color conversion, | * v: decoded video after color conversion, | |||
* c: video color specified by VADisplayAttribBlendColor | * c: video color specified by VADisplayAttribBlendColor | |||
* b: background color of the drawable | * b: background color of the drawable | |||
*/ | */ | |||
VADisplayAttribBlendColor = 13, | VADisplayAttribBlendColor = 13, | |||
/* | ||||
* Indicate driver to skip painting color key or not. | ||||
* only applicable if the render is overlay | ||||
*/ | ||||
VADisplayAttribOverlayAutoPaintColorKey = 14, | ||||
/* | ||||
* customized overlay color key, the format is RGB888 | ||||
* [23:16] = Red, [15:08] = Green, [07:00] = Blue. | ||||
*/ | ||||
VADisplayAttribOverlayColorKey = 15, | ||||
/* | ||||
* The hint for the implementation of vaPutSurface | ||||
* normally, the driver could use an overlay or GPU to render the surfa | ||||
ce on the screen | ||||
* this flag provides APP the flexibity to switch the render dynamicall | ||||
y | ||||
*/ | ||||
VADisplayAttribRenderMode = 16, | ||||
/* | ||||
* specify if vaPutSurface needs to render into specified monitors | ||||
* one example is that one external monitor (e.g. HDMI) is enabled, | ||||
* but the window manager is not aware of it, and there is no associate | ||||
d drawable | ||||
*/ | ||||
VADisplayAttribRenderDevice = 17, | ||||
/* | ||||
* specify vaPutSurface render area if there is no drawable on the moni | ||||
tor | ||||
*/ | ||||
VADisplayAttribRenderRect = 18, | ||||
} VADisplayAttribType; | } VADisplayAttribType; | |||
/* flags for VADisplayAttribute */ | /* flags for VADisplayAttribute */ | |||
#define VA_DISPLAY_ATTRIB_NOT_SUPPORTED 0x0000 | #define VA_DISPLAY_ATTRIB_NOT_SUPPORTED 0x0000 | |||
#define VA_DISPLAY_ATTRIB_GETTABLE 0x0001 | #define VA_DISPLAY_ATTRIB_GETTABLE 0x0001 | |||
#define VA_DISPLAY_ATTRIB_SETTABLE 0x0002 | #define VA_DISPLAY_ATTRIB_SETTABLE 0x0002 | |||
typedef struct _VADisplayAttribute | typedef struct _VADisplayAttribute | |||
{ | { | |||
VADisplayAttribType type; | VADisplayAttribType type; | |||
End of changes. 7 change blocks. | ||||
1 lines changed or deleted | 53 lines changed or added | |||
va_backend_tpi.h | va_backend_tpi.h | |||
---|---|---|---|---|
skipping to change at line 55 | skipping to change at line 55 | |||
VAStatus (*vaCreateSurfaceFromV4L2Buf) ( | VAStatus (*vaCreateSurfaceFromV4L2Buf) ( | |||
VADriverContextP ctx, | VADriverContextP ctx, | |||
int v4l2_fd, /* file descriptor of V4L2 device */ | int v4l2_fd, /* file descriptor of V4L2 device */ | |||
struct v4l2_format *v4l2_fmt, /* format of V4L2 */ | struct v4l2_format *v4l2_fmt, /* format of V4L2 */ | |||
struct v4l2_buffer *v4l2_buf, /* V4L2 buffer */ | struct v4l2_buffer *v4l2_buf, /* V4L2 buffer */ | |||
VASurfaceID *surface /* out */ | VASurfaceID *surface /* out */ | |||
); | ); | |||
VAStatus (*vaCreateSurfacesForUserPtr)( | VAStatus (*vaCreateSurfacesForUserPtr)( | |||
VADisplay dpy, | VADriverContextP ctx, | |||
int width, | int width, | |||
int height, | int height, | |||
int format, | int format, | |||
int num_surfaces, | int num_surfaces, | |||
VASurfaceID *surfaces, /* out */ | VASurfaceID *surfaces, /* out */ | |||
unsigned size, /* total buffer size need to be allocated */ | unsigned size, /* total buffer size need to be allocated */ | |||
unsigned int fourcc, /* expected fourcc */ | unsigned int fourcc, /* expected fourcc */ | |||
unsigned int luma_stride, /* luma stride, could be width al igned with a special value */ | unsigned int luma_stride, /* luma stride, could be width al igned with a special value */ | |||
unsigned int chroma_u_stride, /* chroma stride */ | unsigned int chroma_u_stride, /* chroma stride */ | |||
unsigned int chroma_v_stride, | unsigned int chroma_v_stride, | |||
unsigned int luma_offset, /* could be 0 */ | unsigned int luma_offset, /* could be 0 */ | |||
unsigned int chroma_u_offset, /* UV offset from the beginni ng of the memory */ | unsigned int chroma_u_offset, /* UV offset from the beginni ng of the memory */ | |||
unsigned int chroma_v_offset | unsigned int chroma_v_offset | |||
); | ); | |||
VAStatus (*vaPutSurfaceBuf) ( | VAStatus (*vaPutSurfaceBuf) ( | |||
VADisplay dpy, | VADriverContextP ctx, | |||
VASurfaceID surface, | VASurfaceID surface, | |||
unsigned char* data, | unsigned char* data, | |||
int* data_len, | int* data_len, | |||
short srcx, | short srcx, | |||
short srcy, | short srcy, | |||
unsigned short srcw, | unsigned short srcw, | |||
unsigned short srch, | unsigned short srch, | |||
short destx, | short destx, | |||
short desty, | short desty, | |||
unsigned short destw, | unsigned short destw, | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||