From 1a13d95ab23fd96e556d63caa2f07b630a127a93 Mon Sep 17 00:00:00 2001 From: Nicole LeGare Date: Mon, 11 Mar 2024 14:02:59 -0700 Subject: [PATCH] `Rav1dFrameContext_lf::sr_p`: Make into offsets --- src/decode.rs | 2 +- src/internal.rs | 4 ++-- src/recon.rs | 15 +++++++++------ 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/src/decode.rs b/src/decode.rs index 48ec6ad7e..1996c1715 100644 --- a/src/decode.rs +++ b/src/decode.rs @@ -4615,7 +4615,7 @@ pub(crate) unsafe fn rav1d_decode_frame_init( // at, as long as the offsets are valid. let has_chroma = (f.cur.p.layout != Rav1dPixelLayout::I400) as usize; f.lf.p = array::from_fn(|i| has_chroma * i); - f.lf.sr_p = array::from_fn(|i| f.sr_cur.p.data.data[has_chroma * i].cast()); + f.lf.sr_p = array::from_fn(|i| has_chroma * i); Ok(()) } diff --git a/src/internal.rs b/src/internal.rs index a2eb98429..5a9084b9c 100644 --- a/src/internal.rs +++ b/src/internal.rs @@ -469,8 +469,8 @@ pub struct Rav1dFrameContext_lf { // in-loop filter per-frame state keeping pub start_of_tile_row: *mut u8, pub start_of_tile_row_sz: c_int, - pub p: [usize; 3], // Offsets into `f.cur.data.data`. - pub sr_p: [*mut DynPixel; 3], + pub p: [usize; 3], // Offsets into `f.cur.data.data`. + pub sr_p: [usize; 3], // Offsets into `f.sr_cur.p.data.data`. pub restore_planes: c_int, // enum LrRestorePlanes } diff --git a/src/recon.rs b/src/recon.rs index 43fc3818c..f4a28456b 100644 --- a/src/recon.rs +++ b/src/recon.rs @@ -4671,11 +4671,14 @@ pub(crate) unsafe fn rav1d_filter_sbrow_resize( .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) + f.sr_cur.p.data.data[f.lf.sr_p[0]] + .cast::() .offset((y as isize * BD::pxstride(f.sr_cur.p.stride[0])) as isize), - (f.lf.sr_p[1] as *mut BD::Pixel) + f.sr_cur.p.data.data[f.lf.sr_p[1]] + .cast::() .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) + f.sr_cur.p.data.data[f.lf.sr_p[2]] + .cast::() .offset((y as isize * BD::pxstride(f.sr_cur.p.stride[1]) >> ss_ver) as isize), ]; let has_chroma = @@ -4732,15 +4735,15 @@ pub(crate) unsafe fn rav1d_filter_sbrow_lr( let h = (*f).sr_cur.p.p.h + 127 & !127; let mut sr_p: [&mut [BD::Pixel]; 3] = [ slice::from_raw_parts_mut( - f.lf.sr_p[0] as *mut BD::Pixel, + f.sr_cur.p.data.data[f.lf.sr_p[0]].cast::(), (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, + f.sr_cur.p.data.data[f.lf.sr_p[1]].cast::(), (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, + f.sr_cur.p.data.data[f.lf.sr_p[2]].cast::(), (h as isize * BD::pxstride(f.sr_cur.p.stride[1])) as usize >> ss_ver, ), ];