From 58dc72d15fd2fce269e3c5dfb831948a7cb09bb9 Mon Sep 17 00:00:00 2001 From: Frank Bossen Date: Mon, 4 Mar 2024 18:52:52 -0500 Subject: [PATCH] `fn BitDepth::pxstride`: Remove unnecessary casts when invoking --- src/ipred.rs | 54 ++++++------- src/ipred_prepare.rs | 2 +- src/loopfilter.rs | 12 +-- src/looprestoration.rs | 16 ++-- src/lr_apply.rs | 20 +++-- src/mc.rs | 36 ++++----- src/recon.rs | 168 ++++++++++++++++------------------------- 7 files changed, 129 insertions(+), 179 deletions(-) diff --git a/src/ipred.rs b/src/ipred.rs index 8ad17a22f..c4d4d5817 100644 --- a/src/ipred.rs +++ b/src/ipred.rs @@ -221,7 +221,7 @@ unsafe fn splat_dc( x = (x as c_ulong).wrapping_add(::core::mem::size_of::() as c_ulong >> 1) as c_int as c_int; } - dst = dst.offset(BD::pxstride(stride as usize) as isize); + dst = dst.offset(BD::pxstride(stride)); y += 1; } } @@ -248,7 +248,7 @@ unsafe fn cfl_pred( x += 1; } ac = ac.offset(width as isize); - dst = dst.offset(BD::pxstride(stride as usize) as isize); + dst = dst.offset(BD::pxstride(stride)); y += 1; } } @@ -422,7 +422,7 @@ unsafe fn ipred_v_rust( &slice::from_raw_parts(topleft, width + 1)[1..], width, ); - dst = dst.offset(BD::pxstride(stride as usize) as isize); + dst = dst.offset(BD::pxstride(stride)); y += 1; } } @@ -471,7 +471,7 @@ unsafe fn ipred_h_rust( *topleft.offset(-(1 + y) as isize), width, ); - dst = dst.offset(BD::pxstride(stride as usize) as isize); + dst = dst.offset(BD::pxstride(stride)); y += 1; } } @@ -532,7 +532,7 @@ unsafe fn ipred_paeth_rust( .as_::(); x += 1; } - dst = dst.offset(BD::pxstride(stride as usize) as isize); + dst = dst.offset(BD::pxstride(stride)); y += 1; } } @@ -589,7 +589,7 @@ unsafe fn ipred_smooth_rust( *dst.offset(x as isize) = (pred + 256 >> 9).as_::(); x += 1; } - dst = dst.offset(BD::pxstride(stride as usize) as isize); + dst = dst.offset(BD::pxstride(stride)); y += 1; } } @@ -641,7 +641,7 @@ unsafe fn ipred_smooth_v_rust( *dst.offset(x as isize) = (pred + 128 >> 8).as_::(); x += 1; } - dst = dst.offset(BD::pxstride(stride as usize) as isize); + dst = dst.offset(BD::pxstride(stride)); y += 1; } } @@ -693,7 +693,7 @@ unsafe fn ipred_smooth_h_rust( *dst.offset(x as isize) = (pred + 128 >> 8).as_::(); x += 1; } - dst = dst.offset(BD::pxstride(stride as usize) as isize); + dst = dst.offset(BD::pxstride(stride)); y += 1; } } @@ -936,7 +936,7 @@ unsafe fn ipred_z1_rust( } } y += 1; - dst = dst.offset(BD::pxstride(stride as usize) as isize); + dst = dst.offset(BD::pxstride(stride)); xpos += dx; } } @@ -1074,7 +1074,7 @@ unsafe fn ipred_z2_rust( } y += 1; xpos -= dx; - dst = dst.offset(BD::pxstride(stride as usize) as isize); + dst = dst.offset(BD::pxstride(stride)); } } @@ -1154,16 +1154,14 @@ unsafe fn ipred_z3_rust( if base < max_base_y { let v = (*left.offset(-base as isize)).as_::() * (64 - frac) + (*left.offset(-(base + 1) as isize)).as_::() * frac; - *dst.offset( - (y as isize * BD::pxstride(stride as usize) as isize + x as isize) as isize, - ) = (v + 32 >> 6).as_::(); + *dst.offset((y as isize * BD::pxstride(stride) + x as isize) as isize) = + (v + 32 >> 6).as_::(); y += 1; base += base_inc; } else { loop { - *dst.offset( - (y as isize * BD::pxstride(stride as usize) as isize + x as isize) as isize, - ) = *left.offset(-max_base_y as isize); + *dst.offset((y as isize * BD::pxstride(stride) + x as isize) as isize) = + *left.offset(-max_base_y as isize); y += 1; if !(y < height) { break; @@ -1281,17 +1279,17 @@ unsafe fn ipred_filter_rust( xx += 1; flt_ptr = flt_ptr.offset(FLT_INCR); } - ptr = ptr.offset(BD::pxstride(stride as usize) as isize); + ptr = ptr.offset(BD::pxstride(stride)); yy += 1; } left = &mut *dst.offset((x + 4 - 1) as isize) as *mut BD::Pixel; - left_stride = BD::pxstride(stride as usize) as isize; + left_stride = BD::pxstride(stride); top = top.offset(4); topleft = &*top.offset(-(1 as c_int) as isize) as *const BD::Pixel; x += 4 as c_int; } - top = &mut *dst.offset(BD::pxstride(stride as usize) as isize) as *mut BD::Pixel; - dst = &mut *dst.offset((BD::pxstride(stride as usize) * 2) as isize) as *mut BD::Pixel; + top = &mut *dst.offset(BD::pxstride(stride)) as *mut BD::Pixel; + dst = &mut *dst.offset(BD::pxstride(stride) * 2) as *mut BD::Pixel; y += 2 as c_int; } } @@ -1350,15 +1348,11 @@ unsafe fn cfl_ac_rust( ac_sum += (*ypx.offset((x * 2 + 1) as isize)).as_::(); } if ss_ver != 0 { - ac_sum += (*ypx.offset( - ((x << ss_hor) as isize + BD::pxstride(stride as usize) as isize) as isize, - )) - .as_::(); - if ss_hor != 0 { - ac_sum += (*ypx.offset( - ((x * 2 + 1) as isize + BD::pxstride(stride as usize) as isize) as isize, - )) + ac_sum += (*ypx.offset(((x << ss_hor) as isize + BD::pxstride(stride)) as isize)) .as_::(); + if ss_hor != 0 { + ac_sum += (*ypx.offset(((x * 2 + 1) as isize + BD::pxstride(stride)) as isize)) + .as_::(); } } *ac.offset(x as isize) = @@ -1370,7 +1364,7 @@ unsafe fn cfl_ac_rust( x += 1; } ac = ac.offset(width as isize); - ypx = ypx.offset((BD::pxstride(stride as usize) << ss_ver) as isize); + ypx = ypx.offset(BD::pxstride(stride) << ss_ver); y += 1; } while y < height { @@ -1449,7 +1443,7 @@ unsafe fn pal_pred_rust( x += 1; } idx = idx.offset(w as isize); - dst = dst.offset(BD::pxstride(stride as usize) as isize); + dst = dst.offset(BD::pxstride(stride)); y += 1; } } diff --git a/src/ipred_prepare.rs b/src/ipred_prepare.rs index 4f32410f8..3bf581e50 100644 --- a/src/ipred_prepare.rs +++ b/src/ipred_prepare.rs @@ -138,7 +138,7 @@ pub fn rav1d_prepare_intra_edges( assert!(y < h && x < w); let bitdepth = bd.bitdepth(); - let stride = BD::pxstride(stride as usize) as isize; + let stride = BD::pxstride(stride); let dst_offset = 4 * x as usize + (if stride >= 0 { 4 * y } else { 4 * (h - y) - 1 }) as usize * stride.unsigned_abs(); diff --git a/src/loopfilter.rs b/src/loopfilter.rs index 28c77026c..b6bd74d27 100644 --- a/src/loopfilter.rs +++ b/src/loopfilter.rs @@ -775,7 +775,7 @@ unsafe fn loop_filter_h_sb128y_rust( E, I, H, - BD::pxstride(stride as usize) as isize, + BD::pxstride(stride), 1 as c_int as ptrdiff_t, (4 as c_int) << idx, bd, @@ -783,7 +783,7 @@ unsafe fn loop_filter_h_sb128y_rust( } } y <<= 1; - dst = dst.offset(4 * BD::pxstride(stride as usize) as isize); + dst = dst.offset(4 * BD::pxstride(stride)); l = l.offset(b4_stride as isize); } } @@ -844,7 +844,7 @@ unsafe fn loop_filter_v_sb128y_rust( I, H, 1 as c_int as ptrdiff_t, - BD::pxstride(stride as usize) as isize, + BD::pxstride(stride), (4 as c_int) << idx, bd, ); @@ -907,7 +907,7 @@ unsafe fn loop_filter_h_sb128uv_rust( E, I, H, - BD::pxstride(stride as usize) as isize, + BD::pxstride(stride), 1 as c_int as ptrdiff_t, 4 + 2 * idx, bd, @@ -915,7 +915,7 @@ unsafe fn loop_filter_h_sb128uv_rust( } } y <<= 1; - dst = dst.offset(4 * BD::pxstride(stride as usize) as isize); + dst = dst.offset(4 * BD::pxstride(stride)); l = l.offset(b4_stride as isize); } } @@ -972,7 +972,7 @@ unsafe fn loop_filter_v_sb128uv_rust( I, H, 1 as c_int as ptrdiff_t, - BD::pxstride(stride as usize) as isize, + BD::pxstride(stride), 4 + 2 * idx, bd, ); diff --git a/src/looprestoration.rs b/src/looprestoration.rs index 4917cb28b..133e8a97b 100644 --- a/src/looprestoration.rs +++ b/src/looprestoration.rs @@ -146,7 +146,7 @@ unsafe fn padding( stripe_h: usize, edges: LrEdgeFlags, ) { - let stride = BD::pxstride(stride as usize); + let stride = BD::pxstride(stride); let [have_left, have_right, have_top, have_bottom] = [LR_HAVE_LEFT, LR_HAVE_RIGHT, LR_HAVE_TOP, LR_HAVE_BOTTOM] @@ -363,7 +363,7 @@ unsafe fn wiener_rust( sum += z[k * REST_UNIT_STRIDE] as c_int * filter[1][k] as c_int; } - *p.offset(j as isize * BD::pxstride(stride as usize) as isize + i as isize) = + *p.offset(j as isize * BD::pxstride(stride) + i as isize) = iclip(sum + rounding_off_v >> round_bits_v, 0, bd.into_c()).as_(); } } @@ -754,7 +754,7 @@ unsafe fn sgr_5x5_rust( *p.offset(i as isize) = bd.iclip_pixel((*p.offset(i as isize)).as_::() + (v + (1 << 10) >> 11)); } - p = p.offset(BD::pxstride(stride as usize) as isize); + p = p.offset(BD::pxstride(stride)); } } @@ -824,7 +824,7 @@ unsafe fn sgr_3x3_rust( *p.offset(i as isize) = bd.iclip_pixel((*p.offset(i as isize)).as_::() + (v + (1 << 10) >> 11)); } - p = p.offset(BD::pxstride(stride as usize) as isize); + p = p.offset(BD::pxstride(stride)); } } @@ -907,7 +907,7 @@ unsafe fn sgr_mix_rust( *p.offset(i as isize) = bd.iclip_pixel((*p.offset(i as isize)).as_::() + (v + (1 << 10) >> 11)); } - p = p.offset(BD::pxstride(stride as usize) as isize); + p = p.offset(BD::pxstride(stride)); } } @@ -1071,7 +1071,7 @@ unsafe fn wiener_filter_neon( rav1d_wiener_filter_h_neon( &mut mid.0[(2 + h as usize) * mid_stride as usize..], core::ptr::null(), - lpf.offset((6 * BD::pxstride(stride as usize)) as isize), + lpf.offset(6 * BD::pxstride(stride)), stride, filter.offset(0), w as intptr_t, @@ -1202,7 +1202,7 @@ unsafe fn rav1d_sgr_filter1_neon( &mut *sumsq.offset((h * (384 + 16)) as isize), &mut *sum.offset((h * (384 + 16)) as isize), 0 as *const [BD::Pixel; 4], - lpf.offset((6 * BD::pxstride(stride as usize)) as isize), + lpf.offset(6 * BD::pxstride(stride)), stride, w, 2 as c_int, @@ -1323,7 +1323,7 @@ unsafe fn rav1d_sgr_filter2_neon( &mut *sumsq.offset((h * (384 + 16)) as isize), &mut *sum.offset((h * (384 + 16)) as isize), 0 as *const [BD::Pixel; 4], - lpf.offset((6 * BD::pxstride(stride as usize)) as isize), + lpf.offset(6 * BD::pxstride(stride)), stride, w, 2 as c_int, diff --git a/src/lr_apply.rs b/src/lr_apply.rs index 55de086e4..cf764f0ee 100644 --- a/src/lr_apply.rs +++ b/src/lr_apply.rs @@ -47,8 +47,8 @@ unsafe fn lr_stripe( let stride: ptrdiff_t = f.sr_cur.p.stride[chroma as usize]; let sby = y + (if y != 0 { 8 << ss_ver } else { 0 }) >> 6 - ss_ver + seq_hdr.sb128; let have_tt = (c.tc.len() > 1) as c_int; - let lpf_stride = BD::pxstride(stride as usize) as isize; - let lpf_plane_sz = BD::pxstride(f.lf.lr_buf_plane_sz[(plane != 0) as usize] as usize) as isize; + let lpf_stride = BD::pxstride(stride); + let lpf_plane_sz = BD::pxstride(f.lf.lr_buf_plane_sz[(plane != 0) as usize] as isize); let mut lpf_offset = cmp::max(lpf_stride - lpf_plane_sz, 0); let lpf = &slice::from_raw_parts( (f.lf.lr_lpf_line[plane as usize] as *const BD::Pixel).offset(-lpf_offset), @@ -112,7 +112,7 @@ unsafe fn lr_stripe( ); left = &left[stripe_h as usize..]; y += stripe_h; - let p_offset = stripe_h as isize * BD::pxstride(stride as usize) as isize; + let p_offset = stripe_h as isize * BD::pxstride(stride); edges |= LR_HAVE_TOP; stripe_h = cmp::min(64 >> ss_ver, row_h - y); if stripe_h == 0 { @@ -262,8 +262,8 @@ pub(crate) unsafe fn rav1d_lr_sbrow( lr_sbrow::( c, f, - &mut dst[0][dst_offset[0] - - (offset_y as isize * BD::pxstride(dst_stride[0] as usize) as isize) as usize..], + &mut dst[0] + [dst_offset[0] - (offset_y as isize * BD::pxstride(dst_stride[0])) as usize..], y_stripe, w, h, @@ -284,9 +284,8 @@ pub(crate) unsafe fn rav1d_lr_sbrow( lr_sbrow::( c, f, - &mut dst[1][dst_offset[1] - - (offset_uv as isize * BD::pxstride(dst_stride[1] as usize) as isize) - as usize..], + &mut dst[1] + [dst_offset[1] - (offset_uv as isize * BD::pxstride(dst_stride[1])) as usize..], y_stripe, w, h, @@ -298,9 +297,8 @@ pub(crate) unsafe fn rav1d_lr_sbrow( lr_sbrow::( c, f, - &mut dst[2][dst_offset[1] - - (offset_uv as isize * BD::pxstride(dst_stride[1] as usize) as isize) - as usize..], + &mut dst[2] + [dst_offset[1] - (offset_uv as isize * BD::pxstride(dst_stride[1])) as usize..], y_stripe, w, h, diff --git a/src/mc.rs b/src/mc.rs index 0a1675799..cc7061e33 100644 --- a/src/mc.rs +++ b/src/mc.rs @@ -927,7 +927,7 @@ unsafe fn warp_affine_8x8_rust( let intermediate_bits = bd.get_intermediate_bits(); let mut mid: [i16; 120] = [0; 120]; let mut mid_ptr: *mut i16 = mid.as_mut_ptr(); - src = src.offset(-((3 * BD::pxstride(src_stride as usize)) as isize)); + src = src.offset(-3 * BD::pxstride(src_stride)); let mut y = 0; while y < 15 { let mut x = 0; @@ -949,7 +949,7 @@ unsafe fn warp_affine_8x8_rust( x += 1; tmx += *abcd.offset(0) as c_int; } - src = src.offset(BD::pxstride(src_stride as usize) as isize); + src = src.offset(BD::pxstride(src_stride)); mid_ptr = mid_ptr.offset(8); y += 1; mx += *abcd.offset(1) as c_int; @@ -985,7 +985,7 @@ unsafe fn warp_affine_8x8_rust( tmy += *abcd.offset(2) as c_int; } mid_ptr = mid_ptr.offset(8); - dst = dst.offset(BD::pxstride(dst_stride as usize) as isize); + dst = dst.offset(BD::pxstride(dst_stride)); y_0 += 1; my += *abcd.offset(3) as c_int; } @@ -1004,7 +1004,7 @@ unsafe fn warp_affine_8x8t_rust( let intermediate_bits = bd.get_intermediate_bits(); let mut mid: [i16; 120] = [0; 120]; let mut mid_ptr: *mut i16 = mid.as_mut_ptr(); - src = src.offset(-((3 * BD::pxstride(src_stride as usize)) as isize)); + src = src.offset(-3 * BD::pxstride(src_stride)); let mut y = 0; while y < 15 { let mut x = 0; @@ -1026,7 +1026,7 @@ unsafe fn warp_affine_8x8t_rust( x += 1; tmx += *abcd.offset(0) as c_int; } - src = src.offset(BD::pxstride(src_stride as usize) as isize); + src = src.offset(BD::pxstride(src_stride)); mid_ptr = mid_ptr.offset(8); y += 1; mx += *abcd.offset(1) as c_int; @@ -1074,8 +1074,7 @@ unsafe fn emu_edge_rust( ref_stride: ptrdiff_t, ) { r#ref = r#ref.offset( - iclip(y as c_int, 0 as c_int, ih as c_int - 1) as isize - * BD::pxstride(ref_stride as usize) as isize + iclip(y as c_int, 0 as c_int, ih as c_int - 1) as isize * BD::pxstride(ref_stride) + iclip(x as c_int, 0 as c_int, iw as c_int - 1) as isize, ); let left_ext = iclip(-x as c_int, 0 as c_int, bw as c_int - 1); @@ -1089,7 +1088,7 @@ unsafe fn emu_edge_rust( unreachable!(); } let mut blk: *mut BD::Pixel = - dst.offset((top_ext as isize * BD::pxstride(dst_stride as usize) as isize) as isize); + dst.offset((top_ext as isize * BD::pxstride(dst_stride)) as isize); let center_w = (bw - left_ext as isize - right_ext as isize) as c_int; let center_h = (bh - top_ext as isize - bottom_ext as isize) as c_int; let mut y_0 = 0; @@ -1116,11 +1115,11 @@ unsafe fn emu_edge_rust( right_ext as usize, ); } - r#ref = r#ref.offset(BD::pxstride(ref_stride as usize) as isize); - blk = blk.offset(BD::pxstride(dst_stride as usize) as isize); + r#ref = r#ref.offset(BD::pxstride(ref_stride)); + blk = blk.offset(BD::pxstride(dst_stride)); y_0 += 1; } - blk = dst.offset((top_ext as isize * BD::pxstride(dst_stride as usize) as isize) as isize); + blk = dst.offset((top_ext as isize * BD::pxstride(dst_stride)) as isize); let mut y_1 = 0; while y_1 < top_ext { BD::pixel_copy( @@ -1128,21 +1127,18 @@ unsafe fn emu_edge_rust( std::slice::from_raw_parts(blk, bw as usize), bw as usize, ); - dst = dst.offset(BD::pxstride(dst_stride as usize) as isize); + dst = dst.offset(BD::pxstride(dst_stride)); y_1 += 1; } - dst = dst.offset((center_h as isize * BD::pxstride(dst_stride as usize) as isize) as isize); + dst = dst.offset((center_h as isize * BD::pxstride(dst_stride)) as isize); let mut y_2 = 0; while y_2 < bottom_ext { BD::pixel_copy( std::slice::from_raw_parts_mut(dst, bw as usize), - std::slice::from_raw_parts( - dst.offset(-(BD::pxstride(dst_stride as usize) as isize)), - bw as usize, - ), + std::slice::from_raw_parts(dst.offset(-BD::pxstride(dst_stride)), bw as usize), bw as usize, ); - dst = dst.offset(BD::pxstride(dst_stride as usize) as isize); + dst = dst.offset(BD::pxstride(dst_stride)); y_2 += 1; } } @@ -1198,8 +1194,8 @@ unsafe fn resize_rust( mx &= 0x3fff as c_int; x += 1; } - dst = dst.offset(BD::pxstride(dst_stride as usize) as isize); - src = src.offset(BD::pxstride(src_stride as usize) as isize); + dst = dst.offset(BD::pxstride(dst_stride)); + src = src.offset(BD::pxstride(src_stride)); h -= 1; if !(h != 0) { break; diff --git a/src/recon.rs b/src/recon.rs index 69df46acd..e9f9828fb 100644 --- a/src/recon.rs +++ b/src/recon.rs @@ -1675,8 +1675,7 @@ unsafe fn read_coef_tree( (*t).by += txsh; if txh >= txw && (*t).by < f.bh { if !dst.is_null() { - dst = dst - .offset((4 * txsh) as isize * BD::pxstride(f.cur.stride[0] as usize) as isize); + dst = dst.offset((4 * txsh) as isize * BD::pxstride(f.cur.stride[0])); } read_coef_tree::( f, @@ -2134,7 +2133,7 @@ unsafe fn mc( as ptrdiff_t; } else { r#ref = ((*refp).p.data.data[pl as usize] as *mut BD::Pixel) - .offset(BD::pxstride(ref_stride as usize) as isize * dy as isize) + .offset(BD::pxstride(ref_stride) * dy as isize) .offset(dx as isize); } if !dst8.is_null() { @@ -2227,7 +2226,7 @@ unsafe fn mc( } } else { r#ref = ((*refp).p.data.data[pl as usize] as *mut BD::Pixel) - .offset(BD::pxstride(ref_stride as usize) as isize * top as isize) + .offset(BD::pxstride(ref_stride) * top as isize) .offset(left as isize); } if !dst8.is_null() { @@ -2378,7 +2377,7 @@ unsafe fn obmc( return res; } ((*f.dsp).mc.blend_v)( - dst.offset((y * v_mul) as isize * BD::pxstride(dst_stride as usize) as isize) + dst.offset((y * v_mul) as isize * BD::pxstride(dst_stride)) .cast(), dst_stride, lap.cast(), @@ -2468,7 +2467,7 @@ unsafe fn warp_affine( as ptrdiff_t; } else { ref_ptr = ((*refp).p.data.data[pl as usize] as *mut BD::Pixel) - .offset((BD::pxstride(ref_stride as usize) as isize * dy as isize) as isize) + .offset((BD::pxstride(ref_stride) * dy as isize) as isize) .offset(dx as isize); } if !dst16.is_null() { @@ -2497,7 +2496,7 @@ unsafe fn warp_affine( x += 8 as c_int; } if !dst8.is_null() { - dst8 = dst8.offset(8 * BD::pxstride(dstride as usize) as isize); + dst8 = dst8.offset(8 * BD::pxstride(dstride)); } else { dst16 = dst16.offset((8 * dstride) as isize); } @@ -2550,8 +2549,7 @@ pub(crate) unsafe fn rav1d_recon_b_intra( while init_x < w4 { if b.c2rust_unnamed.c2rust_unnamed.pal_sz[0] != 0 { let dst: *mut BD::Pixel = (f.cur.data.data[0] as *mut BD::Pixel).offset( - (4 * (t.by as isize * BD::pxstride(f.cur.stride[0] as usize) as isize - + t.bx as isize)) as isize, + (4 * (t.by as isize * BD::pxstride(f.cur.stride[0]) + t.bx as isize)) as isize, ); let pal_idx: *const u8; if t.frame_thread.pass != 0 { @@ -2615,7 +2613,7 @@ pub(crate) unsafe fn rav1d_recon_b_intra( t.by += init_y; while y < sub_h4 { let mut dst: *mut BD::Pixel = (f.cur.data.data[0] as *mut BD::Pixel).offset( - (4 * (t.by as isize * BD::pxstride(f.cur.stride[0] as usize) as isize + (4 * (t.by as isize * BD::pxstride(f.cur.stride[0]) + t.bx as isize + init_x as isize)) as isize, ); @@ -2648,7 +2646,7 @@ pub(crate) unsafe fn rav1d_recon_b_intra( BD::select_mut(&mut t.scratch.c2rust_unnamed_0.interintra_edge); let edge_array = &mut interintra_edge.0.edge; let edge_offset = 128; - let data_stride = BD::pxstride(f.cur.stride[0] as usize) as isize; + let data_stride = BD::pxstride(f.cur.stride[0]); let data_width = 4 * (*ts).tiling.col_end; let data_height = 4 * (*ts).tiling.row_end; let data_diff = (data_height - 1) as isize * data_stride; @@ -2833,7 +2831,7 @@ pub(crate) unsafe fn rav1d_recon_b_intra( ); let uv_off: ptrdiff_t = 4 * ((t.bx >> ss_hor) as isize - + (t.by >> ss_ver) as isize * BD::pxstride(stride as usize) as isize); + + (t.by >> ss_ver) as isize * BD::pxstride(stride)); let uv_dst: [*mut BD::Pixel; 2] = [ (f.cur.data.data[1] as *mut BD::Pixel).offset(uv_off as isize), (f.cur.data.data[2] as *mut BD::Pixel).offset(uv_off as isize), @@ -2873,7 +2871,7 @@ pub(crate) unsafe fn rav1d_recon_b_intra( BD::select_mut(&mut t.scratch.c2rust_unnamed_0.interintra_edge); let edge_array = &mut interintra_edge.0.edge; let edge_offset = 128; - let data_stride = BD::pxstride(f.cur.stride[1] as usize) as isize; + let data_stride = BD::pxstride(f.cur.stride[1]); let data_width = 4 * (*ts).tiling.col_end >> ss_hor; let data_height = 4 * (*ts).tiling.row_end >> ss_ver; let data_diff = (data_height - 1) as isize * data_stride; @@ -2936,8 +2934,7 @@ pub(crate) unsafe fn rav1d_recon_b_intra( } else if b.c2rust_unnamed.c2rust_unnamed.pal_sz[1] != 0 { let uv_dstoff: ptrdiff_t = 4 * ((t.bx >> ss_hor) as isize - + (t.by >> ss_ver) as isize - * BD::pxstride(f.cur.stride[1] as usize) as isize); + + (t.by >> ss_ver) as isize * BD::pxstride(f.cur.stride[1])); let pal: *const [u16; 8]; let pal_idx: *const u8; if t.frame_thread.pass != 0 { @@ -3017,8 +3014,7 @@ pub(crate) unsafe fn rav1d_recon_b_intra( while y < sub_ch4 { let mut dst: *mut BD::Pixel = (f.cur.data.data[(1 + pl) as usize] as *mut BD::Pixel).offset( - (4 * ((t.by >> ss_ver) as isize - * BD::pxstride(stride as usize) as isize + (4 * ((t.by >> ss_ver) as isize * BD::pxstride(stride) + (t.bx + init_x >> ss_hor) as isize)) as isize, ); @@ -3081,7 +3077,7 @@ pub(crate) unsafe fn rav1d_recon_b_intra( BD::select_mut(&mut t.scratch.c2rust_unnamed_0.interintra_edge); let edge_array = &mut interintra_edge.0.edge; let edge_offset = 128; - let data_stride = BD::pxstride(f.cur.stride[1] as usize) as isize; + let data_stride = BD::pxstride(f.cur.stride[1]); let data_width = 4 * (*ts).tiling.col_end >> ss_hor; let data_height = 4 * (*ts).tiling.row_end >> ss_ver; let data_diff = (data_height - 1) as isize * data_stride; @@ -3306,13 +3302,10 @@ pub(crate) unsafe fn rav1d_recon_b_inter( let mut res; let cbh4 = bh4 + ss_ver >> ss_ver; let cbw4 = bw4 + ss_hor >> ss_hor; - let mut dst: *mut BD::Pixel = (f.cur.data.data[0] as *mut BD::Pixel).offset( - (4 * (t.by as isize * BD::pxstride(f.cur.stride[0] as usize) as isize + t.bx as isize)) - as isize, - ); - let uvdstoff: ptrdiff_t = 4 - * ((t.bx >> ss_hor) as isize - + (t.by >> ss_ver) as isize * BD::pxstride(f.cur.stride[1] as usize) as isize); + let mut dst: *mut BD::Pixel = (f.cur.data.data[0] as *mut BD::Pixel) + .offset((4 * (t.by as isize * BD::pxstride(f.cur.stride[0]) + t.bx as isize)) as isize); + let uvdstoff: ptrdiff_t = + 4 * ((t.bx >> ss_hor) as isize + (t.by >> ss_ver) as isize * BD::pxstride(f.cur.stride[1])); let frame_hdr = &***f.frame_hdr.as_ref().unwrap(); if frame_hdr.frame_type.is_key_or_intra() { if frame_hdr.size.super_res.enabled != 0 { @@ -3474,7 +3467,7 @@ pub(crate) unsafe fn rav1d_recon_b_inter( } else { None }; - let data_stride = BD::pxstride(f.cur.stride[0] as usize) as isize; + let data_stride = BD::pxstride(f.cur.stride[0]); let data_width = 4 * (*ts).tiling.col_end; let data_height = 4 * (*ts).tiling.row_end; let data_diff = (data_height - 1) as isize * data_stride; @@ -3626,7 +3619,7 @@ pub(crate) unsafe fn rav1d_recon_b_inter( } pl += 1; } - v_off = 2 * BD::pxstride(f.cur.stride[1] as usize) as isize; + v_off = 2 * BD::pxstride(f.cur.stride[1]); h_off = 2 as c_int as ptrdiff_t; } if bw4 == 1 { @@ -3728,7 +3721,7 @@ pub(crate) unsafe fn rav1d_recon_b_inter( } pl += 1; } - v_off = 2 * BD::pxstride(f.cur.stride[1] as usize) as isize; + v_off = 2 * BD::pxstride(f.cur.stride[1]); } let mut pl = 0; while pl < 2 { @@ -3902,7 +3895,7 @@ pub(crate) unsafe fn rav1d_recon_b_inter( } else { None }; - let data_stride = BD::pxstride(f.cur.stride[1] as usize) as isize; + let data_stride = BD::pxstride(f.cur.stride[1]); let data_width = 4 * (*ts).tiling.col_end >> ss_hor; let data_height = 4 * (*ts).tiling.row_end >> ss_ver; let data_diff = (data_height - 1) as isize * data_stride; @@ -4330,9 +4323,7 @@ pub(crate) unsafe fn rav1d_recon_b_inter( while init_x < bw4 { let mut y_off = (init_y != 0) as c_int; let mut y; - dst = dst.offset( - (BD::pxstride(f.cur.stride[0] as usize) as isize * 4 * init_y as isize) as isize, - ); + dst = dst.offset((BD::pxstride(f.cur.stride[0]) * 4 * init_y as isize) as isize); y = init_y; t.by += init_y; while y < cmp::min(h4, init_y + 16) { @@ -4357,18 +4348,13 @@ pub(crate) unsafe fn rav1d_recon_b_inter( x += (*ytx).w as c_int; x_off += 1; } - dst = dst.offset( - (BD::pxstride(f.cur.stride[0] as usize) as isize * 4 * (*ytx).h as isize) - as isize, - ); + dst = dst.offset((BD::pxstride(f.cur.stride[0]) * 4 * (*ytx).h as isize) as isize); t.bx -= x; t.by += (*ytx).h as c_int; y += (*ytx).h as c_int; y_off += 1; } - dst = dst.offset( - -((BD::pxstride(f.cur.stride[0] as usize) as isize * 4 * y as isize) as isize), - ); + dst = dst.offset(-((BD::pxstride(f.cur.stride[0]) * 4 * y as isize) as isize)); t.by -= y; if has_chroma != 0 { let mut pl = 0; @@ -4377,8 +4363,8 @@ pub(crate) unsafe fn rav1d_recon_b_inter( as *mut BD::Pixel) .offset(uvdstoff as isize) .offset( - (BD::pxstride(f.cur.stride[1] as usize) as isize * init_y as isize * 4 - >> ss_ver) as isize, + (BD::pxstride(f.cur.stride[1]) * init_y as isize * 4 >> ss_ver) + as isize, ); y = init_y >> ss_ver; t.by += init_y; @@ -4479,9 +4465,7 @@ pub(crate) unsafe fn rav1d_recon_b_inter( x += (*uvtx).w as c_int; } uvdst = uvdst.offset( - (BD::pxstride(f.cur.stride[1] as usize) as isize - * 4 - * (*uvtx).h as isize) as isize, + (BD::pxstride(f.cur.stride[1]) * 4 * (*uvtx).h as isize) as isize, ); t.bx -= x << ss_hor; t.by += ((*uvtx).h as c_int) << ss_ver; @@ -4513,14 +4497,11 @@ pub(crate) unsafe fn rav1d_filter_sbrow_deblock_cols( let y = sby * f.sb_step * 4; let ss_ver = (f.cur.p.layout as c_uint == Rav1dPixelLayout::I420 as c_int as c_uint) as c_int; let p: [*mut BD::Pixel; 3] = [ - (f.lf.p[0] as *mut BD::Pixel) - .offset((y as isize * BD::pxstride(f.cur.stride[0] as usize) as isize) as isize), - (f.lf.p[1] as *mut BD::Pixel).offset( - (y as isize * BD::pxstride(f.cur.stride[1] as usize) as isize >> ss_ver) as isize, - ), - (f.lf.p[2] as *mut BD::Pixel).offset( - (y as isize * BD::pxstride(f.cur.stride[1] as usize) as isize >> ss_ver) as isize, - ), + (f.lf.p[0] as *mut BD::Pixel).offset((y as isize * BD::pxstride(f.cur.stride[0])) as isize), + (f.lf.p[1] as *mut BD::Pixel) + .offset((y as isize * BD::pxstride(f.cur.stride[1]) >> ss_ver) as isize), + (f.lf.p[2] as *mut BD::Pixel) + .offset((y as isize * BD::pxstride(f.cur.stride[1]) >> ss_ver) as isize), ]; let seq_hdr = &***f.seq_hdr.as_ref().unwrap(); let mask_offset = (sby >> (seq_hdr.sb128 == 0) as c_int) * f.sb128w; @@ -4542,14 +4523,11 @@ pub(crate) unsafe fn rav1d_filter_sbrow_deblock_rows( let y = sby * f.sb_step * 4; let ss_ver = (f.cur.p.layout as c_uint == Rav1dPixelLayout::I420 as c_int as c_uint) as c_int; let p: [*mut BD::Pixel; 3] = [ - (f.lf.p[0] as *mut BD::Pixel) - .offset((y as isize * BD::pxstride(f.cur.stride[0] as usize) as isize) as isize), - (f.lf.p[1] as *mut BD::Pixel).offset( - (y as isize * BD::pxstride(f.cur.stride[1] as usize) as isize >> ss_ver) as isize, - ), - (f.lf.p[2] as *mut BD::Pixel).offset( - (y as isize * BD::pxstride(f.cur.stride[1] as usize) as isize >> ss_ver) as isize, - ), + (f.lf.p[0] as *mut BD::Pixel).offset((y as isize * BD::pxstride(f.cur.stride[0])) as isize), + (f.lf.p[1] as *mut BD::Pixel) + .offset((y as isize * BD::pxstride(f.cur.stride[1]) >> ss_ver) as isize), + (f.lf.p[2] as *mut BD::Pixel) + .offset((y as isize * BD::pxstride(f.cur.stride[1]) >> ss_ver) as isize), ]; let seq_hdr = &***f.seq_hdr.as_ref().unwrap(); let sb128 = seq_hdr.sb128; @@ -4579,14 +4557,11 @@ pub(crate) unsafe fn rav1d_filter_sbrow_cdef( let y = sby * sbsz * 4; let ss_ver = (f.cur.p.layout as c_uint == Rav1dPixelLayout::I420 as c_int as c_uint) as c_int; let p: [*mut BD::Pixel; 3] = [ - (f.lf.p[0] as *mut BD::Pixel) - .offset((y as isize * BD::pxstride(f.cur.stride[0] as usize) as isize) as isize), - (f.lf.p[1] as *mut BD::Pixel).offset( - (y as isize * BD::pxstride(f.cur.stride[1] as usize) as isize >> ss_ver) as isize, - ), - (f.lf.p[2] as *mut BD::Pixel).offset( - (y as isize * BD::pxstride(f.cur.stride[1] as usize) as isize >> ss_ver) as isize, - ), + (f.lf.p[0] as *mut BD::Pixel).offset((y as isize * BD::pxstride(f.cur.stride[0])) as isize), + (f.lf.p[1] as *mut BD::Pixel) + .offset((y as isize * BD::pxstride(f.cur.stride[1]) >> ss_ver) as isize), + (f.lf.p[2] as *mut BD::Pixel) + .offset((y as isize * BD::pxstride(f.cur.stride[1]) >> ss_ver) as isize), ]; let seq_hdr = &***f.seq_hdr.as_ref().unwrap(); let prev_mask = (sby - 1 >> (seq_hdr.sb128 == 0) as c_int) * f.sb128w; @@ -4596,13 +4571,9 @@ pub(crate) unsafe fn rav1d_filter_sbrow_cdef( let ss_ver = (f.cur.p.layout as c_uint == Rav1dPixelLayout::I420 as c_int as c_uint) as c_int; let p_up: [*mut BD::Pixel; 3] = [ - (p[0]).offset(-((8 * BD::pxstride(f.cur.stride[0] as usize) as isize) as isize)), - (p[1]).offset( - -((8 * BD::pxstride(f.cur.stride[1] as usize) as isize >> ss_ver) as isize), - ), - (p[2]).offset( - -((8 * BD::pxstride(f.cur.stride[1] as usize) as isize >> ss_ver) as isize), - ), + (p[0]).offset(-((8 * BD::pxstride(f.cur.stride[0])) as isize)), + (p[1]).offset(-((8 * BD::pxstride(f.cur.stride[1]) >> ss_ver) as isize)), + (p[2]).offset(-((8 * BD::pxstride(f.cur.stride[1]) >> ss_ver) as isize)), ]; rav1d_cdef_brow::(c, tc, f, &p_up, prev_mask, start - 2, start, true, sby); } @@ -4622,22 +4593,17 @@ pub(crate) unsafe fn rav1d_filter_sbrow_resize( let y = sby * sbsz * 4; let ss_ver = (f.cur.p.layout as c_uint == Rav1dPixelLayout::I420 as c_int as c_uint) as c_int; let p: [*const BD::Pixel; 3] = [ - (f.lf.p[0] as *mut BD::Pixel) - .offset(y as isize * BD::pxstride(f.cur.stride[0] as usize) as isize), - (f.lf.p[1] as *mut BD::Pixel) - .offset(y as isize * BD::pxstride(f.cur.stride[1] as usize) as isize >> ss_ver), - (f.lf.p[2] as *mut BD::Pixel) - .offset(y as isize * BD::pxstride(f.cur.stride[1] as usize) as isize >> ss_ver), + (f.lf.p[0] as *mut BD::Pixel).offset(y as isize * BD::pxstride(f.cur.stride[0])), + (f.lf.p[1] as *mut BD::Pixel).offset(y as isize * BD::pxstride(f.cur.stride[1]) >> ss_ver), + (f.lf.p[2] as *mut BD::Pixel).offset(y as isize * BD::pxstride(f.cur.stride[1]) >> ss_ver), ]; let sr_p: [*mut BD::Pixel; 3] = [ (f.lf.sr_p[0] as *mut BD::Pixel) - .offset((y as isize * BD::pxstride(f.sr_cur.p.stride[0] as usize) as isize) as isize), - (f.lf.sr_p[1] as *mut BD::Pixel).offset( - (y as isize * BD::pxstride(f.sr_cur.p.stride[1] as usize) as isize >> ss_ver) as isize, - ), - (f.lf.sr_p[2] as *mut BD::Pixel).offset( - (y as isize * BD::pxstride(f.sr_cur.p.stride[1] as usize) as isize >> ss_ver) as isize, - ), + .offset((y as isize * BD::pxstride(f.sr_cur.p.stride[0])) as isize), + (f.lf.sr_p[1] as *mut BD::Pixel) + .offset((y as isize * BD::pxstride(f.sr_cur.p.stride[1]) >> ss_ver) as isize), + (f.lf.sr_p[2] as *mut BD::Pixel) + .offset((y as isize * BD::pxstride(f.sr_cur.p.stride[1]) >> ss_ver) as isize), ]; let has_chroma = (f.cur.p.layout as c_uint != Rav1dPixelLayout::I400 as c_int as c_uint) as c_int; @@ -4648,11 +4614,11 @@ pub(crate) unsafe fn rav1d_filter_sbrow_resize( as c_int; let h_start = 8 * (sby != 0) as c_int >> ss_ver; let dst_stride: ptrdiff_t = f.sr_cur.p.stride[(pl != 0) as c_int as usize]; - let dst: *mut BD::Pixel = (sr_p[pl as usize]) - .offset(-((h_start as isize * BD::pxstride(dst_stride as usize) as isize) as isize)); + let dst: *mut BD::Pixel = + (sr_p[pl as usize]).offset(-((h_start as isize * BD::pxstride(dst_stride)) as isize)); let src_stride: ptrdiff_t = f.cur.stride[(pl != 0) as c_int as usize]; - let src: *const BD::Pixel = (p[pl as usize]) - .offset(-(h_start as isize * BD::pxstride(src_stride as usize) as isize)); + let src: *const BD::Pixel = + (p[pl as usize]).offset(-(h_start as isize * BD::pxstride(src_stride))); let h_end = 4 * (sbsz - 2 * ((sby + 1) < f.sbh) as c_int) >> ss_ver; let ss_hor = (pl != 0 && f.cur.p.layout as c_uint != Rav1dPixelLayout::I444 as c_int as c_uint) @@ -4694,20 +4660,20 @@ pub(crate) unsafe fn rav1d_filter_sbrow_lr( let mut sr_p: [&mut [BD::Pixel]; 3] = [ slice::from_raw_parts_mut( f.lf.sr_p[0] as *mut BD::Pixel, - (h as isize * BD::pxstride(f.sr_cur.p.stride[0] as usize) as isize) as usize, + (h as isize * BD::pxstride(f.sr_cur.p.stride[0])) as usize, ), slice::from_raw_parts_mut( f.lf.sr_p[1] as *mut BD::Pixel, - (h as isize * BD::pxstride(f.sr_cur.p.stride[1] as usize) as isize) as usize >> ss_ver, + (h as isize * BD::pxstride(f.sr_cur.p.stride[1])) as usize >> ss_ver, ), slice::from_raw_parts_mut( f.lf.sr_p[2] as *mut BD::Pixel, - (h as isize * BD::pxstride(f.sr_cur.p.stride[1] as usize) as isize) as usize >> ss_ver, + (h as isize * BD::pxstride(f.sr_cur.p.stride[1])) as usize >> ss_ver, ), ]; let sr_p_offset: [usize; 2] = [ - (y as isize * BD::pxstride(f.sr_cur.p.stride[0] as usize) as isize) as usize, - (y as isize * BD::pxstride(f.sr_cur.p.stride[1] as usize) as isize >> ss_ver) as usize, + (y as isize * BD::pxstride(f.sr_cur.p.stride[0])) as usize, + (y as isize * BD::pxstride(f.sr_cur.p.stride[1]) >> ss_ver) as usize, ]; rav1d_lr_sbrow::(c, f, &mut sr_p, &sr_p_offset, sby); } @@ -4743,10 +4709,7 @@ pub(crate) unsafe fn rav1d_backup_ipred_edge( let x_off = (*ts).tiling.col_start; let y: *const BD::Pixel = (f.cur.data.data[0] as *const BD::Pixel) .offset((x_off * 4) as isize) - .offset( - (((t.by + f.sb_step) * 4 - 1) as isize - * BD::pxstride(f.cur.stride[0] as usize) as isize) as isize, - ); + .offset((((t.by + f.sb_step) * 4 - 1) as isize * BD::pxstride(f.cur.stride[0])) as isize); BD::pixel_copy( &mut slice::from_raw_parts_mut( f.ipred_edge[0].cast(), @@ -4763,8 +4726,7 @@ pub(crate) unsafe fn rav1d_backup_ipred_edge( let ss_hor = (f.cur.p.layout as c_uint != Rav1dPixelLayout::I444 as c_int as c_uint) as c_int; let uv_off: ptrdiff_t = (x_off * 4 >> ss_hor) as isize - + (((t.by + f.sb_step) * 4 >> ss_ver) - 1) as isize - * BD::pxstride(f.cur.stride[1] as usize) as isize; + + (((t.by + f.sb_step) * 4 >> ss_ver) - 1) as isize * BD::pxstride(f.cur.stride[1]); let mut pl = 1; while pl <= 2 { BD::pixel_copy(