pub struct FrameInvariants<T: Pixel> {Show 67 fields
pub sequence: Arc<Sequence>,
pub config: Arc<EncoderConfig>,
pub width: usize,
pub height: usize,
pub render_width: u32,
pub render_height: u32,
pub frame_size_override_flag: bool,
pub render_and_frame_size_different: bool,
pub sb_width: usize,
pub sb_height: usize,
pub w_in_b: usize,
pub h_in_b: usize,
pub input_frameno: u64,
pub order_hint: u32,
pub show_frame: bool,
pub showable_frame: bool,
pub error_resilient: bool,
pub intra_only: bool,
pub allow_high_precision_mv: bool,
pub frame_type: FrameType,
pub frame_to_show_map_idx: u32,
pub use_reduced_tx_set: bool,
pub reference_mode: ReferenceMode,
pub use_prev_frame_mvs: bool,
pub partition_range: PartitionRange,
pub globalmv_transformation_type: [GlobalMVMode; 7],
pub num_tg: usize,
pub large_scale_tile: bool,
pub disable_cdf_update: bool,
pub allow_screen_content_tools: u32,
pub force_integer_mv: u32,
pub primary_ref_frame: u32,
pub refresh_frame_flags: u32,
pub allow_intrabc: bool,
pub use_ref_frame_mvs: bool,
pub is_filter_switchable: bool,
pub is_motion_mode_switchable: bool,
pub disable_frame_end_update_cdf: bool,
pub allow_warped_motion: bool,
pub cdef_search_method: CDEFSearchMethod,
pub cdef_damping: u8,
pub cdef_bits: u8,
pub cdef_y_strengths: [u8; 8],
pub cdef_uv_strengths: [u8; 8],
pub delta_q_present: bool,
pub ref_frames: [u8; 7],
pub ref_frame_sign_bias: [bool; 7],
pub rec_buffer: ReferenceFramesSet<T>,
pub base_q_idx: u8,
pub dc_delta_q: [i8; 3],
pub ac_delta_q: [i8; 3],
pub lambda: f64,
pub me_lambda: f64,
pub dist_scale: [DistortionScale; 3],
pub me_range_scale: u8,
pub use_tx_domain_distortion: bool,
pub use_tx_domain_rate: bool,
pub idx_in_group_output: u64,
pub pyramid_level: u64,
pub enable_early_exit: bool,
pub tx_mode_select: bool,
pub enable_inter_txfm_split: bool,
pub default_filter: FilterMode,
pub enable_segmentation: bool,
pub t35_metadata: Box<[T35]>,
pub cpu_feature_level: CpuFeatureLevel,
pub coded_frame_data: Option<CodedFrameData<T>>,
}Fields§
§sequence: Arc<Sequence>§config: Arc<EncoderConfig>§width: usize§height: usize§render_width: u32§render_height: u32§frame_size_override_flag: bool§render_and_frame_size_different: bool§sb_width: usize§sb_height: usize§w_in_b: usize§h_in_b: usize§input_frameno: u64§order_hint: u32§show_frame: bool§showable_frame: bool§error_resilient: bool§intra_only: bool§allow_high_precision_mv: bool§frame_type: FrameType§frame_to_show_map_idx: u32§use_reduced_tx_set: bool§reference_mode: ReferenceMode§use_prev_frame_mvs: bool§partition_range: PartitionRange§globalmv_transformation_type: [GlobalMVMode; 7]§num_tg: usize§large_scale_tile: bool§disable_cdf_update: bool§allow_screen_content_tools: u32§force_integer_mv: u32§primary_ref_frame: u32§refresh_frame_flags: u32§allow_intrabc: bool§use_ref_frame_mvs: bool§is_filter_switchable: bool§is_motion_mode_switchable: bool§disable_frame_end_update_cdf: bool§allow_warped_motion: bool§cdef_search_method: CDEFSearchMethod§cdef_damping: u8§cdef_bits: u8§cdef_y_strengths: [u8; 8]§cdef_uv_strengths: [u8; 8]§delta_q_present: bool§ref_frames: [u8; 7]§ref_frame_sign_bias: [bool; 7]§rec_buffer: ReferenceFramesSet<T>§base_q_idx: u8§dc_delta_q: [i8; 3]§ac_delta_q: [i8; 3]§lambda: f64§me_lambda: f64§dist_scale: [DistortionScale; 3]§me_range_scale: u8§use_tx_domain_distortion: bool§use_tx_domain_rate: bool§idx_in_group_output: u64§pyramid_level: u64§enable_early_exit: bool§tx_mode_select: bool§enable_inter_txfm_split: bool§default_filter: FilterMode§enable_segmentation: bool§t35_metadata: Box<[T35]>§cpu_feature_level: CpuFeatureLevelTarget CPU feature level.
coded_frame_data: Option<CodedFrameData<T>>Implementations§
Source§impl<T: Pixel> FrameInvariants<T>
impl<T: Pixel> FrameInvariants<T>
Sourcepub fn new(config: Arc<EncoderConfig>, sequence: Arc<Sequence>) -> Self
pub fn new(config: Arc<EncoderConfig>, sequence: Arc<Sequence>) -> Self
§Panics
- If the size of
Tdoes not match the sequence’s bit depth
pub fn new_key_frame( config: Arc<EncoderConfig>, sequence: Arc<Sequence>, gop_input_frameno_start: u64, t35_metadata: Box<[T35]>, ) -> Self
Sourcepub(crate) fn new_inter_frame(
previous_coded_fi: &Self,
inter_cfg: &InterConfig,
gop_input_frameno_start: u64,
output_frameno_in_gop: u64,
next_keyframe_input_frameno: u64,
error_resilient: bool,
t35_metadata: Box<[T35]>,
) -> Option<Self>
pub(crate) fn new_inter_frame( previous_coded_fi: &Self, inter_cfg: &InterConfig, gop_input_frameno_start: u64, output_frameno_in_gop: u64, next_keyframe_input_frameno: u64, error_resilient: bool, t35_metadata: Box<[T35]>, ) -> Option<Self>
Returns the created FrameInvariants, or None if this should be
a placeholder frame.
pub fn is_show_existing_frame(&self) -> bool
pub fn clone_without_coded_data(&self) -> Self
pub fn set_ref_frame_sign_bias(&mut self)
pub fn get_frame_subtype(&self) -> usize
fn pick_strength_from_q(&mut self, qps: &QuantizerParameters)
pub fn set_quantizers(&mut self, qps: &QuantizerParameters)
pub fn sb_size_log2(&self) -> usize
pub fn film_grain_params(&self) -> Option<&GrainTableSegment>
pub fn frame_timestamp(&self) -> u64
Trait Implementations§
Source§impl<T: Clone + Pixel> Clone for FrameInvariants<T>
impl<T: Clone + Pixel> Clone for FrameInvariants<T>
Source§fn clone(&self) -> FrameInvariants<T>
fn clone(&self) -> FrameInvariants<T>
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl<T> Freeze for FrameInvariants<T>
impl<T> RefUnwindSafe for FrameInvariants<T>where
T: RefUnwindSafe,
impl<T> Send for FrameInvariants<T>
impl<T> Sync for FrameInvariants<T>
impl<T> Unpin for FrameInvariants<T>
impl<T> UnwindSafe for FrameInvariants<T>where
T: RefUnwindSafe,
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
Mutably borrows from an owned value. Read more
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>
Converts
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>
Converts
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