diff --git a/src/lib.rs b/src/lib.rs index 53ef410bc..071238c95 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -605,6 +605,7 @@ impl Rav1dPicture { unsafe fn output_image(c: &mut Rav1dContext, out: &mut Rav1dPicture) -> Rav1dResult { let mut res = Ok(()); + let r#in: *mut Rav1dThreadPicture = if c.all_layers || !c.max_spatial_id { &mut c.out } else { @@ -616,6 +617,7 @@ unsafe fn output_image(c: &mut Rav1dContext, out: &mut Rav1dPicture) -> Rav1dRes res = rav1d_apply_grain(c, out, &(*r#in).p); } rav1d_thread_picture_unref(r#in); + if !c.all_layers && c.max_spatial_id && !(c.out.p.data[0]).is_null() { rav1d_thread_picture_move_ref(r#in, &mut c.out); }