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: CpuFeatureLevel
Target 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
T
does 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