projects
/
nihav.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
aa9bcf7
)
h264/mc: add a stub for using optimised implementations
author
Kostya Shishkov
<kostya.shishkov@gmail.com>
Sat, 27 Aug 2022 09:39:07 +0000
(11:39 +0200)
committer
Kostya Shishkov
<kostya.shishkov@gmail.com>
Mon, 5 Sep 2022 16:25:39 +0000
(18:25 +0200)
nihav-itu/src/codecs/h264/dsp/mc/debug.rs
patch
|
blob
|
blame
|
history
nihav-itu/src/codecs/h264/dsp/mc/mod.rs
patch
|
blob
|
blame
|
history
nihav-itu/src/codecs/h264/dsp/mc/release.rs
patch
|
blob
|
blame
|
history
diff --git
a/nihav-itu/src/codecs/h264/dsp/mc/debug.rs
b/nihav-itu/src/codecs/h264/dsp/mc/debug.rs
index 9f773ac1e35a974acb20fbf0bc843231f28ceddb..34d59daac2af7d587a17a1925ac356274bd9ce36 100644
(file)
--- a/
nihav-itu/src/codecs/h264/dsp/mc/debug.rs
+++ b/
nihav-itu/src/codecs/h264/dsp/mc/debug.rs
@@
-251,3
+251,7
@@
pub const H264_LUMA_INTERP: &[[super::MCFunc; 16]; 3] = &[
h264_mc30_16, h264_mc31_16, h264_mc32_16, h264_mc33_16
]
];
h264_mc30_16, h264_mc31_16, h264_mc32_16, h264_mc33_16
]
];
+
+impl super::RegisterSIMD for super::H264MC {
+ fn register_simd(&mut self) {}
+}
diff --git
a/nihav-itu/src/codecs/h264/dsp/mc/mod.rs
b/nihav-itu/src/codecs/h264/dsp/mc/mod.rs
index 3ed248c85298f1f331b3675627b7122ac07983fb..e2036cc39e2a04da1542f5b7a10427dab62849d0 100644
(file)
--- a/
nihav-itu/src/codecs/h264/dsp/mc/mod.rs
+++ b/
nihav-itu/src/codecs/h264/dsp/mc/mod.rs
@@
-15,6
+15,10
@@
type MCFunc = fn (dst: &mut [u8], dstride: usize, src: &[u8], sstride: usize, h:
fn clip_u8(val: i16) -> u8 { val.max(0).min(255) as u8 }
fn clip_u8(val: i16) -> u8 { val.max(0).min(255) as u8 }
+trait RegisterSIMD {
+ fn register_simd(&mut self);
+}
+
pub struct H264MC {
avg_buf: NAVideoBufferRef<u8>,
pub put_block_weighted: [fn (dst: &mut [u8], stride: usize, src: &[u8], h: usize, wparams: [i8; 3]); 4],
pub struct H264MC {
avg_buf: NAVideoBufferRef<u8>,
pub put_block_weighted: [fn (dst: &mut [u8], stride: usize, src: &[u8], h: usize, wparams: [i8; 3]); 4],
@@
-23,11
+27,13
@@
pub struct H264MC {
impl H264MC {
pub fn new(avg_buf: NAVideoBufferRef<u8>) -> Self {
impl H264MC {
pub fn new(avg_buf: NAVideoBufferRef<u8>) -> Self {
- Self {
+
let mut obj =
Self {
avg_buf,
put_block_weighted: [put_blk_w_2, put_blk_w_4, put_blk_w_8, put_blk_w_16],
put_block_weighted2: [put_blk_w2_2, put_blk_w2_4, put_blk_w2_8, put_blk_w2_16],
avg_buf,
put_block_weighted: [put_blk_w_2, put_blk_w_4, put_blk_w_8, put_blk_w_16],
put_block_weighted2: [put_blk_w2_2, put_blk_w2_4, put_blk_w2_8, put_blk_w2_16],
- }
+ };
+ obj.register_simd();
+ obj
}
pub fn do_mc(&mut self, frm: &mut NASimpleVideoFrame<u8>, refpic: NAVideoBufferRef<u8>, xpos: usize, ypos: usize, w: usize, h: usize, mv: MV) {
let mut ebuf = [0u8; 22 * 22];
}
pub fn do_mc(&mut self, frm: &mut NASimpleVideoFrame<u8>, refpic: NAVideoBufferRef<u8>, xpos: usize, ypos: usize, w: usize, h: usize, mv: MV) {
let mut ebuf = [0u8; 22 * 22];
diff --git
a/nihav-itu/src/codecs/h264/dsp/mc/release.rs
b/nihav-itu/src/codecs/h264/dsp/mc/release.rs
index 3a43500bb648bcce583d9f32f15c3da021f9f054..0a521d025e30fc3e2a0cc914cd2cc81bc00ab4d5 100644
(file)
--- a/
nihav-itu/src/codecs/h264/dsp/mc/release.rs
+++ b/
nihav-itu/src/codecs/h264/dsp/mc/release.rs
@@
-323,3
+323,7
@@
pub const H264_LUMA_INTERP: &[[super::MCFunc; 16]; 3] = &[
h264_mc30_16, h264_mc31_16, h264_mc32_16, h264_mc33_16
]
];
h264_mc30_16, h264_mc31_16, h264_mc32_16, h264_mc33_16
]
];
+
+impl super::RegisterSIMD for super::H264MC {
+ fn register_simd(&mut self) {}
+}