Struct rav1e::EncoderConfig[][src]

pub struct EncoderConfig {
    pub width: usize,
    pub height: usize,
    pub sample_aspect_ratio: Rational,
    pub time_base: Rational,
    pub bit_depth: usize,
    pub chroma_sampling: ChromaSampling,
    pub chroma_sample_position: ChromaSamplePosition,
    pub pixel_range: PixelRange,
    pub color_description: Option<ColorDescription>,
    pub mastering_display: Option<MasteringDisplay>,
    pub content_light: Option<ContentLight>,
    pub enable_timing_info: bool,
    pub still_picture: bool,
    pub error_resilient: bool,
    pub switch_frame_interval: u64,
    pub min_key_frame_interval: u64,
    pub max_key_frame_interval: u64,
    pub reservoir_frame_delay: Option<i32>,
    pub low_latency: bool,
    pub quantizer: usize,
    pub min_quantizer: u8,
    pub bitrate: i32,
    pub tune: Tune,
    pub tile_cols: usize,
    pub tile_rows: usize,
    pub tiles: usize,
    pub rdo_lookahead_frames: usize,
    pub speed_settings: SpeedSettings,
}

Encoder settings which impact the produced bitstream.

Fields

width: usize

Width of the frames in pixels.

height: usize

Height of the frames in pixels.

sample_aspect_ratio: Rational

Sample aspect ratio (for anamorphic video).

time_base: Rational

Video time base.

bit_depth: usize

Bit depth.

chroma_sampling: ChromaSampling

Chroma subsampling.

chroma_sample_position: ChromaSamplePosition

Chroma sample position.

pixel_range: PixelRange

Pixel value range.

color_description: Option<ColorDescription>

Content color description (primaries, transfer characteristics, matrix).

mastering_display: Option<MasteringDisplay>

HDR mastering display parameters.

content_light: Option<ContentLight>

HDR content light parameters.

enable_timing_info: bool

Enable signaling timing info in the bitstream.

still_picture: bool

Still picture mode flag.

error_resilient: bool

Flag to force all frames to be error resilient.

switch_frame_interval: u64

Interval between switch frames (0 to disable)

min_key_frame_interval: u64

The minimum interval between two keyframes

max_key_frame_interval: u64

The maximum interval between two keyframes

reservoir_frame_delay: Option<i32>

The number of temporal units over which to distribute the reservoir usage.

low_latency: bool

Flag to enable low latency mode.

In this mode the frame reordering is disabled.

quantizer: usize

The base quantizer to use.

min_quantizer: u8

The minimum allowed base quantizer to use in bitrate mode.

bitrate: i32

The target bitrate for the bitrate mode.

tune: Tune

Metric to tune the quality for.

tile_cols: usize

Number of tiles horizontally. Must be a power of two.

Overridden by tiles, if present.

tile_rows: usize

Number of tiles vertically. Must be a power of two.

Overridden by tiles, if present.

tiles: usize

Total number of tiles desired.

Encoder will try to optimally split to reach this number of tiles, rounded up. Overrides tile_cols and tile_rows.

rdo_lookahead_frames: usize

Number of frames to read ahead for the RDO lookahead computation.

speed_settings: SpeedSettings

Settings which affect the enconding speed vs. quality trade-off.

Implementations

impl EncoderConfig[src]

pub fn with_speed_preset(speed: usize) -> Self[src]

This is a preset which provides default settings according to a speed value in the specific range 0–10. Each speed value corresponds to a different preset. See from_preset(). If the input value is greater than 10, it will result in the same settings as 10.

pub fn set_key_frame_interval(&mut self, min_interval: u64, max_interval: u64)[src]

Sets the minimum and maximum keyframe interval, handling special cases as needed.

pub fn frame_rate(&self) -> f64[src]

Returns the video frame rate computed from time_base.

pub fn render_size(&self) -> (usize, usize)[src]

Computes the render width and height of the stream based on width, height, and sample_aspect_ratio.

pub const fn temporal_rdo(&self) -> bool[src]

Is temporal RDO enabled ?

Trait Implementations

impl Clone for EncoderConfig[src]

impl Copy for EncoderConfig[src]

impl Debug for EncoderConfig[src]

impl Default for EncoderConfig[src]

Default preset for EncoderConfig: it is a balance between quality and speed. See with_speed_preset().

impl Display for EncoderConfig[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Pointable for T

type Init = T

The type for initializers.

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,