Skip to content

Commit

Permalink
Create safe slices from cdef_line_buf
Browse files Browse the repository at this point in the history
  • Loading branch information
rinon committed Apr 18, 2024
1 parent dda4fde commit 5786cb6
Showing 1 changed file with 11 additions and 21 deletions.
32 changes: 11 additions & 21 deletions src/lf_apply.rs
Original file line number Diff line number Diff line change
Expand Up @@ -206,15 +206,11 @@ pub(crate) unsafe fn rav1d_copy_lpf<BD: BitDepth>(
let cdef_off_y: ptrdiff_t = (sby * 4) as isize * BD::pxstride(src_stride[0]);
let cdef_plane_y_sz = 4 * f.sbh as isize * y_stride;
let y_span = cdef_plane_y_sz - y_stride;
let cdef_line_start = (f.lf.cdef_lpf_line[0] as isize + cmp::min(y_span, 0)) as usize;
backup_lpf::<BD>(
c,
slice::from_raw_parts_mut(
cdef_line_buf
.as_mut_ptr()
.add(f.lf.cdef_lpf_line[0])
.offset(cmp::min(y_span, 0)),
cdef_plane_y_sz.unsigned_abs(),
),
&mut cdef_line_buf
[cdef_line_start..cdef_line_start + cdef_plane_y_sz.unsigned_abs()],
(cdef_off_y - cmp::min(y_span, 0)) as usize,
src_stride[0],
src[0],
Expand Down Expand Up @@ -278,15 +274,12 @@ pub(crate) unsafe fn rav1d_copy_lpf<BD: BitDepth>(
if have_tt != 0 && resize != 0 {
let cdef_plane_uv_sz = 4 * f.sbh as isize * uv_stride;
let uv_span = cdef_plane_uv_sz - uv_stride;
let cdef_line_start =
(f.lf.cdef_lpf_line[1] as isize + cmp::min(uv_span, 0)) as usize;
backup_lpf::<BD>(
c,
slice::from_raw_parts_mut(
cdef_line_buf
.as_mut_ptr()
.add(f.lf.cdef_lpf_line[1])
.offset(cmp::min(uv_span, 0)),
cdef_plane_uv_sz.unsigned_abs(),
),
&mut cdef_line_buf
[cdef_line_start..cdef_line_start + cdef_plane_uv_sz.unsigned_abs()],
(cdef_off_uv - cmp::min(uv_span, 0)) as usize,
src_stride[1],
src[1],
Expand Down Expand Up @@ -338,15 +331,12 @@ pub(crate) unsafe fn rav1d_copy_lpf<BD: BitDepth>(
if have_tt != 0 && resize != 0 {
let cdef_plane_uv_sz = 4 * f.sbh as isize * uv_stride;
let uv_span = cdef_plane_uv_sz - uv_stride;
let cdef_line_start =
(f.lf.cdef_lpf_line[2] as isize + cmp::min(uv_span, 0)) as usize;
backup_lpf::<BD>(
c,
slice::from_raw_parts_mut(
cdef_line_buf
.as_mut_ptr()
.add(f.lf.cdef_lpf_line[2])
.offset(cmp::min(uv_span, 0)),
cdef_plane_uv_sz.unsigned_abs(),
),
&mut cdef_line_buf
[cdef_line_start..cdef_line_start + cdef_plane_uv_sz.unsigned_abs()],
(cdef_off_uv - cmp::min(uv_span, 0)) as usize,
src_stride[1],
src[2],
Expand Down

0 comments on commit 5786cb6

Please sign in to comment.