Skip to main content

_VAEncSliceParameterBufferHEVC

Struct _VAEncSliceParameterBufferHEVC 

Source
#[repr(C)]
pub struct _VAEncSliceParameterBufferHEVC {
Show 28 fields pub slice_segment_address: u32, pub num_ctu_in_slice: u32, pub slice_type: u8, pub slice_pic_parameter_set_id: u8, pub num_ref_idx_l0_active_minus1: u8, pub num_ref_idx_l1_active_minus1: u8, pub ref_pic_list0: [VAPictureHEVC; 15], pub ref_pic_list1: [VAPictureHEVC; 15], pub luma_log2_weight_denom: u8, pub delta_chroma_log2_weight_denom: i8, pub delta_luma_weight_l0: [i8; 15], pub luma_offset_l0: [i8; 15], pub delta_chroma_weight_l0: [[i8; 2]; 15], pub chroma_offset_l0: [[i8; 2]; 15], pub delta_luma_weight_l1: [i8; 15], pub luma_offset_l1: [i8; 15], pub delta_chroma_weight_l1: [[i8; 2]; 15], pub chroma_offset_l1: [[i8; 2]; 15], pub max_num_merge_cand: u8, pub slice_qp_delta: i8, pub slice_cb_qp_offset: i8, pub slice_cr_qp_offset: i8, pub slice_beta_offset_div2: i8, pub slice_tc_offset_div2: i8, pub slice_fields: _VAEncSliceParameterBufferHEVC__bindgen_ty_1, pub pred_weight_table_bit_offset: u32, pub pred_weight_table_bit_length: u32, pub va_reserved: [u32; 6],
}
Expand description

\brief Slice parameter for HEVC encoding in main & main 10 profiles.

This structure holds information for \c slice_segment_layer_rbsp() as defined by the HEVC 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 \c vaRenderPicture() as this buffer:

  • a #VAEncPackedHeaderParameterBuffer with type set to VAEncPackedHeaderType::VAEncPackedHeaderSlice ;
  • a #VAEncPackedHeaderDataBuffer which holds the actual packed header data.

Fields§

§slice_segment_address: u32

\brief Starting CTU address for this slice.

§num_ctu_in_slice: u32

\brief Number of CTUs in this slice.

§slice_type: u8

\brief Slice type. Corresponds to HEVC syntax element of the same name.

§slice_pic_parameter_set_id: u8

\brief Same as the HEVC bitstream syntax element.

§num_ref_idx_l0_active_minus1: u8

\brief Maximum reference index for reference picture list 0. Range: 0 to 14, inclusive.

§num_ref_idx_l1_active_minus1: u8

\brief Maximum reference index for reference picture list 1. Range: 0 to 14, inclusive.

§ref_pic_list0: [VAPictureHEVC; 15]

\brief Reference picture list 0 (for P slices).

§ref_pic_list1: [VAPictureHEVC; 15]

\brief Reference picture list 1 (for B slices).

§luma_log2_weight_denom: u8

@name pred_weight_table() / /**@{/ /** \brief Same as the HEVC bitstream syntax element.

§delta_chroma_log2_weight_denom: i8

\brief Same as the HEVC bitstream syntax element.

§delta_luma_weight_l0: [i8; 15]

\brief Same as the HEVC bitstream syntax element.

§luma_offset_l0: [i8; 15]

\brief Same as the HEVC bitstream syntax element.

§delta_chroma_weight_l0: [[i8; 2]; 15]

\brief Same as the HEVC bitstream syntax element.

§chroma_offset_l0: [[i8; 2]; 15]

\brief Same as the HEVC spec variable ChromaOffsetL0[].

§delta_luma_weight_l1: [i8; 15]

\brief Same as the HEVC bitstream syntax element.

§luma_offset_l1: [i8; 15]

\brief Same as the HEVC bitstream syntax element.

§delta_chroma_weight_l1: [[i8; 2]; 15]

\brief Same as the HEVC bitstream syntax element.

§chroma_offset_l1: [[i8; 2]; 15]

\brief Same as the HEVC spec variable ChromaOffsetL1[].

§max_num_merge_cand: u8

\brief Corresponds to HEVC spec variable MaxNumMergeCand. Range: [1..5].

§slice_qp_delta: i8

\brief Same as the HEVC bitstream syntax element.

§slice_cb_qp_offset: i8

\brief Same as the HEVC bitstream syntax element.

§slice_cr_qp_offset: i8

\brief Same as the HEVC bitstream syntax element.

§slice_beta_offset_div2: i8

\brief Same as the HEVC bitstream syntax element.

§slice_tc_offset_div2: i8

\brief Same as the HEVC bitstream syntax element.

§slice_fields: _VAEncSliceParameterBufferHEVC__bindgen_ty_1§pred_weight_table_bit_offset: u32

\brief bit offset of syntax element pred_weight_table() in slice segment header. It aligns with the starting position of the current packed slice header. It is used when encoder prefers to override the weighted prediction parameters passed in from application. Please refer to enable_gpu_weighted_prediction in VAEncPictureParameterBufferHEVC.

§pred_weight_table_bit_length: u32

\brief bit length of syntax element pred_weight_table() in slice segment header. It is used when encoder prefers to override the weighted prediction parameters passed in from application. Please refer to enable_gpu_weighted_prediction in VAEncPictureParameterBufferHEVC.

§va_reserved: [u32; 6]

\brief Reserved bytes for future use, must be zero

Trait Implementations§

Source§

impl Clone for _VAEncSliceParameterBufferHEVC

Source§

fn clone(&self) -> _VAEncSliceParameterBufferHEVC

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for _VAEncSliceParameterBufferHEVC

Source§

impl Default for _VAEncSliceParameterBufferHEVC

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.