Skip to main content

_VAEncPictureParameterBufferHEVC

Struct _VAEncPictureParameterBufferHEVC 

Source
#[repr(C)]
pub struct _VAEncPictureParameterBufferHEVC {
Show 24 fields pub decoded_curr_pic: VAPictureHEVC, pub reference_frames: [VAPictureHEVC; 15], pub coded_buf: VABufferID, pub collocated_ref_pic_index: u8, pub last_picture: u8, pub pic_init_qp: u8, pub diff_cu_qp_delta_depth: u8, pub pps_cb_qp_offset: i8, pub pps_cr_qp_offset: i8, pub num_tile_columns_minus1: u8, pub num_tile_rows_minus1: u8, pub column_width_minus1: [u8; 19], pub row_height_minus1: [u8; 21], pub log2_parallel_merge_level_minus2: u8, pub ctu_max_bitsize_allowed: u8, pub num_ref_idx_l0_default_active_minus1: u8, pub num_ref_idx_l1_default_active_minus1: u8, pub slice_pic_parameter_set_id: u8, pub nal_unit_type: u8, pub pic_fields: _VAEncPictureParameterBufferHEVC__bindgen_ty_1, pub hierarchical_level_plus1: u8, pub va_byte_reserved: u8, pub scc_fields: _VAEncPictureParameterBufferHEVC__bindgen_ty_2, pub va_reserved: [u32; 15],
}
Expand description

HEVC data structures / /** \brief Picture parameter for HEVC encoding in main & main 10 profiles.

This structure holds information for \c pic_parameter_set_rbsp() as defined by the HEVC specification.

If packed picture headers mode is used, i.e. if the encoding pipeline was configured with the #VA_ENC_PACKED_HEADER_PICTURE 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::VAEncPackedHeaderPicture ;
  • a #VAEncPackedHeaderDataBuffer which holds the actual packed header data.

If \c pic_scaling_matrix_present_flag is set to \c 1, then a #VAQMatrixBufferHEVC buffer shall also be provided within the same \c vaRenderPicture() call as this picture parameter buffer.

Fields§

§decoded_curr_pic: VAPictureHEVC

\brief Information about the picture to be encoded.

See #VAPictureHEVC for further description of each field. Note that decoded_curr_pic.picture_id represents the reconstructed (decoded) picture. User provides a scratch VA surface ID here. Long term reference and RPS related fields should be set to 0 and ignored.

§reference_frames: [VAPictureHEVC; 15]

\brief Decoded Picture Buffer (DPB).

This array represents the list of reconstructed (decoded) frames used as reference. It is important to keep track of reconstructed frames so that they can be used later on as reference for P or B-frames encoding.

§coded_buf: VABufferID

\brief Output encoded bitstream.

\ref coded_buf has type #VAEncCodedBufferType. It should be large enough to hold the compressed NAL slice and possibly VPS, SPS and PPS NAL units, and other NAL units such as SEI.

§collocated_ref_pic_index: u8

\brief collocated reference picture buffer index of ReferenceFrames[]. Please note it is different from HEVC syntac element collocated_ref_idx. When the HEVC syntax element slice_temporal_mvp_enable_flag takes value 0, collocated_ref_pic_index should take value 0xFF. . Range: [0..14, 0xFF]

§last_picture: u8

\brief OR’d flags describing whether the picture is the last one or not.

This fields holds 0 if the picture to be encoded is not the last one in the stream or sequence. Otherwise, it is a combination of \ref HEVC_LAST_PICTURE_EOSEQ or \ref HEVC_LAST_PICTURE_EOSTREAM.

§pic_init_qp: u8

\brief \c init_qp_minus26 + 26.

§diff_cu_qp_delta_depth: u8

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

§pps_cb_qp_offset: i8

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

§pps_cr_qp_offset: i8

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

§num_tile_columns_minus1: u8

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

§num_tile_rows_minus1: u8

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

§column_width_minus1: [u8; 19]

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

§row_height_minus1: [u8; 21]

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

§log2_parallel_merge_level_minus2: u8

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

§ctu_max_bitsize_allowed: u8

\brief Application may set the CTU bit size limit based on spec requirement (A.3.2), or other value for special purpose. If the value is set 0, no bit size limit is checked.

§num_ref_idx_l0_default_active_minus1: u8

\brief Maximum reference index for reference picture list 0. value range: [0..14].

§num_ref_idx_l1_default_active_minus1: u8

\brief Maximum reference index for reference picture list 1. value range: [0..14].

§slice_pic_parameter_set_id: u8

\brief PPS header Used by GPU to generate new slice headers in slice size control. value range: [0..63].

§nal_unit_type: u8

\brief NAL unit type Used by GPU to generate new slice headers in slice size control. value range: [0..63].

§pic_fields: _VAEncPictureParameterBufferHEVC__bindgen_ty_1§hierarchical_level_plus1: u8

\brief When hierachical_level_plus1 > 0, hierachical_level_plus1-1 indicates the current frame’s level.when it > 0. B1, B2 setting in CodingType can be treated as B, hirachical level is determined by this variable.When hierachical_level_plus1 == 0, hierarchical level information still comes from coding_type.

§va_byte_reserved: u8

\brief Reserved bytes for future use, must be zero

§scc_fields: _VAEncPictureParameterBufferHEVC__bindgen_ty_2§va_reserved: [u32; 15]

\brief Reserved bytes for future use, must be zero

Trait Implementations§

Source§

impl Clone for _VAEncPictureParameterBufferHEVC

Source§

fn clone(&self) -> _VAEncPictureParameterBufferHEVC

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 _VAEncPictureParameterBufferHEVC

Source§

impl Default for _VAEncPictureParameterBufferHEVC

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.