use crate::bindings;
pub struct MPEG2PictureCodingExtension(bindings::_VAPictureParameterBufferMPEG2__bindgen_ty_1);
impl MPEG2PictureCodingExtension {
#[allow(clippy::too_many_arguments)]
pub fn new(
intra_dc_precision: u32,
picture_structure: u32,
top_field_first: u32,
frame_pred_frame_dct: u32,
concealment_motion_vectors: u32,
q_scale_type: u32,
intra_vlc_format: u32,
alternate_scan: u32,
repeat_first_field: u32,
progressive_frame: u32,
is_first_field: u32,
) -> Self {
let _bitfield_1 =
bindings::_VAPictureParameterBufferMPEG2__bindgen_ty_1__bindgen_ty_1::new_bitfield_1(
intra_dc_precision,
picture_structure,
top_field_first,
frame_pred_frame_dct,
concealment_motion_vectors,
q_scale_type,
intra_vlc_format,
alternate_scan,
repeat_first_field,
progressive_frame,
is_first_field,
);
Self(bindings::_VAPictureParameterBufferMPEG2__bindgen_ty_1 {
bits: bindings::_VAPictureParameterBufferMPEG2__bindgen_ty_1__bindgen_ty_1 {
_bitfield_align_1: Default::default(),
_bitfield_1,
__bindgen_padding_0: Default::default(),
},
})
}
pub fn inner(&mut self) -> &bindings::_VAPictureParameterBufferMPEG2__bindgen_ty_1 {
&self.0
}
}
pub struct PictureParameterBufferMPEG2(Box<bindings::VAPictureParameterBufferMPEG2>);
impl PictureParameterBufferMPEG2 {
pub fn new(
horizontal_size: u16,
vertical_size: u16,
forward_reference_picture: bindings::VASurfaceID,
backward_reference_picture: bindings::VASurfaceID,
picture_coding_type: i32,
f_code: i32,
picture_coding_extension: &MPEG2PictureCodingExtension,
) -> Self {
let picture_coding_extension = picture_coding_extension.0;
Self(Box::new(bindings::VAPictureParameterBufferMPEG2 {
horizontal_size,
vertical_size,
forward_reference_picture,
backward_reference_picture,
picture_coding_type,
f_code,
picture_coding_extension,
va_reserved: Default::default(),
}))
}
pub(crate) fn inner_mut(&mut self) -> &mut bindings::VAPictureParameterBufferMPEG2 {
self.0.as_mut()
}
pub fn inner(&mut self) -> &bindings::VAPictureParameterBufferMPEG2 {
self.0.as_ref()
}
}
pub struct SliceParameterBufferMPEG2(Box<bindings::VASliceParameterBufferMPEG2>);
impl SliceParameterBufferMPEG2 {
#[allow(clippy::too_many_arguments)]
pub fn new(
slice_data_size: u32,
slice_data_offset: u32,
slice_data_flag: u32,
macroblock_offset: u32,
slice_horizontal_position: u32,
slice_vertical_position: u32,
quantiser_scale_code: i32,
intra_slice_flag: i32,
) -> Self {
Self(Box::new(bindings::VASliceParameterBufferMPEG2 {
slice_data_size,
slice_data_offset,
slice_data_flag,
macroblock_offset,
slice_horizontal_position,
slice_vertical_position,
quantiser_scale_code,
intra_slice_flag,
va_reserved: Default::default(),
}))
}
pub(crate) fn inner_mut(&mut self) -> &mut bindings::VASliceParameterBufferMPEG2 {
self.0.as_mut()
}
pub fn inner(&self) -> &bindings::VASliceParameterBufferMPEG2 {
self.0.as_ref()
}
}
pub struct IQMatrixBufferMPEG2(Box<bindings::VAIQMatrixBufferMPEG2>);
impl IQMatrixBufferMPEG2 {
#[allow(clippy::too_many_arguments)]
pub fn new(
load_intra_quantiser_matrix: i32,
load_non_intra_quantiser_matrix: i32,
load_chroma_intra_quantiser_matrix: i32,
load_chroma_non_intra_quantiser_matrix: i32,
intra_quantiser_matrix: [u8; 64usize],
non_intra_quantiser_matrix: [u8; 64usize],
chroma_intra_quantiser_matrix: [u8; 64usize],
chroma_non_intra_quantiser_matrix: [u8; 64usize],
) -> Self {
Self(Box::new(bindings::VAIQMatrixBufferMPEG2 {
load_intra_quantiser_matrix,
load_non_intra_quantiser_matrix,
load_chroma_intra_quantiser_matrix,
load_chroma_non_intra_quantiser_matrix,
intra_quantiser_matrix,
non_intra_quantiser_matrix,
chroma_intra_quantiser_matrix,
chroma_non_intra_quantiser_matrix,
va_reserved: Default::default(),
}))
}
pub(crate) fn inner_mut(&mut self) -> &mut bindings::VAIQMatrixBufferMPEG2 {
self.0.as_mut()
}
pub fn inner(&self) -> &bindings::VAIQMatrixBufferMPEG2 {
self.0.as_ref()
}
}