Skip to main content

SwsFlags

Enum SwsFlags 

Source
#[repr(u32)]
pub enum SwsFlags {
Show 19 variants SWS_FAST_BILINEAR = 1, SWS_BILINEAR = 2, SWS_BICUBIC = 4, SWS_X = 8, SWS_POINT = 16, SWS_AREA = 32, SWS_BICUBLIN = 64, SWS_GAUSS = 128, SWS_SINC = 256, SWS_LANCZOS = 512, SWS_SPLINE = 1_024, SWS_STRICT = 2_048, SWS_PRINT_INFO = 4_096, SWS_FULL_CHR_H_INT = 8_192, SWS_FULL_CHR_H_INP = 16_384, SWS_ACCURATE_RND = 262_144, SWS_BITEXACT = 524_288, SWS_DIRECT_BGR = 32_768, SWS_ERROR_DIFFUSION = 8_388_608,
}

Variants§

§

SWS_FAST_BILINEAR = 1

< fast bilinear filtering

§

SWS_BILINEAR = 2

< bilinear filtering

§

SWS_BICUBIC = 4

< 2-tap cubic B-spline

§

SWS_X = 8

< experimental

§

SWS_POINT = 16

< nearest neighbor

§

SWS_AREA = 32

< area averaging

§

SWS_BICUBLIN = 64

< bicubic luma, bilinear chroma

§

SWS_GAUSS = 128

< gaussian approximation

§

SWS_SINC = 256

< unwindowed sinc

§

SWS_LANCZOS = 512

< 3-tap sinc/sinc

§

SWS_SPLINE = 1_024

< cubic Keys spline

§

SWS_STRICT = 2_048

Return an error on underspecified conversions. Without this flag, unspecified fields are defaulted to sensible values.

§

SWS_PRINT_INFO = 4_096

Emit verbose log of scaling parameters.

§

SWS_FULL_CHR_H_INT = 8_192

Perform full chroma upsampling when upscaling to RGB.

For example, when converting 50x50 yuv420p to 100x100 rgba, setting this flag will scale the chroma plane from 25x25 to 100x100 (4:4:4), and then convert the 100x100 yuv444p image to rgba in the final output step.

Without this flag, the chroma plane is instead scaled to 50x100 (4:2:2), with a single chroma sample being reused for both of the horizontally adjacent RGBA output pixels.

§

SWS_FULL_CHR_H_INP = 16_384

Perform full chroma interpolation when downscaling RGB sources.

For example, when converting a 100x100 rgba source to 50x50 yuv444p, setting this flag will generate a 100x100 (4:4:4) chroma plane, which is then downscaled to the required 50x50.

Without this flag, the chroma plane is instead generated at 50x100 (dropping every other pixel), before then being downscaled to the required 50x50 resolution.

§

SWS_ACCURATE_RND = 262_144

Force bit-exact output. This will prevent the use of platform-specific optimizations that may lead to slight difference in rounding, in favor of always maintaining exact bit output compatibility with the reference C code.

Note: It is recommended to set both of these flags simultaneously.

§

SWS_BITEXACT = 524_288

Force bit-exact output. This will prevent the use of platform-specific optimizations that may lead to slight difference in rounding, in favor of always maintaining exact bit output compatibility with the reference C code.

Note: It is recommended to set both of these flags simultaneously.

§

SWS_DIRECT_BGR = 32_768

< This flag has no effect

§

SWS_ERROR_DIFFUSION = 8_388_608

< Set SwsContext.dither instead

Trait Implementations§

Source§

impl Clone for SwsFlags

Source§

fn clone(&self) -> SwsFlags

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for SwsFlags

Source§

impl Debug for SwsFlags

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Eq for SwsFlags

Source§

impl Hash for SwsFlags

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for SwsFlags

Source§

fn eq(&self, other: &SwsFlags) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for SwsFlags

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.