pub struct FrameHeader {Show 41 fields
pub frame_type: FrameType,
pub show_frame: bool,
pub showable_frame: bool,
pub show_existing_frame: bool,
pub frame_to_show_map_idx: u8,
pub error_resilient_mode: bool,
pub current_frame_id: u32,
pub order_hint: u8,
pub primary_ref_frame: u8,
pub refresh_frame_flags: u8,
pub frame_size: FrameSize,
pub render_size: RenderSize,
pub allow_high_precision_mv: bool,
pub interpolation_filter: InterpolationFilter,
pub is_filter_switchable: bool,
pub allow_intrabc: bool,
pub ref_frame_info: RefFrameInfo,
pub allow_screen_content_tools: bool,
pub force_integer_mv: bool,
pub is_motion_mode_switchable: bool,
pub use_ref_frame_mvs: bool,
pub reference_mode: ReferenceMode,
pub skip_mode_frame: [u8; 2],
pub skip_mode_allowed: bool,
pub skip_mode_present: bool,
pub compound_reference_allowed: bool,
pub tx_mode: TxMode,
pub reduced_tx_set: bool,
pub allow_warped_motion: bool,
pub quantization: QuantizationParams,
pub segmentation: SegmentationParams,
pub loop_filter: LoopFilterParams,
pub cdef: CdefParams,
pub loop_restoration: LoopRestorationParams,
pub tile_info: TileInfo,
pub global_motion: GlobalMotion,
pub film_grain: FilmGrainParams,
pub frame_is_intra: bool,
pub lossless_array: [bool; 8],
pub coded_lossless: bool,
pub all_lossless: bool,
}Expand description
Complete frame header structure.
Fields§
§frame_type: FrameTypeFrame type (KEY_FRAME, INTER_FRAME, INTRA_ONLY_FRAME, SWITCH_FRAME).
show_frame: boolWhether to show this frame.
showable_frame: boolWhether this frame can be shown later via show_existing_frame.
show_existing_frame: boolShow an existing frame from the buffer.
frame_to_show_map_idx: u8Frame to show (if show_existing_frame is true).
error_resilient_mode: boolError resilient mode (disables some dependencies).
current_frame_id: u32Frame ID for error resilience.
order_hint: u8Order hint for temporal ordering.
primary_ref_frame: u8Primary reference frame index.
refresh_frame_flags: u8Refresh frame flags (which slots to update).
frame_size: FrameSizeFrame size information.
render_size: RenderSizeRender size information.
allow_high_precision_mv: boolAllow high precision motion vectors.
interpolation_filter: InterpolationFilterInterpolation filter for motion compensation.
is_filter_switchable: boolWhether the filter is switchable per-block.
allow_intrabc: boolIntra block copy allowed.
ref_frame_info: RefFrameInfoReference frame information.
allow_screen_content_tools: boolAllow screen content tools.
force_integer_mv: boolForce integer motion vectors.
is_motion_mode_switchable: boolMotion mode (simple, obmc, warp).
use_ref_frame_mvs: boolUse reference frame motion vectors.
reference_mode: ReferenceModeReference mode (single, compound, select).
skip_mode_frame: [u8; 2]Skip mode frame indices.
skip_mode_allowed: boolSkip mode allowed.
skip_mode_present: boolSkip mode present.
compound_reference_allowed: boolCompound inter allowed.
tx_mode: TxModeTX mode for transform selection.
reduced_tx_set: boolReduced TX set for complexity reduction.
allow_warped_motion: boolAllow warped motion.
quantization: QuantizationParamsQuantization parameters.
segmentation: SegmentationParamsSegmentation parameters.
loop_filter: LoopFilterParamsLoop filter parameters.
cdef: CdefParamsCDEF parameters.
loop_restoration: LoopRestorationParamsLoop restoration parameters.
tile_info: TileInfoTile information.
global_motion: GlobalMotionGlobal motion parameters.
film_grain: FilmGrainParamsFilm grain parameters.
frame_is_intra: boolFrame is intra-only (key frame or intra-only frame).
lossless_array: [bool; 8]All lossless mode.
coded_lossless: boolCoded lossless (all segments lossless and no chroma subsampling issues).
all_lossless: boolAll lossless (coded lossless and frame size equals superres size).
Implementations§
Source§impl FrameHeader
impl FrameHeader
Sourcepub fn parse(data: &[u8], seq: &SequenceHeader) -> CodecResult<Self>
pub fn parse(data: &[u8], seq: &SequenceHeader) -> CodecResult<Self>
Sourcepub fn get_qindex(&self, seg_id: usize) -> u8
pub fn get_qindex(&self, seg_id: usize) -> u8
Get quantizer index for a segment.
Sourcepub const fn is_key_frame(&self) -> bool
pub const fn is_key_frame(&self) -> bool
Check if this frame is a keyframe.
Sourcepub const fn is_inter_frame(&self) -> bool
pub const fn is_inter_frame(&self) -> bool
Check if this frame uses inter prediction.
Sourcepub const fn display_order(&self) -> u8
pub const fn display_order(&self) -> u8
Get the display order for this frame.
Trait Implementations§
Source§impl Clone for FrameHeader
impl Clone for FrameHeader
Source§fn clone(&self) -> FrameHeader
fn clone(&self) -> FrameHeader
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for FrameHeader
impl Debug for FrameHeader
Source§impl Default for FrameHeader
impl Default for FrameHeader
Source§fn default() -> FrameHeader
fn default() -> FrameHeader
Auto Trait Implementations§
impl Freeze for FrameHeader
impl RefUnwindSafe for FrameHeader
impl Send for FrameHeader
impl Sync for FrameHeader
impl Unpin for FrameHeader
impl UnsafeUnpin for FrameHeader
impl UnwindSafe for FrameHeader
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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