From 60b26efe1f67ec85f752045bac7712589120c853 Mon Sep 17 00:00:00 2001 From: Khyber Sen Date: Fri, 22 Sep 2023 01:53:59 -0700 Subject: [PATCH] `fn dav1d_*_{8,16}bpc`: Deduplicate declarations into `use` imports for the remaining bpc `fn`s. --- src/cdef_apply_tmpl_16.rs | 3 +- src/cdef_apply_tmpl_8.rs | 3 +- src/fg_apply_tmpl_16.rs | 3 +- src/fg_apply_tmpl_8.rs | 3 +- src/ipred_prepare_tmpl_16.rs | 3 +- src/ipred_prepare_tmpl_8.rs | 3 +- src/lf_apply_tmpl_16.rs | 13 ++------- src/lf_apply_tmpl_8.rs | 13 ++------- src/lib.rs | 19 ++++--------- src/lr_apply_tmpl_16.rs | 7 +---- src/lr_apply_tmpl_8.rs | 7 +---- src/recon_tmpl_16.rs | 53 ++++-------------------------------- src/recon_tmpl_8.rs | 51 ++++------------------------------ 13 files changed, 32 insertions(+), 149 deletions(-) diff --git a/src/cdef_apply_tmpl_16.rs b/src/cdef_apply_tmpl_16.rs index dcbee6c2d..33babfe02 100644 --- a/src/cdef_apply_tmpl_16.rs +++ b/src/cdef_apply_tmpl_16.rs @@ -155,8 +155,7 @@ unsafe extern "C" fn adjust_strength(strength: c_int, var: c_uint) -> c_int { return strength * (4 + i) + 8 >> 4; } -#[no_mangle] -pub unsafe extern "C" fn dav1d_cdef_brow_16bpc( +pub unsafe fn dav1d_cdef_brow_16bpc( tc: *mut Dav1dTaskContext, p: *const *mut pixel, lflvl: *const Av1Filter, diff --git a/src/cdef_apply_tmpl_8.rs b/src/cdef_apply_tmpl_8.rs index b5dc06f0c..95ff84f3d 100644 --- a/src/cdef_apply_tmpl_8.rs +++ b/src/cdef_apply_tmpl_8.rs @@ -147,8 +147,7 @@ unsafe extern "C" fn adjust_strength(strength: c_int, var: c_uint) -> c_int { return strength * (4 + i) + 8 >> 4; } -#[no_mangle] -pub unsafe extern "C" fn dav1d_cdef_brow_8bpc( +pub unsafe fn dav1d_cdef_brow_8bpc( tc: *mut Dav1dTaskContext, p: *const *mut pixel, lflvl: *const Av1Filter, diff --git a/src/fg_apply_tmpl_16.rs b/src/fg_apply_tmpl_16.rs index fe6e2c9d2..178045d5e 100644 --- a/src/fg_apply_tmpl_16.rs +++ b/src/fg_apply_tmpl_16.rs @@ -332,8 +332,7 @@ pub unsafe fn dav1d_apply_grain_row_16bpc( }; } -#[no_mangle] -pub unsafe extern "C" fn dav1d_apply_grain_16bpc( +pub unsafe fn dav1d_apply_grain_16bpc( dsp: *const Dav1dFilmGrainDSPContext, out: *mut Dav1dPicture, in_0: *const Dav1dPicture, diff --git a/src/fg_apply_tmpl_8.rs b/src/fg_apply_tmpl_8.rs index d77f66515..408ca11c6 100644 --- a/src/fg_apply_tmpl_8.rs +++ b/src/fg_apply_tmpl_8.rs @@ -296,8 +296,7 @@ pub unsafe fn dav1d_apply_grain_row_8bpc( }; } -#[no_mangle] -pub unsafe extern "C" fn dav1d_apply_grain_8bpc( +pub unsafe fn dav1d_apply_grain_8bpc( dsp: *const Dav1dFilmGrainDSPContext, out: *mut Dav1dPicture, in_0: *const Dav1dPicture, diff --git a/src/ipred_prepare_tmpl_16.rs b/src/ipred_prepare_tmpl_16.rs index 0cc766224..5b9126d8e 100644 --- a/src/ipred_prepare_tmpl_16.rs +++ b/src/ipred_prepare_tmpl_16.rs @@ -89,8 +89,7 @@ static mut av1_intra_prediction_edges: [av1_intra_prediction_edge; 14] = needs_left_needs_top_needs_topleft_needs_topright_needs_bottomleft: [0; 1], }; N_IMPL_INTRA_PRED_MODES]; -#[no_mangle] -pub unsafe extern "C" fn dav1d_prepare_intra_edges_16bpc( +pub unsafe fn dav1d_prepare_intra_edges_16bpc( x: c_int, have_left: c_int, y: c_int, diff --git a/src/ipred_prepare_tmpl_8.rs b/src/ipred_prepare_tmpl_8.rs index 863e31f2a..b4d456505 100644 --- a/src/ipred_prepare_tmpl_8.rs +++ b/src/ipred_prepare_tmpl_8.rs @@ -72,8 +72,7 @@ static mut av1_intra_prediction_edges: [av1_intra_prediction_edge; 14] = needs_left_needs_top_needs_topleft_needs_topright_needs_bottomleft: [0; 1], }; N_IMPL_INTRA_PRED_MODES]; -#[no_mangle] -pub unsafe extern "C" fn dav1d_prepare_intra_edges_8bpc( +pub unsafe fn dav1d_prepare_intra_edges_8bpc( x: c_int, have_left: c_int, y: c_int, diff --git a/src/lf_apply_tmpl_16.rs b/src/lf_apply_tmpl_16.rs index 6d98b4dea..bfcbad157 100644 --- a/src/lf_apply_tmpl_16.rs +++ b/src/lf_apply_tmpl_16.rs @@ -156,12 +156,7 @@ unsafe extern "C" fn backup_lpf( }; } -#[no_mangle] -pub unsafe extern "C" fn dav1d_copy_lpf_16bpc( - f: *mut Dav1dFrameContext, - src: *const *mut pixel, - sby: c_int, -) { +pub unsafe fn dav1d_copy_lpf_16bpc(f: *mut Dav1dFrameContext, src: *const *mut pixel, sby: c_int) { let have_tt = ((*(*f).c).n_tc > 1 as c_uint) as c_int; let resize = ((*(*f).frame_hdr).width[0] != (*(*f).frame_hdr).width[1]) as c_int; let offset = 8 * (sby != 0) as c_int; @@ -515,8 +510,7 @@ unsafe extern "C" fn filter_plane_rows_uv( } } -#[no_mangle] -pub unsafe extern "C" fn dav1d_loopfilter_sbrow_cols_16bpc( +pub unsafe fn dav1d_loopfilter_sbrow_cols_16bpc( f: *const Dav1dFrameContext, p: *const *mut pixel, lflvl: *mut Av1Filter, @@ -721,8 +715,7 @@ pub unsafe extern "C" fn dav1d_loopfilter_sbrow_cols_16bpc( } } -#[no_mangle] -pub unsafe extern "C" fn dav1d_loopfilter_sbrow_rows_16bpc( +pub unsafe fn dav1d_loopfilter_sbrow_rows_16bpc( f: *const Dav1dFrameContext, p: *const *mut pixel, lflvl: *mut Av1Filter, diff --git a/src/lf_apply_tmpl_8.rs b/src/lf_apply_tmpl_8.rs index 869570042..2c0906564 100644 --- a/src/lf_apply_tmpl_8.rs +++ b/src/lf_apply_tmpl_8.rs @@ -123,12 +123,7 @@ unsafe extern "C" fn backup_lpf( }; } -#[no_mangle] -pub unsafe extern "C" fn dav1d_copy_lpf_8bpc( - f: *mut Dav1dFrameContext, - src: *const *mut pixel, - sby: c_int, -) { +pub unsafe fn dav1d_copy_lpf_8bpc(f: *mut Dav1dFrameContext, src: *const *mut pixel, sby: c_int) { let have_tt = ((*(*f).c).n_tc > 1 as c_uint) as c_int; let resize = ((*(*f).frame_hdr).width[0] != (*(*f).frame_hdr).width[1]) as c_int; let offset = 8 * (sby != 0) as c_int; @@ -480,8 +475,7 @@ unsafe extern "C" fn filter_plane_rows_uv( } } -#[no_mangle] -pub unsafe extern "C" fn dav1d_loopfilter_sbrow_cols_8bpc( +pub unsafe fn dav1d_loopfilter_sbrow_cols_8bpc( f: *const Dav1dFrameContext, p: *const *mut pixel, lflvl: *mut Av1Filter, @@ -686,8 +680,7 @@ pub unsafe extern "C" fn dav1d_loopfilter_sbrow_cols_8bpc( } } -#[no_mangle] -pub unsafe extern "C" fn dav1d_loopfilter_sbrow_rows_8bpc( +pub unsafe fn dav1d_loopfilter_sbrow_rows_8bpc( f: *const Dav1dFrameContext, p: *const *mut pixel, lflvl: *mut Av1Filter, diff --git a/src/lib.rs b/src/lib.rs index 88681bcd5..e3d81b278 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -35,7 +35,6 @@ use crate::src::data::dav1d_data_unref_internal; use crate::src::data::dav1d_data_wrap_internal; use crate::src::data::dav1d_data_wrap_user_data_internal; use crate::src::decode::dav1d_decode_frame_exit; -use crate::src::filmgrain::Dav1dFilmGrainDSPContext; use crate::src::internal::CodedBlockInfo; use crate::src::internal::Dav1dContext; use crate::src::internal::Dav1dFrameContext; @@ -106,6 +105,12 @@ use std::ffi::c_ulong; use std::ffi::c_void; use std::process::abort; +#[cfg(feature = "bitdepth_8")] +use crate::src::fg_apply_tmpl_8::dav1d_apply_grain_8bpc; + +#[cfg(feature = "bitdepth_16")] +use crate::src::fg_apply_tmpl_16::dav1d_apply_grain_16bpc; + #[cfg(target_os = "linux")] use libc::dlsym; @@ -113,18 +118,6 @@ use libc::dlsym; use libc::sysconf; extern "C" { - #[cfg(feature = "bitdepth_16")] - fn dav1d_apply_grain_16bpc( - dsp: *const Dav1dFilmGrainDSPContext, - out: *mut Dav1dPicture, - in_0: *const Dav1dPicture, - ); - #[cfg(feature = "bitdepth_8")] - fn dav1d_apply_grain_8bpc( - dsp: *const Dav1dFilmGrainDSPContext, - out: *mut Dav1dPicture, - in_0: *const Dav1dPicture, - ); fn pthread_create( __newthread: *mut pthread_t, __attr: *const pthread_attr_t, diff --git a/src/lr_apply_tmpl_16.rs b/src/lr_apply_tmpl_16.rs index b0f566e3d..f206ec7d4 100644 --- a/src/lr_apply_tmpl_16.rs +++ b/src/lr_apply_tmpl_16.rs @@ -267,12 +267,7 @@ unsafe extern "C" fn lr_sbrow( } } -#[no_mangle] -pub unsafe extern "C" fn dav1d_lr_sbrow_16bpc( - f: *mut Dav1dFrameContext, - dst: *const *mut pixel, - sby: c_int, -) { +pub unsafe fn dav1d_lr_sbrow_16bpc(f: *mut Dav1dFrameContext, dst: *const *mut pixel, sby: c_int) { let offset_y = 8 * (sby != 0) as c_int; let dst_stride: *const ptrdiff_t = ((*f).sr_cur.p.stride).as_mut_ptr(); let restore_planes = (*f).lf.restore_planes; diff --git a/src/lr_apply_tmpl_8.rs b/src/lr_apply_tmpl_8.rs index 2ee291377..8a46ffe22 100644 --- a/src/lr_apply_tmpl_8.rs +++ b/src/lr_apply_tmpl_8.rs @@ -257,12 +257,7 @@ unsafe extern "C" fn lr_sbrow( } } -#[no_mangle] -pub unsafe extern "C" fn dav1d_lr_sbrow_8bpc( - f: *mut Dav1dFrameContext, - dst: *const *mut pixel, - sby: c_int, -) { +pub unsafe fn dav1d_lr_sbrow_8bpc(f: *mut Dav1dFrameContext, dst: *const *mut pixel, sby: c_int) { let offset_y = 8 * (sby != 0) as c_int; let dst_stride: *const ptrdiff_t = ((*f).sr_cur.p.stride).as_mut_ptr(); let restore_planes = (*f).lf.restore_planes; diff --git a/src/recon_tmpl_16.rs b/src/recon_tmpl_16.rs index 0be0c070b..2ecef1ac8 100644 --- a/src/recon_tmpl_16.rs +++ b/src/recon_tmpl_16.rs @@ -13,6 +13,7 @@ use crate::include::dav1d::headers::DAV1D_PIXEL_LAYOUT_I400; use crate::include::dav1d::headers::DAV1D_PIXEL_LAYOUT_I420; use crate::include::dav1d::headers::DAV1D_PIXEL_LAYOUT_I444; use crate::include::dav1d::headers::DAV1D_WM_TYPE_TRANSLATION; +use crate::src::cdef_apply_tmpl_16::dav1d_cdef_brow_16bpc; use crate::src::ctx::CaseSet; use crate::src::env::get_uv_inter_txtp; use crate::src::internal::CodedBlockInfo; @@ -27,6 +28,7 @@ use crate::src::intra_edge::EDGE_I444_LEFT_HAS_BOTTOM; use crate::src::intra_edge::EDGE_I444_TOP_HAS_RIGHT; use crate::src::ipred_prepare::sm_flag; use crate::src::ipred_prepare::sm_uv_flag; +use crate::src::ipred_prepare_tmpl_16::dav1d_prepare_intra_edges_16bpc; use crate::src::levels::mv; use crate::src::levels::Av1Block; use crate::src::levels::BlockSize; @@ -58,7 +60,11 @@ use crate::src::levels::TX_CLASS_2D; use crate::src::levels::TX_CLASS_H; use crate::src::levels::TX_CLASS_V; use crate::src::levels::WHT_WHT; +use crate::src::lf_apply_tmpl_16::dav1d_copy_lpf_16bpc; +use crate::src::lf_apply_tmpl_16::dav1d_loopfilter_sbrow_cols_16bpc; +use crate::src::lf_apply_tmpl_16::dav1d_loopfilter_sbrow_rows_16bpc; use crate::src::lf_mask::Av1Filter; +use crate::src::lr_apply_tmpl_16::dav1d_lr_sbrow_16bpc; use crate::src::msac::dav1d_msac_decode_bool_adapt; use crate::src::msac::dav1d_msac_decode_bool_equi; use crate::src::msac::dav1d_msac_decode_bools; @@ -98,52 +104,6 @@ use std::ffi::c_uint; use std::ffi::c_ulong; use std::ffi::c_void; -extern "C" { - fn dav1d_cdef_brow_16bpc( - tc: *mut Dav1dTaskContext, - p: *const *mut pixel, - lflvl: *const Av1Filter, - by_start: c_int, - by_end: c_int, - sbrow_start: c_int, - sby: c_int, - ); - fn dav1d_prepare_intra_edges_16bpc( - x: c_int, - have_left: c_int, - y: c_int, - have_top: c_int, - w: c_int, - h: c_int, - edge_flags: EdgeFlags, - dst: *const pixel, - stride: ptrdiff_t, - prefilter_toplevel_sb_edge: *const pixel, - mode: IntraPredMode, - angle: *mut c_int, - tw: c_int, - th: c_int, - filter_edge: c_int, - topleft_out: *mut pixel, - bitdepth_max: c_int, - ) -> IntraPredMode; - fn dav1d_loopfilter_sbrow_cols_16bpc( - f: *const Dav1dFrameContext, - p: *const *mut pixel, - lflvl: *mut Av1Filter, - sby: c_int, - start_of_tile_row: c_int, - ); - fn dav1d_loopfilter_sbrow_rows_16bpc( - f: *const Dav1dFrameContext, - p: *const *mut pixel, - lflvl: *mut Av1Filter, - sby: c_int, - ); - fn dav1d_copy_lpf_16bpc(f: *mut Dav1dFrameContext, src: *const *mut pixel, sby: c_int); - fn dav1d_lr_sbrow_16bpc(f: *mut Dav1dFrameContext, dst: *const *mut pixel, sby: c_int); -} - pub type pixel = u16; pub type coef = i32; @@ -1527,7 +1487,6 @@ unsafe extern "C" fn read_coef_tree( }; } -#[no_mangle] pub unsafe extern "C" fn dav1d_read_coef_blocks_16bpc( t: *mut Dav1dTaskContext, bs: BlockSize, diff --git a/src/recon_tmpl_8.rs b/src/recon_tmpl_8.rs index a4f3f2ad2..0ea8e7775 100644 --- a/src/recon_tmpl_8.rs +++ b/src/recon_tmpl_8.rs @@ -13,6 +13,7 @@ use crate::include::dav1d::headers::DAV1D_PIXEL_LAYOUT_I400; use crate::include::dav1d::headers::DAV1D_PIXEL_LAYOUT_I420; use crate::include::dav1d::headers::DAV1D_PIXEL_LAYOUT_I444; use crate::include::dav1d::headers::DAV1D_WM_TYPE_TRANSLATION; +use crate::src::cdef_apply_tmpl_8::dav1d_cdef_brow_8bpc; use crate::src::ctx::CaseSet; use crate::src::env::get_uv_inter_txtp; use crate::src::internal::CodedBlockInfo; @@ -27,6 +28,7 @@ use crate::src::intra_edge::EDGE_I444_LEFT_HAS_BOTTOM; use crate::src::intra_edge::EDGE_I444_TOP_HAS_RIGHT; use crate::src::ipred_prepare::sm_flag; use crate::src::ipred_prepare::sm_uv_flag; +use crate::src::ipred_prepare_tmpl_8::dav1d_prepare_intra_edges_8bpc; use crate::src::levels::mv; use crate::src::levels::Av1Block; use crate::src::levels::BlockSize; @@ -58,7 +60,11 @@ use crate::src::levels::TX_CLASS_2D; use crate::src::levels::TX_CLASS_H; use crate::src::levels::TX_CLASS_V; use crate::src::levels::WHT_WHT; +use crate::src::lf_apply_tmpl_8::dav1d_copy_lpf_8bpc; +use crate::src::lf_apply_tmpl_8::dav1d_loopfilter_sbrow_cols_8bpc; +use crate::src::lf_apply_tmpl_8::dav1d_loopfilter_sbrow_rows_8bpc; use crate::src::lf_mask::Av1Filter; +use crate::src::lr_apply_tmpl_8::dav1d_lr_sbrow_8bpc; use crate::src::msac::dav1d_msac_decode_bool_adapt; use crate::src::msac::dav1d_msac_decode_bool_equi; use crate::src::msac::dav1d_msac_decode_bools; @@ -98,51 +104,6 @@ use std::ffi::c_uint; use std::ffi::c_ulong; use std::ffi::c_void; -extern "C" { - fn dav1d_cdef_brow_8bpc( - tc: *mut Dav1dTaskContext, - p: *const *mut pixel, - lflvl: *const Av1Filter, - by_start: c_int, - by_end: c_int, - sbrow_start: c_int, - sby: c_int, - ); - fn dav1d_prepare_intra_edges_8bpc( - x: c_int, - have_left: c_int, - y: c_int, - have_top: c_int, - w: c_int, - h: c_int, - edge_flags: EdgeFlags, - dst: *const pixel, - stride: ptrdiff_t, - prefilter_toplevel_sb_edge: *const pixel, - mode: IntraPredMode, - angle: *mut c_int, - tw: c_int, - th: c_int, - filter_edge: c_int, - topleft_out: *mut pixel, - ) -> IntraPredMode; - fn dav1d_loopfilter_sbrow_cols_8bpc( - f: *const Dav1dFrameContext, - p: *const *mut pixel, - lflvl: *mut Av1Filter, - sby: c_int, - start_of_tile_row: c_int, - ); - fn dav1d_loopfilter_sbrow_rows_8bpc( - f: *const Dav1dFrameContext, - p: *const *mut pixel, - lflvl: *mut Av1Filter, - sby: c_int, - ); - fn dav1d_copy_lpf_8bpc(f: *mut Dav1dFrameContext, src: *const *mut pixel, sby: c_int); - fn dav1d_lr_sbrow_8bpc(f: *mut Dav1dFrameContext, dst: *const *mut pixel, sby: c_int); -} - pub type pixel = u8; pub type coef = i16;