VA-API  2.22.0
Public Attributes | List of all members
VAEncSliceParameterBufferH264 Struct Reference

Slice parameter for H.264 encoding in baseline, main & high profiles. More...

#include <va_enc_h264.h>

Public Attributes

uint32_t macroblock_address
 Starting MB address for this slice.
 
uint32_t num_macroblocks
 Number of macroblocks in this slice.
 
VABufferID macroblock_info
 Per-MB encoder configuration buffer, or VA_INVALID_ID. More...
 
uint8_t slice_type
 Slice type. Range: 0..2, 5..7, i.e. no switching slices.
 
uint8_t pic_parameter_set_id
 Same as the H.264 bitstream syntax element.
 
uint16_t idr_pic_id
 Same as the H.264 bitstream syntax element.
 
uint8_t cabac_init_idc
 Range: 0 to 2, inclusive.
 
int8_t slice_qp_delta
 Same as the H.264 bitstream syntax element.
 
If pic_order_cnt_type == 0
uint16_t pic_order_cnt_lsb
 The picture order count modulo MaxPicOrderCntLsb.
 
int32_t delta_pic_order_cnt_bottom
 Valid if pic_order_present_flag and this is a bottom field.
 
If pic_order_cnt_type == 1 && !delta_pic_order_always_zero_flag
int32_t delta_pic_order_cnt [2]
 [0]: top, [1]: bottom.
 
If slice_type == B
uint8_t direct_spatial_mv_pred_flag
 
If slice_type == P
uint8_t num_ref_idx_active_override_flag
 Specifies if _VAEncPictureParameterBufferH264::num_ref_idx_l0_active_minus1 or _VAEncPictureParameterBufferH264::num_ref_idx_l1_active_minus1 are overriden by the values for this slice.
 
uint8_t num_ref_idx_l0_active_minus1
 Maximum reference index for reference picture list 0. Range: 0 to 31, inclusive.
 
uint8_t num_ref_idx_l1_active_minus1
 Maximum reference index for reference picture list 1. Range: 0 to 31, inclusive.
 
VAPictureH264 RefPicList0 [32]
 Reference picture list 0 (for P slices).
 
VAPictureH264 RefPicList1 [32]
 Reference picture list 1 (for B slices).
 
pred_weight_table()
uint8_t luma_log2_weight_denom
 Same as the H.264 bitstream syntax element.
 
uint8_t chroma_log2_weight_denom
 Same as the H.264 bitstream syntax element.
 
uint8_t luma_weight_l0_flag
 Same as the H.264 bitstream syntax element.
 
signed short luma_weight_l0 [32]
 Same as the H.264 bitstream syntax element.
 
signed short luma_offset_l0 [32]
 Same as the H.264 bitstream syntax element.
 
uint8_t chroma_weight_l0_flag
 Same as the H.264 bitstream syntax element.
 
signed short chroma_weight_l0 [32][2]
 Same as the H.264 bitstream syntax element.
 
signed short chroma_offset_l0 [32][2]
 Same as the H.264 bitstream syntax element.
 
uint8_t luma_weight_l1_flag
 Same as the H.264 bitstream syntax element.
 
signed short luma_weight_l1 [32]
 Same as the H.264 bitstream syntax element.
 
signed short luma_offset_l1 [32]
 Same as the H.264 bitstream syntax element.
 
uint8_t chroma_weight_l1_flag
 Same as the H.264 bitstream syntax element.
 
signed short chroma_weight_l1 [32][2]
 Same as the H.264 bitstream syntax element.
 
signed short chroma_offset_l1 [32][2]
 Same as the H.264 bitstream syntax element.
 
If deblocking_filter_control_present_flag
uint8_t disable_deblocking_filter_idc
 Range: 0 to 2, inclusive.
 
int8_t slice_alpha_c0_offset_div2
 Same as the H.264 bitstream syntax element.
 
int8_t slice_beta_offset_div2
 Same as the H.264 bitstream syntax element.
 
uint32_t va_reserved [VA_PADDING_LOW]
 Reserved bytes for future use, must be zero.
 

Detailed Description

Slice parameter for H.264 encoding in baseline, main & high profiles.

This structure holds information for slice_layer_without_partitioning_rbsp() as defined by the H.264 specification.

If packed slice headers mode is used, i.e. if the encoding pipeline was configured with the VA_ENC_PACKED_HEADER_SLICE flag, then the driver expects two more buffers to be provided to the same vaRenderPicture() as this buffer:

If per-macroblock encoder configuration is needed, macroblock_info references a buffer of type VAEncMacroblockParameterBufferH264. This buffer is not passed to vaRenderPicture() and it can be re-used without re-allocating the whole buffer.

Member Data Documentation

◆ macroblock_info

VABufferID VAEncSliceParameterBufferH264::macroblock_info

Per-MB encoder configuration buffer, or VA_INVALID_ID.

If per-MB encoder configuration is needed, then macroblock_info references a buffer of type VAEncMacroblockParameterBufferH264 (VAEncMacroblockParameterBufferType). Otherwise, buffer id is set to VA_INVALID_ID and per-MB configuration is derived from this slice parameter.

The macroblock_info buffer must hold num_macroblocks elements.


The documentation for this struct was generated from the following file: