#![deny(unsafe_code)]
#![allow(clippy::undocumented_unsafe_blocks)]
pub mod partial_simd;
pub mod pixel_access;
#[cfg(test)]
pub(crate) fn token_test_lock() -> std::sync::MutexGuard<'static, ()> {
static LOCK: std::sync::Mutex<()> = std::sync::Mutex::new(());
LOCK.lock().unwrap_or_else(|e| e.into_inner())
}
#[cfg(test)]
pub(crate) fn aligned_plane<T: Copy + Default>(
src: &[T],
) -> rav1d_disjoint_mut::align::AlignedVec64<T> {
let mut v = rav1d_disjoint_mut::align::AlignedVec64::<T>::new();
v.resize(src.len(), T::default());
v.copy_from_slice(src);
v
}
pub mod mc;
#[cfg(target_arch = "aarch64")]
pub mod mc_arm;
#[cfg(target_arch = "aarch64")]
pub mod ipred_arm;
#[cfg(target_arch = "aarch64")]
pub mod cdef_arm;
#[cfg(target_arch = "aarch64")]
pub mod loopfilter_arm;
#[cfg(target_arch = "aarch64")]
pub mod looprestoration_arm;
#[cfg(target_arch = "aarch64")]
pub mod itx_arm;
#[cfg(target_arch = "aarch64")]
pub mod itx_arm_hbd;
#[cfg(target_arch = "aarch64")]
mod itx_arm_parity;
#[cfg(target_arch = "aarch64")]
mod mc_arm_prep_parity;
macro_rules! itx_neon_mod {
($name:ident) => {
#[cfg(target_arch = "aarch64")]
#[allow(dead_code)]
pub mod $name;
};
}
itx_neon_mod!(itx_arm_neon_wht);
itx_neon_mod!(itx_arm_neon_common);
itx_neon_mod!(itx_arm_neon_4x4);
itx_neon_mod!(itx_arm_neon_8x8);
itx_neon_mod!(itx_arm_neon_rect);
itx_neon_mod!(itx_arm_neon_16x16);
itx_neon_mod!(itx_arm_neon_32);
itx_neon_mod!(itx_arm_neon_rect_large);
itx_neon_mod!(itx_arm_neon_large_rect);
itx_neon_mod!(itx_arm_neon_64);
pub mod cdef;
#[cfg(target_arch = "wasm32")]
pub mod cdef_wasm;
#[cfg(target_arch = "wasm32")]
pub mod mc_wasm;
#[cfg(target_arch = "wasm32")]
pub mod itx_wasm;
#[cfg(target_arch = "x86_64")]
pub mod itx;
#[cfg(any(target_arch = "x86_64", target_arch = "wasm32"))]
pub mod loopfilter;
#[cfg(target_arch = "x86_64")]
pub mod looprestoration;
#[cfg(target_arch = "x86_64")]
pub mod ipred;
#[cfg(target_arch = "x86_64")]
pub mod filmgrain;
#[cfg(target_arch = "x86_64")]
pub mod pal;
#[cfg(target_arch = "x86_64")]
pub mod refmvs;
#[cfg(target_arch = "aarch64")]
pub mod filmgrain_arm;
#[cfg(target_arch = "aarch64")]
pub mod refmvs_arm;