tb_den: u32,
}
-#[cfg(not(target_arch="x86_64"))]
-fn copy_luma(dst: &mut [u8], dstride: usize, src: &[u8], sstride: usize, w: usize, h: usize) {
+fn copy_luma_default(dst: &mut [u8], dstride: usize, src: &[u8], sstride: usize, w: usize, h: usize) {
for (dline, sline) in dst.chunks_mut(dstride)
.zip(src.chunks(sstride))
.take(h) {
}
}
#[cfg(not(target_arch="x86_64"))]
+fn copy_luma(dst: &mut [u8], dstride: usize, src: &[u8], sstride: usize, w: usize, h: usize) {
+ copy_luma_default(dst, dstride, src, sstride, w, h);
+}
+#[cfg(not(target_arch="x86_64"))]
fn deint_chroma(frm: NASimpleVideoFrame<u8>, src: &[u8], sstride: usize) {
let mut uoff = frm.offset[1];
let mut voff = frm.offset[2];
use std::arch::asm;
#[cfg(target_arch="x86_64")]
fn copy_luma(dst: &mut [u8], dstride: usize, src: &[u8], sstride: usize, w: usize, h: usize) {
+ if !is_x86_feature_detected!("avx") {
+ copy_luma_default(dst, dstride, src, sstride, w, h);
+ return;
+ }
if dst.as_ptr().align_offset(32) == 0 && src.as_ptr().align_offset(32) == 0 &&
(w % 64) == 0 && ((dstride | sstride) % 32) == 0 {
unsafe {