| 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 | |
|