va.h   va.h 
skipping to change at line 237 skipping to change at line 237
VAProfileMPEG4Simple = 2, VAProfileMPEG4Simple = 2,
VAProfileMPEG4AdvancedSimple = 3, VAProfileMPEG4AdvancedSimple = 3,
VAProfileMPEG4Main = 4, VAProfileMPEG4Main = 4,
VAProfileH264Baseline = 5, VAProfileH264Baseline = 5,
VAProfileH264Main = 6, VAProfileH264Main = 6,
VAProfileH264High = 7, VAProfileH264High = 7,
VAProfileVC1Simple = 8, VAProfileVC1Simple = 8,
VAProfileVC1Main = 9, VAProfileVC1Main = 9,
VAProfileVC1Advanced = 10, VAProfileVC1Advanced = 10,
VAProfileH263Baseline = 11, VAProfileH263Baseline = 11,
VAProfileJPEGBaseline = 12 VAProfileJPEGBaseline = 12,
VAProfileH264ConstrainedBaseline = 13
} VAProfile; } VAProfile;
/* /*
* Currently defined entrypoints * Currently defined entrypoints
*/ */
typedef enum typedef enum
{ {
VAEntrypointVLD = 1, VAEntrypointVLD = 1,
VAEntrypointIZZ = 2, VAEntrypointIZZ = 2,
VAEntrypointIDCT = 3, VAEntrypointIDCT = 3,
skipping to change at line 1166 skipping to change at line 1167
/* Encode Slice Parameter Buffer */ /* Encode Slice Parameter Buffer */
typedef struct _VAEncSliceParameterBuffer typedef struct _VAEncSliceParameterBuffer
{ {
unsigned int start_row_number; /* starting MB row number for this s lice */ unsigned int start_row_number; /* starting MB row number for this s lice */
unsigned int slice_height; /* slice height measured in MB */ unsigned int slice_height; /* slice height measured in MB */
union { union {
struct { struct {
unsigned int is_intra : 1; unsigned int is_intra : 1;
unsigned int disable_deblocking_filter_idc : 2; unsigned int disable_deblocking_filter_idc : 2;
unsigned int uses_long_term_ref :1;
unsigned int is_long_term_ref :1;
} bits; } bits;
unsigned int value; unsigned int value;
} slice_flags; } slice_flags;
} VAEncSliceParameterBuffer; } VAEncSliceParameterBuffer;
/**************************** /****************************
* H.264 specific encode data structures * H.264 specific encode data structures
****************************/ ****************************/
typedef struct _VAEncSequenceParameterBufferH264 typedef struct _VAEncSequenceParameterBufferH264
{ {
unsigned char seq_parameter_set_id; unsigned char seq_parameter_set_id;
unsigned char level_idc; unsigned char level_idc;
unsigned int intra_period; unsigned int intra_period;
unsigned int intra_idr_period; unsigned int intra_idr_period;
unsigned int max_num_ref_frames;
unsigned int picture_width_in_mbs; unsigned int picture_width_in_mbs;
unsigned int picture_height_in_mbs; unsigned int picture_height_in_mbs;
unsigned int bits_per_second; unsigned int bits_per_second;
unsigned int frame_rate; unsigned int frame_rate;
unsigned int initial_qp; unsigned int initial_qp;
unsigned int min_qp; unsigned int min_qp;
unsigned int basic_unit_size; unsigned int basic_unit_size;
unsigned char vui_flag; unsigned char vui_flag;
} VAEncSequenceParameterBufferH264; } VAEncSequenceParameterBufferH264;
skipping to change at line 1305 skipping to change at line 1309
/* /*
* 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.
* 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_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 */
void *buf; /* pointer to the beginning of the data buffer in the coded buffer segment */ void *buf; /* pointer to the beginning of the data buffer in the coded buffer segment */
skipping to change at line 1430 skipping to change at line 1438
/* /*
* 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 */
); );
/* /*
* 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
*/
typedef struct _VASurfaceDecodeMBErrors
{
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 end_mb; /* end mb address with errors */
} VASurfaceDecodeMBErrors;
/*
* 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.
* 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,
* 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.
*/
VAStatus vaQuerySurfaceError(
VADisplay dpy,
VASurfaceID surface,
VAStatus error_status,
void **error_info
);
/*
* Images and Subpictures * Images and Subpictures
* VAImage is used to either get the surface data to client memory, or * VAImage is used to either get the surface data to client memory, or
* to copy image data in client memory to a surface. * to copy image data in client memory to a surface.
* Both images, subpictures and surfaces follow the same 2D coordinate syst em where origin * Both images, subpictures and surfaces follow the same 2D coordinate syst em where origin
* is at the upper left corner with positive X to the right and positive Y down * is at the upper left corner with positive X to the right and positive Y down
*/ */
#define VA_FOURCC(ch0, ch1, ch2, ch3) \ #define VA_FOURCC(ch0, ch1, ch2, ch3) \
((unsigned long)(unsigned char) (ch0) | ((unsigned long)(unsigned char) (ch1) << 8) | \ ((unsigned long)(unsigned char) (ch0) | ((unsigned long)(unsigned char) (ch1) << 8) | \
((unsigned long)(unsigned char) (ch2) << 16) | ((unsigned long)(unsigne d char) (ch3) << 24 )) ((unsigned long)(unsigned char) (ch2) << 16) | ((unsigned long)(unsigne d char) (ch3) << 24 ))
 End of changes. 6 change blocks. 
1 lines changed or deleted 42 lines changed or added


 va_backend.h   va_backend.h 
skipping to change at line 181 skipping to change at line 181
VADriverContextP ctx, VADriverContextP ctx,
VASurfaceID render_target VASurfaceID render_target
); );
VAStatus (*vaQuerySurfaceStatus) ( VAStatus (*vaQuerySurfaceStatus) (
VADriverContextP ctx, VADriverContextP ctx,
VASurfaceID render_target, VASurfaceID render_target,
VASurfaceStatus *status /* out */ VASurfaceStatus *status /* out */
); );
VAStatus (*vaQuerySurfaceError) (
VADriverContextP ctx,
VASurfaceID render_target,
VAStatus error_status,
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,
short destx, short destx,
short desty, short desty,
 End of changes. 1 change blocks. 
0 lines changed or deleted 7 lines changed or added


 va_backend_tpi.h   va_backend_tpi.h 
skipping to change at line 54 skipping to change at line 54
); );
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)(
VADisplay dpy,
int width,
int height,
int format,
int num_surfaces,
VASurfaceID *surfaces, /* out */
unsigned size, /* total buffer size need to be allocated */
unsigned int fourcc, /* expected fourcc */
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_v_stride,
unsigned int luma_offset, /* could be 0 */
unsigned int chroma_u_offset, /* UV offset from the beginni
ng of the memory */
unsigned int chroma_v_offset
);
VAStatus (*vaPutSurfaceBuf) ( VAStatus (*vaPutSurfaceBuf) (
VADisplay dpy, VADisplay dpy,
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,
 End of changes. 1 change blocks. 
0 lines changed or deleted 19 lines changed or added


 va_tpi.h   va_tpi.h 
skipping to change at line 71 skipping to change at line 71
unsigned short srch, unsigned short srch,
short destx, short destx,
short desty, short desty,
unsigned short destw, unsigned short destw,
unsigned short desth, unsigned short desth,
VARectangle *cliprects, /* client supplied clip list */ VARectangle *cliprects, /* client supplied clip list */
unsigned int number_cliprects, /* number of clip rects in the clip list */ unsigned int number_cliprects, /* number of clip rects in the clip list */
unsigned int flags /* de-interlacing flags */ unsigned int flags /* de-interlacing flags */
); );
/*
* The surfaces could be shared and accessed with extern devices
* which has special requirements, e.g. stride alignment
* This API is used to force libVA video surfaces are allocated
* according to these external requirements
* Special API for V4L2 user pointer support
*/
VAStatus vaCreateSurfacesForUserPtr(
VADisplay dpy,
int width,
int height,
int format,
int num_surfaces,
VASurfaceID *surfaces, /* out */
unsigned size, /* total buffer size need to be allocated */
unsigned int fourcc, /* expected fourcc */
unsigned int luma_stride, /* luma stride, could be width aligned with a
special value */
unsigned int chroma_u_stride, /* chroma stride */
unsigned int chroma_v_stride,
unsigned int luma_offset, /* could be 0 */
unsigned int chroma_u_offset, /* UV offset from the beginning of the me
mory */
unsigned int chroma_v_offset
);
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
 End of changes. 1 change blocks. 
0 lines changed or deleted 26 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/