#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
*/
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;
/**
* 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;
* 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
} bits;
uint32_t value;
} framerate_flags;
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} 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
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;
/**
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;
/**
* level is used.
*/
uint32_t quality_level;
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAEncMiscParameterBufferQualityLevel;
/**
/** \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;
/**
} bits;
uint32_t value;
} roi_flags;
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAEncMiscParameterBufferROI;
/**
uint8_t pad[2];
/**@}*/
} huffman_table[2];
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAHuffmanTableBufferJPEGBaseline;
/****************************
} 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 */
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 */
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 */
/* 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;
/*
/* 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 */
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 */
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;
/**
} 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
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 */
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
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 */
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 */
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;
/****************************
} bits;
uint32_t value;
} slice_flags;
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAEncSliceParameterBuffer;
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
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;
/****************************
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
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;
* 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;
/**
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;
/**
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;
/**
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;
* 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 */
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 */
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 */
VADriverContextP ctx,
VABufferID buf_id /* in */
);
+
+ /** \brief Reserved bytes for future use, must be zero */
+ unsigned long reserved[64];
};
struct VADriverContext
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) (
unsigned int num_filters,
VAProcPipelineCaps *pipeline_caps
);
+
+ /** \brief Reserved bytes for future use, must be zero */
+ unsigned long reserved[16];
};
#ifdef __cplusplus
*/
uint32_t st_rps_bits;
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_MEDIUM];
} VAPictureParameterBufferHEVC;
/**
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;
* 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;
} 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;
/**
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;
/**
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;
/**@}*/
VABoolCoderContextVPX bool_coder_ctx;
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAPictureParameterBufferVP8;
/**
* 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;
/**
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;
/**
* 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;
/**@}*/
*/
uint8_t bit_depth;
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_MEDIUM];
+
/**@}*/
} VADecPictureParameterBufferVP9;
*/
int16_t chroma_dc_quant_scale;
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
+
/**@}*/
} VASegmentParameterVP9;
*/
VASegmentParameterVP9 seg_param[8];
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
/**@}*/
} VASliceParameterBufferVP9;
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. */
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;
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;
} 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 {
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;
} inter_fields;
/**@}*/
} info;
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAEncMacroblockParameterBufferH264;
/**@}*/
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;
} bits;
uint32_t value;
} pic_fields;
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_HIGH];
} VAEncPictureParameterBufferHEVC;
/**
} bits;
uint32_t value;
} slice_fields;
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_MEDIUM];
/**@}*/
} VAEncSliceParameterBufferHEVC;
* 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;
/**@}*/
/** \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;
/** \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;
/**
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;
/**@}*/
} bits;
uint32_t value;
} gop_header;
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAEncSequenceParameterBufferMPEG2;
/**
} bits;
uint32_t value;
} composite_display;
+
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAEncPictureParameterBufferMPEG2;
/**
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;
/**@}*/
*/
VASurfaceID reference_frames[4];
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAEncSequenceParameterBufferVP8;
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;
* 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;
* 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;
{
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;
/* 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;
/**
/* 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;
*/
uint32_t skip_frames_size;
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_MEDIUM];
} VAEncPictureParameterBufferVP9;
*/
int16_t segment_qindex_delta;
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAEncSegParamVP9;
/**
*/
VAEncSegParamVP9 seg_data[8];
+ /** \brief Reserved bytes for future use, must be zero */
+ uint32_t va_reserved[VA_PADDING_LOW];
} VAEncMiscParameterTypeVP9PerSegmantParam;
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 */
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. */
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;
/**
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;
/**
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 */
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;
/**
* 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;
/**
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. */
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;
/**
/** \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 */
unsigned int pitch;
unsigned int cpp;
unsigned int flags;
+ /** \brief Reserved bytes for future use, must be zero */
+ unsigned int va_reserved[8];
} dri2;
};
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);