X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;f=nihav-itu%2Fsrc%2Fcodecs%2Fh264%2Fdsp%2Fmc%2Frelease.rs;h=e4e7e16876a9f049ab7e2e341e31230a3d9f391b;hb=93839abd64a4c725e0194a790ffd743dd8c19916;hp=3a43500bb648bcce583d9f32f15c3da021f9f054;hpb=76431444843f6800c20ce046ad2e30a976402c38;p=nihav.git diff --git a/nihav-itu/src/codecs/h264/dsp/mc/release.rs b/nihav-itu/src/codecs/h264/dsp/mc/release.rs index 3a43500..e4e7e16 100644 --- a/nihav-itu/src/codecs/h264/dsp/mc/release.rs +++ b/nihav-itu/src/codecs/h264/dsp/mc/release.rs @@ -204,7 +204,7 @@ fn h264_mc33(dst: &mut [u8], dstride: usize, src: &[u8], sstride: usize, w: usiz } -pub fn chroma_interp(dst: &mut [u8], dstride: usize, src: &[u8], sstride: usize, dx: u16, dy: u16, w: usize, h: usize) { +fn chroma_interp(dst: &mut [u8], dstride: usize, src: &[u8], sstride: usize, dx: u16, dy: u16, w: usize, h: usize) { let a0 = 8 - dx; let a1 = dx; let b0 = 8 - dy; @@ -274,6 +274,18 @@ pub fn chroma_interp(dst: &mut [u8], dstride: usize, src: &[u8], sstride: usize, } } +pub fn chroma_interp_8(dst: &mut [u8], dstride: usize, src: &[u8], sstride: usize, dx: u16, dy: u16, h: usize) { + chroma_interp(dst, dstride, src, sstride, dx, dy, 8, h); +} + +pub fn chroma_interp_4(dst: &mut [u8], dstride: usize, src: &[u8], sstride: usize, dx: u16, dy: u16, h: usize) { + chroma_interp(dst, dstride, src, sstride, dx, dy, 4, h); +} + +pub fn chroma_interp_2(dst: &mut [u8], dstride: usize, src: &[u8], sstride: usize, dx: u16, dy: u16, h: usize) { + chroma_interp(dst, dstride, src, sstride, dx, dy, 2, h); +} + macro_rules! luma_mc { ($orig:ident, $func4:ident, $func8:ident, $func16:ident) => { fn $func4(dst: &mut [u8], dstride: usize, src: &[u8], sstride: usize, h: usize) { @@ -323,3 +335,7 @@ pub const H264_LUMA_INTERP: &[[super::MCFunc; 16]; 3] = &[ h264_mc30_16, h264_mc31_16, h264_mc32_16, h264_mc33_16 ] ]; + +impl super::RegisterSIMD for super::H264MC { + fn register_simd(&mut self) {} +}