summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXiang, Haihao <haihao.xiang@intel.com>2017-09-11 16:46:10 +0800
committerXiang, Haihao <haihao.xiang@intel.com>2017-09-27 12:49:34 +0800
commit98f1d56bfe9a11c0bcc3e1f4194779e0b777e77e (patch)
tree3783f80d10b5effa5108553b747f85eedd6ba46c
parent0fd48763d9f5f0ad73b208fe90516344683fb872 (diff)
downloadlibva-98f1d56bfe9a11c0bcc3e1f4194779e0b777e77e.tar.gz
Add reserved bytes to most structures
The reserved bytest must be set to 0, then we can add new fields to those structures in future without worrying about the API compatibility too much. Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
-rw-r--r--va/va.h118
-rw-r--r--va/va_backend.h6
-rw-r--r--va/va_backend_vpp.h3
-rw-r--r--va/va_dec_hevc.h7
-rw-r--r--va/va_dec_jpeg.h9
-rw-r--r--va/va_dec_vp8.h11
-rw-r--r--va/va_dec_vp9.h8
-rw-r--r--va/va_drmcommon.h2
-rw-r--r--va/va_enc_h264.h14
-rw-r--r--va/va_enc_hevc.h12
-rw-r--r--va/va_enc_jpeg.h8
-rw-r--r--va/va_enc_mpeg2.h9
-rw-r--r--va/va_enc_vp8.h13
-rw-r--r--va/va_enc_vp9.h10
-rw-r--r--va/va_fei_h264.h2
-rw-r--r--va/va_vpp.h27
-rw-r--r--va/wayland/va_backend_wayland.h3
-rw-r--r--va/x11/va_dricommon.h4
18 files changed, 264 insertions, 2 deletions
diff --git a/va/va.h b/va/va.h
index 245afe5..601aa05 100644
--- a/va/va.h
+++ b/va/va.h
@@ -231,6 +231,12 @@ typedef int VAStatus; /** Return status type from functions */
#define VA_FILTER_SCALING_NL_ANAMORPHIC 0x00000300
#define VA_FILTER_SCALING_MASK 0x00000f00
+/** Padding size in 4-bytes */
+#define VA_PADDING_LOW 4
+#define VA_PADDING_MEDIUM 8
+#define VA_PADDING_HIGH 16
+#define VA_PADDING_LARGE 32
+
/**
* Returns a short english description of error_status
*/
@@ -1306,6 +1312,9 @@ typedef struct _VAEncPackedHeaderParameterBuffer {
uint32_t bit_length;
/** \brief Flag: buffer contains start code emulation prevention bytes? */
uint8_t has_emulation_bytes;
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAEncPackedHeaderParameterBuffer;
/**
@@ -1345,6 +1354,9 @@ typedef struct _VAEncMiscParameterTemporalLayerStructure
* ids for frames starting from the 2nd frame.
*/
uint32_t layer_id[32];
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAEncMiscParameterTemporalLayerStructure;
@@ -1378,10 +1390,14 @@ typedef struct _VAEncMiscParameterRateControl
* The temporal layer that the rate control parameters are specified for.
*/
uint32_t temporal_id : 8;
+ /** \brief Reserved for future use, must be zero */
uint32_t reserved : 17;
} bits;
uint32_t value;
} rc_flags;
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_MEDIUM];
} VAEncMiscParameterRateControl;
typedef struct _VAEncMiscParameterFrameRate
@@ -1417,6 +1433,9 @@ typedef struct _VAEncMiscParameterFrameRate
} bits;
uint32_t value;
} framerate_flags;
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAEncMiscParameterFrameRate;
/**
@@ -1427,6 +1446,9 @@ typedef struct _VAEncMiscParameterFrameRate
typedef struct _VAEncMiscParameterMaxSliceSize
{
uint32_t max_slice_size;
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAEncMiscParameterMaxSliceSize;
typedef struct _VAEncMiscParameterAIR
@@ -1434,12 +1456,18 @@ typedef struct _VAEncMiscParameterAIR
uint32_t air_num_mbs;
uint32_t air_threshold;
uint32_t air_auto; /* if set to 1 then hardware auto-tune the AIR threshold */
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAEncMiscParameterAIR;
typedef struct _VAEncMiscParameterHRD
{
uint32_t initial_buffer_fullness; /* in bits */
uint32_t buffer_size; /* in bits */
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAEncMiscParameterHRD;
/**
@@ -1456,6 +1484,9 @@ typedef struct _VAEncMiscParameterBufferMaxFrameSize {
VAEncMiscParameterType type;
/** \brief Maximum size of a frame (in bits). */
uint32_t max_frame_size;
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAEncMiscParameterBufferMaxFrameSize;
/**
@@ -1474,6 +1505,9 @@ typedef struct _VAEncMiscParameterBufferQualityLevel {
* level is used.
*/
uint32_t quality_level;
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAEncMiscParameterBufferQualityLevel;
/**
@@ -1498,6 +1532,9 @@ typedef struct _VAEncMiscParameterSkipFrame {
/** \brief When skip_frame_flag = 1, the size of the skipped frames in bits. When skip_frame_flag = 2,
* the size of the current skipped frame that is to be packed/encrypted in bits. */
uint32_t size_skip_frames;
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAEncMiscParameterSkipFrame;
/**
@@ -1568,6 +1605,9 @@ typedef struct _VAEncMiscParameterBufferROI {
} bits;
uint32_t value;
} roi_flags;
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAEncMiscParameterBufferROI;
/**
@@ -1628,6 +1668,9 @@ typedef struct _VAHuffmanTableBufferJPEGBaseline {
uint8_t pad[2];
/**@}*/
} huffman_table[2];
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAHuffmanTableBufferJPEGBaseline;
/****************************
@@ -1666,6 +1709,9 @@ typedef struct _VAPictureParameterBufferMPEG2
} bits;
uint32_t value;
} picture_coding_extension;
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAPictureParameterBufferMPEG2;
/** MPEG-2 Inverse Quantization Matrix Buffer */
@@ -1687,6 +1733,9 @@ typedef struct _VAIQMatrixBufferMPEG2
uint8_t chroma_intra_quantiser_matrix[64];
/** \brief Chroma non-intra matrix, in zig-zag scan order. */
uint8_t chroma_non_intra_quantiser_matrix[64];
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAIQMatrixBufferMPEG2;
/** MPEG-2 Slice Parameter Buffer */
@@ -1700,6 +1749,9 @@ typedef struct _VASliceParameterBufferMPEG2
uint32_t slice_vertical_position;
int32_t quantiser_scale_code;
int32_t intra_slice_flag;
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VASliceParameterBufferMPEG2;
/** MPEG-2 Macroblock Parameter Buffer */
@@ -1739,6 +1791,9 @@ typedef struct _VAMacroblockParameterBufferMPEG2
/* Number of skipped macroblocks after this macroblock */
uint16_t num_skipped_macroblocks;
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAMacroblockParameterBufferMPEG2;
/*
@@ -1810,6 +1865,9 @@ typedef struct _VAPictureParameterBufferMPEG4
/* for direct mode prediction */
int16_t TRB;
int16_t TRD;
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAPictureParameterBufferMPEG4;
/** MPEG-4 Inverse Quantization Matrix Buffer */
@@ -1823,6 +1881,9 @@ typedef struct _VAIQMatrixBufferMPEG4
uint8_t intra_quant_mat[64];
/** The matrix for non-intra blocks, in zig-zag scan order. */
uint8_t non_intra_quant_mat[64];
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAIQMatrixBufferMPEG4;
/** MPEG-4 Slice Parameter Buffer */
@@ -1834,6 +1895,9 @@ typedef struct _VASliceParameterBufferMPEG4
uint32_t macroblock_offset;/* the offset to the first bit of MB from the first byte of slice data */
uint32_t macroblock_number;
int32_t quant_scale;
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VASliceParameterBufferMPEG4;
/**
@@ -2007,6 +2071,9 @@ typedef struct _VAPictureParameterBufferVC1
} bits;
uint32_t value;
} transform_fields;
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_MEDIUM];
} VAPictureParameterBufferVC1;
/** VC-1 Bitplane Buffer
@@ -2035,6 +2102,9 @@ typedef struct _VASliceParameterBufferVC1
uint32_t slice_data_flag; /* see VA_SLICE_DATA_FLAG_XXX defintions */
uint32_t macroblock_offset;/* the offset to the first bit of MB from the first byte of slice data */
uint32_t slice_vertical_position;
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VASliceParameterBufferVC1;
/* VC-1 Slice Data Buffer */
@@ -2053,6 +2123,9 @@ typedef struct _VAPictureH264
uint32_t flags;
int32_t TopFieldOrderCnt;
int32_t BottomFieldOrderCnt;
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAPictureH264;
/* flags in VAPictureH264 could be OR of the following */
#define VA_PICTURE_H264_INVALID 0x00000001
@@ -2115,6 +2188,9 @@ typedef struct _VAPictureParameterBufferH264
uint32_t value;
} pic_fields;
uint16_t frame_num;
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_MEDIUM];
} VAPictureParameterBufferH264;
/** H.264 Inverse Quantization Matrix Buffer */
@@ -2124,6 +2200,9 @@ typedef struct _VAIQMatrixBufferH264
uint8_t ScalingList4x4[6][16];
/** \brief 8x8 scaling list, in raster scan order. */
uint8_t ScalingList8x8[2][64];
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAIQMatrixBufferH264;
/** H.264 Slice Parameter Buffer */
@@ -2182,6 +2261,9 @@ typedef struct _VASliceParameterBufferH264
uint8_t chroma_weight_l1_flag;
int16_t chroma_weight_l1[32][2];
int16_t chroma_offset_l1[32][2];
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VASliceParameterBufferH264;
/****************************
@@ -2208,6 +2290,9 @@ typedef struct _VAEncSliceParameterBuffer
} bits;
uint32_t value;
} slice_flags;
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAEncSliceParameterBuffer;
@@ -2222,6 +2307,9 @@ typedef struct _VAEncSequenceParameterBufferH263
uint32_t frame_rate;
uint32_t initial_qp;
uint32_t min_qp;
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAEncSequenceParameterBufferH263;
typedef struct _VAEncPictureParameterBufferH263
@@ -2232,6 +2320,9 @@ typedef struct _VAEncPictureParameterBufferH263
uint16_t picture_width;
uint16_t picture_height;
VAEncPictureType picture_type;
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAEncPictureParameterBufferH263;
/****************************
@@ -2251,6 +2342,9 @@ typedef struct _VAEncSequenceParameterBufferMPEG4
uint32_t frame_rate;
uint32_t initial_qp;
uint32_t min_qp;
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAEncSequenceParameterBufferMPEG4;
typedef struct _VAEncPictureParameterBufferMPEG4
@@ -2263,6 +2357,9 @@ typedef struct _VAEncPictureParameterBufferMPEG4
uint32_t modulo_time_base; /* number of 1s */
uint32_t vop_time_increment;
VAEncPictureType picture_type;
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAEncPictureParameterBufferMPEG4;
@@ -2373,6 +2470,9 @@ typedef struct _VACodedBufferSegment {
* or \c NULL if there is none.
*/
void *next;
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VACodedBufferSegment;
/**
@@ -2430,6 +2530,9 @@ typedef struct {
uint32_t mem_type;
/** \brief Size of the underlying buffer. */
size_t mem_size;
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VABufferInfo;
/**
@@ -2608,6 +2711,9 @@ typedef struct _VASurfaceDecodeMBErrors
uint32_t start_mb; /* start mb address with errors */
uint32_t end_mb; /* end mb address with errors */
VADecodeErrorType decode_error_type;
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VASurfaceDecodeMBErrors;
/**
@@ -2700,6 +2806,9 @@ typedef struct _VAImageFormat
uint32_t green_mask;
uint32_t blue_mask;
uint32_t alpha_mask;
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAImageFormat;
typedef VAGenericID VAImageID;
@@ -2743,6 +2852,9 @@ typedef struct _VAImage
* Only entry_bytes characters of the string are used.
*/
int8_t component_order[4];
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAImage;
/** Get maximum number of image formats supported by the implementation */
@@ -3122,6 +3234,9 @@ typedef struct _VADisplayAttribute
int32_t value; /* used by the set/get attribute functions */
/* flags can be VA_DISPLAY_ATTRIB_GETTABLE or VA_DISPLAY_ATTRIB_SETTABLE or OR'd together */
uint32_t flags;
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VADisplayAttribute;
/** Get maximum number of display attributs supported by the implementation */
@@ -3190,6 +3305,9 @@ typedef struct _VAPictureHEVC
int32_t pic_order_cnt;
/* described below */
uint32_t flags;
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAPictureHEVC;
/* flags in VAPictureHEVC could be OR of the following */
diff --git a/va/va_backend.h b/va/va_backend.h
index 4600d79..39663e1 100644
--- a/va/va_backend.h
+++ b/va/va_backend.h
@@ -435,6 +435,9 @@ struct VADriverVTable
VADriverContextP ctx,
VABufferID buf_id /* in */
);
+
+ /** \brief Reserved bytes for future use, must be zero */
+ unsigned long reserved[64];
};
struct VADriverContext
@@ -558,6 +561,9 @@ struct VADisplayContext
void *error_callback_user_context;
VAMessageCallback info_callback;
void *info_callback_user_context;
+
+ /** \brief Reserved bytes for future use, must be zero */
+ unsigned long reserved[32];
};
typedef VAStatus (*VADriverInit) (
diff --git a/va/va_backend_vpp.h b/va/va_backend_vpp.h
index b776ef6..8ed10d5 100644
--- a/va/va_backend_vpp.h
+++ b/va/va_backend_vpp.h
@@ -62,6 +62,9 @@ struct VADriverVTableVPP {
unsigned int num_filters,
VAProcPipelineCaps *pipeline_caps
);
+
+ /** \brief Reserved bytes for future use, must be zero */
+ unsigned long reserved[16];
};
#ifdef __cplusplus
diff --git a/va/va_dec_hevc.h b/va/va_dec_hevc.h
index 3c10121..0bbe616 100644
--- a/va/va_dec_hevc.h
+++ b/va/va_dec_hevc.h
@@ -190,6 +190,8 @@ typedef struct _VAPictureParameterBufferHEVC
*/
uint32_t st_rps_bits;
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_MEDIUM];
} VAPictureParameterBufferHEVC;
/**
@@ -321,6 +323,8 @@ typedef struct _VASliceParameterBufferHEVC
uint8_t five_minus_max_num_merge_cand;
/**@}*/
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VASliceParameterBufferHEVC;
@@ -379,6 +383,9 @@ typedef struct _VAIQMatrixBufferHEVC
* with sizeID = 3 and matrixID in the range of 0 to 1, inclusive.
*/
uint8_t ScalingListDC32x32[2];
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAIQMatrixBufferHEVC;
diff --git a/va/va_dec_jpeg.h b/va/va_dec_jpeg.h
index 4b66229..0b44ffd 100644
--- a/va/va_dec_jpeg.h
+++ b/va/va_dec_jpeg.h
@@ -70,6 +70,9 @@ typedef struct _VAPictureParameterBufferJPEGBaseline {
} components[255];
/** \brief Number of components in frame (Nf). */
uint8_t num_components;
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_MEDIUM];
} VAPictureParameterBufferJPEGBaseline;
/**
@@ -91,6 +94,9 @@ typedef struct _VAIQMatrixBufferJPEGBaseline {
uint8_t load_quantiser_table[4];
/** \brief Quanziation tables indexed by table identifier (Tqi). */
uint8_t quantiser_table[4][64];
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAIQMatrixBufferJPEGBaseline;
/**
@@ -131,6 +137,9 @@ typedef struct _VASliceParameterBufferJPEGBaseline {
uint16_t restart_interval;
/** \brief Number of MCUs in a scan. */
uint32_t num_mcus;
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VASliceParameterBufferJPEGBaseline;
/**@}*/
diff --git a/va/va_dec_vp8.h b/va/va_dec_vp8.h
index c45e476..7e6eb00 100644
--- a/va/va_dec_vp8.h
+++ b/va/va_dec_vp8.h
@@ -157,6 +157,8 @@ typedef struct _VAPictureParameterBufferVP8
VABoolCoderContextVPX bool_coder_ctx;
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAPictureParameterBufferVP8;
/**
@@ -197,6 +199,9 @@ typedef struct _VASliceParameterBufferVP8
* exclude the uncompress data chunk since first_part_size 'excluding the uncompressed data chunk'
*/
uint32_t partition_size[9];
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VASliceParameterBufferVP8;
/**
@@ -216,6 +221,9 @@ typedef struct _VASliceParameterBufferVP8
typedef struct _VAProbabilityDataBufferVP8
{
uint8_t dct_coeff_probs[4][8][3][11];
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAProbabilityDataBufferVP8;
/**
@@ -232,6 +240,9 @@ typedef struct _VAIQMatrixBufferVP8
* all Q indexs should be clipped to be range [0, 127]
*/
uint16_t quantization_index[4][6];
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAIQMatrixBufferVP8;
/**@}*/
diff --git a/va/va_dec_vp9.h b/va/va_dec_vp9.h
index 37252be..bbc39fd 100644
--- a/va/va_dec_vp9.h
+++ b/va/va_dec_vp9.h
@@ -191,6 +191,9 @@ typedef struct _VADecPictureParameterBufferVP9
*/
uint8_t bit_depth;
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_MEDIUM];
+
/**@}*/
} VADecPictureParameterBufferVP9;
@@ -263,6 +266,9 @@ typedef struct _VASegmentParameterVP9
*/
int16_t chroma_dc_quant_scale;
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
+
/**@}*/
} VASegmentParameterVP9;
@@ -307,6 +313,8 @@ typedef struct _VASliceParameterBufferVP9
*/
VASegmentParameterVP9 seg_param[8];
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
/**@}*/
} VASliceParameterBufferVP9;
diff --git a/va/va_drmcommon.h b/va/va_drmcommon.h
index 76820a3..3bad528 100644
--- a/va/va_drmcommon.h
+++ b/va/va_drmcommon.h
@@ -66,6 +66,8 @@ struct drm_state {
int fd;
/** \brief DRM authentication type. */
int auth_type;
+ /** \brief Reserved bytes for future use, must be zero */
+ int va_reserved[8];
};
/** \brief Kernel DRM buffer memory type. */
diff --git a/va/va_enc_h264.h b/va/va_enc_h264.h
index 079a91f..f647539 100644
--- a/va/va_enc_h264.h
+++ b/va/va_enc_h264.h
@@ -246,6 +246,8 @@ typedef struct _VAEncSequenceParameterBufferH264 {
uint32_t log2_max_mv_length_horizontal : 5;
/** \brief Range: 0 to 16, inclusive. */
uint32_t log2_max_mv_length_vertical : 5;
+ /** \brief Reserved for future use, must be zero */
+ uint32_t reserved : 19;
} bits;
uint32_t value;
} vui_fields;
@@ -259,6 +261,9 @@ typedef struct _VAEncSequenceParameterBufferH264 {
uint32_t num_units_in_tick;
/** \brief Same as the H.264 bitstream syntax element. */
uint32_t time_scale;
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
/**@}*/
} VAEncSequenceParameterBufferH264;
@@ -371,6 +376,9 @@ typedef struct _VAEncPictureParameterBufferH264 {
} bits;
uint32_t value;
} pic_fields;
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAEncPictureParameterBufferH264;
typedef struct _VAEncQPBufferH264 {
@@ -514,6 +522,9 @@ typedef struct _VAEncSliceParameterBufferH264 {
int8_t slice_alpha_c0_offset_div2;
/** \brief Same as the H.264 bitstream syntax element. */
int8_t slice_beta_offset_div2;
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
/**@}*/
} VAEncSliceParameterBufferH264;
@@ -595,6 +606,9 @@ typedef struct _VAEncMacroblockParameterBufferH264 {
} inter_fields;
/**@}*/
} info;
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAEncMacroblockParameterBufferH264;
/**@}*/
diff --git a/va/va_enc_hevc.h b/va/va_enc_hevc.h
index 127b7b9..eb07c3b 100644
--- a/va/va_enc_hevc.h
+++ b/va/va_enc_hevc.h
@@ -316,6 +316,9 @@ typedef struct _VAEncSequenceParameterBufferHEVC {
uint8_t max_bytes_per_pic_denom;
/** \brief Same as the HEVC bitstream syntax element. */
uint8_t max_bits_per_min_cu_denom;
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_MEDIUM];
/**@}*/
} VAEncSequenceParameterBufferHEVC;
@@ -517,6 +520,9 @@ typedef struct _VAEncPictureParameterBufferHEVC {
} bits;
uint32_t value;
} pic_fields;
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_HIGH];
} VAEncPictureParameterBufferHEVC;
/**
@@ -640,6 +646,9 @@ typedef struct _VAEncSliceParameterBufferHEVC {
} bits;
uint32_t value;
} slice_fields;
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_MEDIUM];
/**@}*/
} VAEncSliceParameterBufferHEVC;
@@ -695,6 +704,9 @@ typedef struct _VAQMatrixBufferHEVC
* with sizeID = 3 and matrixID in the range of 0 to 1, inclusive.
*/
uint8_t scaling_list_dc_32x32[2];
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAQMatrixBufferHEVC;
/**@}*/
diff --git a/va/va_enc_jpeg.h b/va/va_enc_jpeg.h
index f43f0b6..e8e69ad 100644
--- a/va/va_enc_jpeg.h
+++ b/va/va_enc_jpeg.h
@@ -107,6 +107,8 @@ typedef struct _VAEncPictureParameterBufferJPEG
/** \brief number from 1 to 100 that specifies quality of image. */
uint8_t quality;
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAEncPictureParameterBufferJPEG;
@@ -129,6 +131,9 @@ typedef struct _VAEncSliceParameterBufferJPEG {
/** \brief AC entropy coding table selector (Taj). */
uint8_t ac_table_selector;
} components[4];
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAEncSliceParameterBufferJPEG;
/**
@@ -145,6 +150,9 @@ typedef struct _VAQMatrixBufferJPEG
uint8_t lum_quantiser_matrix[64];
/** \brief chroma quantization table. */
uint8_t chroma_quantiser_matrix[64];
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAQMatrixBufferJPEG;
/**@}*/
diff --git a/va/va_enc_mpeg2.h b/va/va_enc_mpeg2.h
index 5cd632d..06f0e63 100644
--- a/va/va_enc_mpeg2.h
+++ b/va/va_enc_mpeg2.h
@@ -165,6 +165,9 @@ typedef struct _VAEncSequenceParameterBufferMPEG2 {
} bits;
uint32_t value;
} gop_header;
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAEncSequenceParameterBufferMPEG2;
/**
@@ -261,6 +264,9 @@ typedef struct _VAEncPictureParameterBufferMPEG2 {
} bits;
uint32_t value;
} composite_display;
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAEncPictureParameterBufferMPEG2;
/**
@@ -276,6 +282,9 @@ typedef struct _VAEncSliceParameterBufferMPEG2 {
int32_t quantiser_scale_code;
/** \brief Flag to indicate intra slice */
int32_t is_intra_slice;
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAEncSliceParameterBufferMPEG2;
/**@}*/
diff --git a/va/va_enc_vp8.h b/va/va_enc_vp8.h
index d03a5e8..f7cab40 100644
--- a/va/va_enc_vp8.h
+++ b/va/va_enc_vp8.h
@@ -93,6 +93,8 @@ typedef struct _VAEncSequenceParameterBufferVP8
*/
VASurfaceID reference_frames[4];
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAEncSequenceParameterBufferVP8;
@@ -128,6 +130,7 @@ typedef struct _VAEncPictureParameterBufferVP8
uint32_t no_ref_gf : 1;
/* don't reference the alternate reference frame */
uint32_t no_ref_arf : 1;
+ /** \brief Reserved for future use, must be zero */
uint32_t reserved : 28;
} bits;
uint32_t value;
@@ -278,7 +281,9 @@ typedef struct _VAEncPictureParameterBufferVP8
* otherwise they are ignored.
*/
uint8_t clamp_qindex_low;
-
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAEncPictureParameterBufferVP8;
@@ -302,6 +307,9 @@ typedef struct _VAEncMBMapBufferVP8
* per MB Segmentation ID Buffer
*/
uint8_t *mb_segment_id;
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAEncMBMapBufferVP8;
@@ -317,6 +325,9 @@ typedef struct _VAQMatrixBufferVP8
{
uint16_t quantization_index[4];
int16_t quantization_index_delta[5];
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAQMatrixBufferVP8;
diff --git a/va/va_enc_vp9.h b/va/va_enc_vp9.h
index cd870e7..fce22a4 100644
--- a/va/va_enc_vp9.h
+++ b/va/va_enc_vp9.h
@@ -83,6 +83,8 @@ typedef struct _VACodedBufferVP9Status
/* suggested next frame height */
uint16_t next_frame_height;
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VACodedBufferVP9Status;
/**
@@ -136,6 +138,8 @@ typedef struct _VAEncSequenceParameterBufferVP9
/* Period between key frames */
uint32_t intra_period;
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAEncSequenceParameterBufferVP9;
@@ -506,6 +510,8 @@ typedef struct _VAEncPictureParameterBufferVP9
*/
uint32_t skip_frames_size;
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_MEDIUM];
} VAEncPictureParameterBufferVP9;
@@ -557,6 +563,8 @@ typedef struct _VAEncSegParamVP9
*/
int16_t segment_qindex_delta;
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAEncSegParamVP9;
/**
@@ -575,6 +583,8 @@ typedef struct _VAEncMiscParameterTypeVP9PerSegmantParam
*/
VAEncSegParamVP9 seg_data[8];
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAEncMiscParameterTypeVP9PerSegmantParam;
diff --git a/va/va_fei_h264.h b/va/va_fei_h264.h
index 4f3654a..5048491 100644
--- a/va/va_fei_h264.h
+++ b/va/va_fei_h264.h
@@ -134,7 +134,7 @@ typedef struct _VAEncMiscParameterFEIFrameControlH264
uint32_t num_passes;
/** \brief delta QP list for every pass */
uint8_t *delta_qp;
- uint32_t reserved3[2];
+ uint32_t reserved3[VA_PADDING_LOW];
} VAEncMiscParameterFEIFrameControlH264;
/** \brief FEI MB level control data structure */
diff --git a/va/va_vpp.h b/va/va_vpp.h
index 60c274a..2c1fb51 100644
--- a/va/va_vpp.h
+++ b/va/va_vpp.h
@@ -354,6 +354,9 @@ typedef struct _VAProcPipelineCaps {
VAProcColorStandardType *output_color_standards;
/** \brief Number of elements in \ref output_color_standards array. */
uint32_t num_output_color_standards;
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LARGE];
} VAProcPipelineCaps;
/** \brief Specification of values supported by the filter. */
@@ -366,6 +369,9 @@ typedef struct _VAProcFilterValueRange {
float default_value;
/** \brief Step value that alters the filter behaviour in a sensible way. */
float step;
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAProcFilterValueRange;
/**
@@ -501,6 +507,9 @@ typedef struct _VAProcPipelineParameterBuffer {
VASurfaceID *backward_references;
/** \brief Number of backward reference frames that were supplied. */
uint32_t num_backward_references;
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LARGE];
} VAProcPipelineParameterBuffer;
/**
@@ -526,6 +535,9 @@ typedef struct _VAProcFilterParameterBuffer {
VAProcFilterType type;
/** \brief Value. */
float value;
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAProcFilterParameterBuffer;
/** @name De-interlacing flags */
@@ -555,6 +567,9 @@ typedef struct _VAProcFilterParameterBufferDeinterlacing {
VAProcDeinterlacingType algorithm;
/** \brief Deinterlacing flags. */
uint32_t flags;
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAProcFilterParameterBufferDeinterlacing;
/**
@@ -616,6 +631,9 @@ typedef struct _VAProcFilterParameterBufferColorBalance {
* disabled and other attribute of the same type is used instead.
*/
float value;
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAProcFilterParameterBufferColorBalance;
/**
@@ -627,12 +645,18 @@ typedef struct _VAProcFilterParameterBufferColorBalance {
typedef struct _VAProcFilterCap {
/** \brief Range of supported values for the filter. */
VAProcFilterValueRange range;
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAProcFilterCap;
/** \brief Capabilities specification for the deinterlacing filter. */
typedef struct _VAProcFilterCapDeinterlacing {
/** \brief Deinterlacing algorithm. */
VAProcDeinterlacingType type;
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAProcFilterCapDeinterlacing;
/** \brief Capabilities specification for the color balance filter. */
@@ -641,6 +665,9 @@ typedef struct _VAProcFilterCapColorBalance {
VAProcColorBalanceType type;
/** \brief Range of supported values for the specified operation. */
VAProcFilterValueRange range;
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAProcFilterCapColorBalance;
/**
diff --git a/va/wayland/va_backend_wayland.h b/va/wayland/va_backend_wayland.h
index 67d0004..9e5740a 100644
--- a/va/wayland/va_backend_wayland.h
+++ b/va/wayland/va_backend_wayland.h
@@ -63,6 +63,9 @@ struct VADriverVTableWayland {
/** \brief Indicate whether buffer sharing with prime fd is supported. */
unsigned int has_prime_sharing;
+
+ /** \brief Reserved bytes for future use, must be zero */
+ unsigned long reserved[8];
};
#endif /* VA_BACKEND_WAYLAND_H */
diff --git a/va/x11/va_dricommon.h b/va/x11/va_dricommon.h
index 1566e85..ae17fac 100644
--- a/va/x11/va_dricommon.h
+++ b/va/x11/va_dricommon.h
@@ -55,6 +55,8 @@ union dri_buffer
unsigned int pitch;
unsigned int cpp;
unsigned int flags;
+ /** \brief Reserved bytes for future use, must be zero */
+ unsigned int va_reserved[8];
} dri2;
};
@@ -82,6 +84,8 @@ struct dri_state
union dri_buffer *(*getRenderingBuffer)(VADriverContextP ctx, struct dri_drawable *dri_drawable);
void (*close)(VADriverContextP ctx);
#endif
+ /** \brief Reserved bytes for future use, must be zero */
+ unsigned long va_reserved[16];
};
Bool va_isDRI2Connected(VADriverContextP ctx, char **driver_name);