Skip to content

Commit

Permalink
Remove Option from looprestorationfilter_fn
Browse files Browse the repository at this point in the history
  • Loading branch information
randomPoison committed Jul 19, 2023
1 parent 19a0310 commit 766d42e
Show file tree
Hide file tree
Showing 5 changed files with 54 additions and 56 deletions.
24 changes: 11 additions & 13 deletions src/looprestoration.rs
Original file line number Diff line number Diff line change
Expand Up @@ -28,19 +28,17 @@ pub union LooprestorationParams {
type pixel = libc::c_void;
pub type const_left_pixel_row = *const libc::c_void; // *const [pixel; 4]

pub type looprestorationfilter_fn = Option<
unsafe extern "C" fn(
*mut pixel,
ptrdiff_t,
const_left_pixel_row,
*const pixel,
libc::c_int,
libc::c_int,
*const LooprestorationParams,
LrEdgeFlags,
libc::c_int,
) -> (),
>;
pub type looprestorationfilter_fn = unsafe extern "C" fn(
*mut pixel,
ptrdiff_t,
const_left_pixel_row,
*const pixel,
libc::c_int,
libc::c_int,
*const LooprestorationParams,
LrEdgeFlags,
libc::c_int,
) -> ();

#[derive(Copy, Clone)]
#[repr(C)]
Expand Down
38 changes: 19 additions & 19 deletions src/looprestoration_tmpl_16.rs
Original file line number Diff line number Diff line change
Expand Up @@ -952,13 +952,13 @@ unsafe extern "C" fn loop_restoration_dsp_init_x86(
return;
}

(*c).wiener[0] = Some(dav1d_wiener_filter7_16bpc_ssse3);
(*c).wiener[1] = Some(dav1d_wiener_filter5_16bpc_ssse3);
(*c).wiener[0] = dav1d_wiener_filter7_16bpc_ssse3;
(*c).wiener[1] = dav1d_wiener_filter5_16bpc_ssse3;

if bpc == 10 {
(*c).sgr[0] = Some(dav1d_sgr_filter_5x5_16bpc_ssse3);
(*c).sgr[1] = Some(dav1d_sgr_filter_3x3_16bpc_ssse3);
(*c).sgr[2] = Some(dav1d_sgr_filter_mix_16bpc_ssse3);
(*c).sgr[0] = dav1d_sgr_filter_5x5_16bpc_ssse3;
(*c).sgr[1] = dav1d_sgr_filter_3x3_16bpc_ssse3;
(*c).sgr[2] = dav1d_sgr_filter_mix_16bpc_ssse3;
}

#[cfg(target_arch = "x86_64")]
Expand All @@ -967,26 +967,26 @@ unsafe extern "C" fn loop_restoration_dsp_init_x86(
return;
}

(*c).wiener[0] = Some(dav1d_wiener_filter7_16bpc_avx2);
(*c).wiener[1] = Some(dav1d_wiener_filter5_16bpc_avx2);
(*c).wiener[0] = dav1d_wiener_filter7_16bpc_avx2;
(*c).wiener[1] = dav1d_wiener_filter5_16bpc_avx2;

if bpc == 10 {
(*c).sgr[0] = Some(dav1d_sgr_filter_5x5_16bpc_avx2);
(*c).sgr[1] = Some(dav1d_sgr_filter_3x3_16bpc_avx2);
(*c).sgr[2] = Some(dav1d_sgr_filter_mix_16bpc_avx2);
(*c).sgr[0] = dav1d_sgr_filter_5x5_16bpc_avx2;
(*c).sgr[1] = dav1d_sgr_filter_3x3_16bpc_avx2;
(*c).sgr[2] = dav1d_sgr_filter_mix_16bpc_avx2;
}

if flags & DAV1D_X86_CPU_FLAG_AVX512ICL == 0 {
return;
}

(*c).wiener[0] = Some(dav1d_wiener_filter7_16bpc_avx512icl);
(*c).wiener[1] = Some(dav1d_wiener_filter5_16bpc_avx512icl);
(*c).wiener[0] = dav1d_wiener_filter7_16bpc_avx512icl;
(*c).wiener[1] = dav1d_wiener_filter5_16bpc_avx512icl;

if bpc == 10 {
(*c).sgr[0] = Some(dav1d_sgr_filter_5x5_16bpc_avx512icl);
(*c).sgr[1] = Some(dav1d_sgr_filter_3x3_16bpc_avx512icl);
(*c).sgr[2] = Some(dav1d_sgr_filter_mix_16bpc_avx512icl);
(*c).sgr[0] = dav1d_sgr_filter_5x5_16bpc_avx512icl;
(*c).sgr[1] = dav1d_sgr_filter_3x3_16bpc_avx512icl;
(*c).sgr[2] = dav1d_sgr_filter_mix_16bpc_avx512icl;
}
}
}
Expand Down Expand Up @@ -1443,11 +1443,11 @@ pub unsafe extern "C" fn dav1d_loop_restoration_dsp_init_16bpc(
c: *mut Dav1dLoopRestorationDSPContext,
_bpc: libc::c_int,
) {
(*c).wiener[1] = Some(wiener_c);
(*c).wiener[1] = wiener_c;
(*c).wiener[0] = (*c).wiener[1];
(*c).sgr[0] = Some(sgr_5x5_c);
(*c).sgr[1] = Some(sgr_3x3_c);
(*c).sgr[2] = Some(sgr_mix_c);
(*c).sgr[0] = sgr_5x5_c;
(*c).sgr[1] = sgr_3x3_c;
(*c).sgr[2] = sgr_mix_c;

#[cfg(feature = "asm")]
cfg_if! {
Expand Down
40 changes: 20 additions & 20 deletions src/looprestoration_tmpl_8.rs
Original file line number Diff line number Diff line change
Expand Up @@ -919,43 +919,43 @@ unsafe extern "C" fn loop_restoration_dsp_init_x86(
return;
}

(*c).wiener[0] = Some(dav1d_wiener_filter7_8bpc_sse2);
(*c).wiener[1] = Some(dav1d_wiener_filter5_8bpc_sse2);
(*c).wiener[0] = dav1d_wiener_filter7_8bpc_sse2;
(*c).wiener[1] = dav1d_wiener_filter5_8bpc_sse2;

if flags & DAV1D_X86_CPU_FLAG_SSSE3 == 0 {
return;
}

(*c).wiener[0] = Some(dav1d_wiener_filter7_8bpc_ssse3);
(*c).wiener[1] = Some(dav1d_wiener_filter5_8bpc_ssse3);
(*c).wiener[0] = dav1d_wiener_filter7_8bpc_ssse3;
(*c).wiener[1] = dav1d_wiener_filter5_8bpc_ssse3;

(*c).sgr[0] = Some(dav1d_sgr_filter_5x5_8bpc_ssse3);
(*c).sgr[1] = Some(dav1d_sgr_filter_3x3_8bpc_ssse3);
(*c).sgr[2] = Some(dav1d_sgr_filter_mix_8bpc_ssse3);
(*c).sgr[0] = dav1d_sgr_filter_5x5_8bpc_ssse3;
(*c).sgr[1] = dav1d_sgr_filter_3x3_8bpc_ssse3;
(*c).sgr[2] = dav1d_sgr_filter_mix_8bpc_ssse3;

#[cfg(target_arch = "x86_64")]
{
if flags & DAV1D_X86_CPU_FLAG_AVX2 == 0 {
return;
}

(*c).wiener[0] = Some(dav1d_wiener_filter7_8bpc_avx2);
(*c).wiener[1] = Some(dav1d_wiener_filter5_8bpc_avx2);
(*c).wiener[0] = dav1d_wiener_filter7_8bpc_avx2;
(*c).wiener[1] = dav1d_wiener_filter5_8bpc_avx2;

(*c).sgr[0] = Some(dav1d_sgr_filter_5x5_8bpc_avx2);
(*c).sgr[1] = Some(dav1d_sgr_filter_3x3_8bpc_avx2);
(*c).sgr[2] = Some(dav1d_sgr_filter_mix_8bpc_avx2);
(*c).sgr[0] = dav1d_sgr_filter_5x5_8bpc_avx2;
(*c).sgr[1] = dav1d_sgr_filter_3x3_8bpc_avx2;
(*c).sgr[2] = dav1d_sgr_filter_mix_8bpc_avx2;

if flags & DAV1D_X86_CPU_FLAG_AVX512ICL == 0 {
return;
}

(*c).wiener[0] = Some(dav1d_wiener_filter7_8bpc_avx512icl);
(*c).wiener[0] = dav1d_wiener_filter7_8bpc_avx512icl;
(*c).wiener[1] = (*c).wiener[0];

(*c).sgr[0] = Some(dav1d_sgr_filter_5x5_8bpc_avx512icl);
(*c).sgr[1] = Some(dav1d_sgr_filter_3x3_8bpc_avx512icl);
(*c).sgr[2] = Some(dav1d_sgr_filter_mix_8bpc_avx512icl);
(*c).sgr[0] = dav1d_sgr_filter_5x5_8bpc_avx512icl;
(*c).sgr[1] = dav1d_sgr_filter_3x3_8bpc_avx512icl;
(*c).sgr[2] = dav1d_sgr_filter_mix_8bpc_avx512icl;
}
}

Expand Down Expand Up @@ -1387,11 +1387,11 @@ pub unsafe extern "C" fn dav1d_loop_restoration_dsp_init_8bpc(
c: *mut Dav1dLoopRestorationDSPContext,
_bpc: libc::c_int,
) {
(*c).wiener[1] = Some(wiener_c);
(*c).wiener[1] = wiener_c;
(*c).wiener[0] = (*c).wiener[1];
(*c).sgr[0] = Some(sgr_5x5_c);
(*c).sgr[1] = Some(sgr_3x3_c);
(*c).sgr[2] = Some(sgr_mix_c);
(*c).sgr[0] = sgr_5x5_c;
(*c).sgr[1] = sgr_3x3_c;
(*c).sgr[2] = sgr_mix_c;

#[cfg(feature = "asm")]
cfg_if! {
Expand Down
4 changes: 2 additions & 2 deletions src/lr_apply_tmpl_16.rs
Original file line number Diff line number Diff line change
Expand Up @@ -653,7 +653,7 @@ unsafe extern "C" fn lr_stripe(
)
.offset(x as isize);
let mut stripe_h = imin(64 - 8 * (y == 0) as libc::c_int >> ss_ver, row_h - y);
let mut lr_fn: looprestorationfilter_fn = None;
let mut lr_fn: looprestorationfilter_fn;
let mut params: LooprestorationParams = LooprestorationParams {
filter: [[0; 8]; 2].into(),
};
Expand Down Expand Up @@ -714,7 +714,7 @@ unsafe extern "C" fn lr_stripe(
^ edges as libc::c_uint)
& LR_HAVE_BOTTOM as libc::c_int as libc::c_uint,
);
lr_fn.expect("non-null function pointer")(
lr_fn(
p.cast(),
stride,
left.cast(),
Expand Down
4 changes: 2 additions & 2 deletions src/lr_apply_tmpl_8.rs
Original file line number Diff line number Diff line change
Expand Up @@ -628,7 +628,7 @@ unsafe extern "C" fn lr_stripe(
)
.offset(x as isize);
let mut stripe_h = imin(64 - 8 * (y == 0) as libc::c_int >> ss_ver, row_h - y);
let mut lr_fn: looprestorationfilter_fn = None;
let mut lr_fn: looprestorationfilter_fn;
let mut params: LooprestorationParams = LooprestorationParams {
filter: [[0; 8]; 2].into(),
};
Expand Down Expand Up @@ -687,7 +687,7 @@ unsafe extern "C" fn lr_stripe(
^ edges as libc::c_uint)
& LR_HAVE_BOTTOM as libc::c_int as libc::c_uint,
);
lr_fn.expect("non-null function pointer")(
lr_fn(
p.cast(),
stride,
left.cast(),
Expand Down

0 comments on commit 766d42e

Please sign in to comment.