pub(super) struct Arm {}Fields§
§profile: VAProfile§tools: Tools§level_idc: u32§tier: u32§ctb_width: u32§ctb_height: u32§slices: (u32, u32)§dpb: u32§pic_init_qp: u32§cu_qp_delta: bool§cu_qp_delta_depth: u32The depth of the coding units that each carry a quantizer delta, 0 for one per tree block.
align: u32The surface alignment, the smallest coding block but where new says otherwise.
low_delay_b: boolWhether a predicted frame is coded as a B slice with the one reference in both lists.
sequence: VAEncSequenceParameterBufferHEVC§headers: Vec<u8>Implementations§
Source§impl Arm
impl Arm
Sourcepub(super) fn new(
profile: VAProfile,
features: Option<u32>,
block_sizes: Option<u32>,
prediction: Option<u32>,
unit_qp_deltas: bool,
) -> Self
pub(super) fn new( profile: VAProfile, features: Option<u32>, block_sizes: Option<u32>, prediction: Option<u32>, unit_qp_deltas: bool, ) -> Self
The arm on profile, with the driver’s feature and block-size attributes where it
reports them. Intel’s full encoder (unit_qp_deltas), which reports no block sizes, codes
blocks from 8x8 to 32x32 (Skylake’s, as FFmpeg’s defaults say) on surfaces aligned to 16.
Sourcepub(super) fn alignment(&self) -> (u32, u32)
pub(super) fn alignment(&self) -> (u32, u32)
The surface alignment: the smallest coding block, or 16 on Intel’s full encoder.
pub(super) fn ctu_size(&self) -> u32
pub(super) fn slices(&self) -> (u32, u32)
Sourcefn profile_idc(n: &Negotiated) -> u32
fn profile_idc(n: &Negotiated) -> u32
The profile a session declares: the range extensions for 4:4:4, else Main 10 or Main.
fn profile_tier_level(&self, w: &mut BitWriter, n: &Negotiated)
Sourcepub(super) fn configure(
&mut self,
n: &Negotiated,
surface_width: u32,
surface_height: u32,
slices: (u32, u32),
)
pub(super) fn configure( &mut self, n: &Negotiated, surface_width: u32, surface_height: u32, slices: (u32, u32), )
The stream’s sequence: level and tier from the ladder, the level never below the one the decoded picture buffer was sized for, the picture in coding tree blocks, and the VPS, SPS, and PPS the key frames carry.
pub(super) fn sequence(&mut self, n: &Negotiated, out: &mut Buffers)
Sourcepub(super) fn picture(
&mut self,
n: &Negotiated,
frame: &Frame<'_>,
out: &mut Buffers,
) -> Result<(), String>
pub(super) fn picture( &mut self, n: &Negotiated, frame: &Frame<'_>, out: &mut Buffers, ) -> Result<(), String>
The picture: its order count since the key frame, the frames the client still has, newest first, as the driver’s reference list and the slice header’s reference picture set, and every slice.
Auto Trait Implementations§
impl Freeze for Arm
impl RefUnwindSafe for Arm
impl Send for Arm
impl Sync for Arm
impl Unpin for Arm
impl UnsafeUnpin for Arm
impl UnwindSafe for Arm
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more