pub(super) struct Arm {
profile: VAProfile,
level_idc: u32,
mb_width: u32,
mb_height: u32,
slices: (u32, u32),
cabac: bool,
transform_8x8: bool,
dpb: u32,
sequence: VAEncSequenceParameterBufferH264,
sps: Vec<u8>,
pps: Vec<u8>,
idr_pic_id: u16,
}Fields§
§profile: VAProfile§level_idc: u32§mb_width: u32§mb_height: u32§slices: (u32, u32)Slices per picture and macroblock rows per slice.
cabac: bool§transform_8x8: bool§dpb: u32§sequence: VAEncSequenceParameterBufferH264§sps: Vec<u8>§pps: Vec<u8>§idr_pic_id: u16Implementations§
Source§impl Arm
impl Arm
pub(super) fn new(profile: VAProfile) -> Self
Sourcepub(super) fn frame_num_range(&self) -> u32
pub(super) fn frame_num_range(&self) -> u32
How many values frame_num takes before it wraps.
pub(super) fn slices(&self) -> (u32, u32)
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: the level the ladder names at this geometry and rate, never below the one the decoded picture buffer was sized for, the picture size in macroblocks with the cropping that trims it, and the 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 frame number and order count since the key frame, the decoded picture
buffer as ReferenceFrames, and every slice with its packed header, whose reference
list modification moves any reference but the newest short-term frame, which the
default list puts first, to the front: a short-term one by its distance in frame numbers,
an anchor by its long-term index. In a session keeping anchors the key frame is marked
long-term under index 0 and each anchor after it under its index (memory management
operation 6), the one it is marked over leaving the buffer.
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