mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-05-31 07:05:24 +08:00
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:
@ -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
|
||||
*
|
||||
|
Reference in New Issue
Block a user