#[repr(C)]pub struct IDCTDSPContext {
pub put_pixels_clamped: Option<unsafe extern "C" fn(block: *const i16, pixels: *mut u8, line_size: isize)>,
pub put_signed_pixels_clamped: Option<unsafe extern "C" fn(block: *const i16, pixels: *mut u8, line_size: isize)>,
pub add_pixels_clamped: Option<unsafe extern "C" fn(block: *const i16, pixels: *mut u8, line_size: isize)>,
pub idct: Option<unsafe extern "C" fn(block: *mut i16)>,
pub idct_put: Option<unsafe extern "C" fn(dest: *mut u8, line_size: isize, block: *mut i16)>,
pub idct_add: Option<unsafe extern "C" fn(dest: *mut u8, line_size: isize, block: *mut i16)>,
pub idct_permutation: [u8; 64],
pub perm_type: idct_permutation_type,
pub mpeg4_studio_profile: c_int,
}
Fields§
§put_pixels_clamped: Option<unsafe extern "C" fn(block: *const i16, pixels: *mut u8, line_size: isize)>
§put_signed_pixels_clamped: Option<unsafe extern "C" fn(block: *const i16, pixels: *mut u8, line_size: isize)>
§add_pixels_clamped: Option<unsafe extern "C" fn(block: *const i16, pixels: *mut u8, line_size: isize)>
§idct: Option<unsafe extern "C" fn(block: *mut i16)>
§idct_put: Option<unsafe extern "C" fn(dest: *mut u8, line_size: isize, block: *mut i16)>
block -> idct -> clip to unsigned 8 bit -> dest. (-1392, 0, 0, …) -> idct -> (-174, -174, …) -> put -> (0, 0, …) @param line_size size in bytes of a horizontal line of dest
idct_add: Option<unsafe extern "C" fn(dest: *mut u8, line_size: isize, block: *mut i16)>
block -> idct -> add dest -> clip to unsigned 8 bit -> dest. @param line_size size in bytes of a horizontal line of dest
idct_permutation: [u8; 64]
IDCT input permutation.
Several optimized IDCTs need a permutated input (relative to the
normal order of the reference IDCT).
This permutation must be performed before the idct_put/add.
Note, normally this can be merged with the zigzag/alternate scan
An example to avoid confusion:
- (->decode coeffs -> zigzag reorder -> dequant -> reference IDCT -> …)
- (x -> reference DCT -> reference IDCT -> x)
- (x -> reference DCT -> simple_mmx_perm = idct_permutation -> simple_idct_mmx -> x)
- (-> decode coeffs -> zigzag reorder -> simple_mmx_perm -> dequant -> simple_idct_mmx -> …)
perm_type: idct_permutation_type
§mpeg4_studio_profile: c_int
Trait Implementations§
Source§impl Clone for IDCTDSPContext
impl Clone for IDCTDSPContext
Source§fn clone(&self) -> IDCTDSPContext
fn clone(&self) -> IDCTDSPContext
Returns a copy 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 moreimpl Copy for IDCTDSPContext
Auto Trait Implementations§
impl Freeze for IDCTDSPContext
impl RefUnwindSafe for IDCTDSPContext
impl Send for IDCTDSPContext
impl Sync for IDCTDSPContext
impl Unpin for IDCTDSPContext
impl UnwindSafe for IDCTDSPContext
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