Improve VA API buffers allocation logic. This also reduces struct vaapi_context

down to ~60 bytes vs. a few KBs before, and gets rid of explicit VA data types.

Originally committed as revision 18256 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Gwenole Beauchesne
2009-03-31 08:33:02 +00:00
parent ccc745cdf4
commit a3d636aff9
4 changed files with 51 additions and 95 deletions

View File

@ -73,7 +73,7 @@ struct vaapi_context {
* - encoding: unused
* - decoding: Set by libavcodec
*/
VABufferID pic_param_buf_id;
uint32_t pic_param_buf_id;
/**
* VAIQMatrixBuffer ID
@ -81,7 +81,7 @@ struct vaapi_context {
* - encoding: unused
* - decoding: Set by libavcodec
*/
VABufferID iq_matrix_buf_id;
uint32_t iq_matrix_buf_id;
/**
* VABitPlaneBuffer ID (for VC-1 decoding)
@ -89,7 +89,7 @@ struct vaapi_context {
* - encoding: unused
* - decoding: Set by libavcodec
*/
VABufferID bitplane_buf_id;
uint32_t bitplane_buf_id;
/**
* Slice parameter/data buffer IDs
@ -97,7 +97,7 @@ struct vaapi_context {
* - encoding: unused
* - decoding: Set by libavcodec
*/
VABufferID *slice_buf_ids;
uint32_t *slice_buf_ids;
/**
* Number of effective slice buffer IDs to send to the HW
@ -115,71 +115,6 @@ struct vaapi_context {
*/
unsigned int slice_buf_ids_alloc;
/**
* Picture parameter buffer
*
* - encoding: unused
* - decoding: Set by libavcodec
*/
union {
VAPictureParameterBufferMPEG2 mpeg2;
VAPictureParameterBufferMPEG4 mpeg4;
VAPictureParameterBufferH264 h264;
VAPictureParameterBufferVC1 vc1;
} pic_param;
/**
* Size of a VAPictureParameterBuffer element
*
* - encoding: unused
* - decoding: Set by libavcodec
*/
unsigned int pic_param_size;
/**
* Inverse quantization matrix buffer
*
* - encoding: unused
* - decoding: Set by libavcodec
*/
union {
VAIQMatrixBufferMPEG2 mpeg2;
VAIQMatrixBufferMPEG4 mpeg4;
VAIQMatrixBufferH264 h264;
} iq_matrix;
/**
* Size of a VAIQMatrixBuffer element
*
* - encoding: unused
* - decoding: Set by libavcodec
*/
unsigned int iq_matrix_size;
/**
* Flag: is quantization matrix present?
*
* - encoding: unused
* - decoding: Set by libavcodec
*/
uint8_t iq_matrix_present;
/**
* VC-1 bitplane buffer
*
* - encoding: unused
* - decoding: Set by libavcodec
*/
uint8_t *bitplane_buffer;
/**
* Size of VC-1 bitplane buffer
*
* - encoding: unused
* - decoding: Set by libavcodec
*/
unsigned int bitplane_buffer_size;
/**
* Pointer to VASliceParameterBuffers
*