From c3d4ed29babce2fdd324b40fcf31652c16ab41c4 Mon Sep 17 00:00:00 2001 From: Folkert Date: Tue, 5 Mar 2024 23:28:49 +0100 Subject: [PATCH] make `allow_intrabc` a `bool` --- include/dav1d/headers.rs | 6 +++--- src/decode.rs | 14 +++++++------- src/obu.rs | 21 ++++++++++----------- 3 files changed, 20 insertions(+), 21 deletions(-) diff --git a/include/dav1d/headers.rs b/include/dav1d/headers.rs index 36362660a..f2566ee4b 100644 --- a/include/dav1d/headers.rs +++ b/include/dav1d/headers.rs @@ -2286,7 +2286,7 @@ pub struct Rav1dFrameHeader { pub buffer_removal_time_present: c_int, pub operating_points: [Rav1dFrameHeaderOperatingPoint; RAV1D_MAX_OPERATING_POINTS], pub refresh_frame_flags: c_int, - pub allow_intrabc: c_int, + pub allow_intrabc: bool, pub frame_ref_short_signaling: c_int, pub refidx: [c_int; RAV1D_REFS_PER_FRAME], pub hp: bool, @@ -2393,7 +2393,7 @@ impl From for Rav1dFrameHeader { buffer_removal_time_present, operating_points: operating_points.map(|c| c.into()), refresh_frame_flags, - allow_intrabc, + allow_intrabc: allow_intrabc != 0, frame_ref_short_signaling, refidx, hp: hp != 0, @@ -2510,7 +2510,7 @@ impl From for Dav1dFrameHeader { render_height, super_res: super_res.into(), have_render_size, - allow_intrabc, + allow_intrabc: allow_intrabc.into(), frame_ref_short_signaling, refidx, hp: hp.into(), diff --git a/src/decode.rs b/src/decode.rs index 1394ed210..5d07c0fb2 100644 --- a/src/decode.rs +++ b/src/decode.rs @@ -1905,7 +1905,7 @@ unsafe fn decode_b_inner( println!("Post-intra[{}]: r={}", b.intra, ts.msac.rng); } } - } else if frame_hdr.allow_intrabc != 0 { + } else if frame_hdr.allow_intrabc { b.intra = (!rav1d_msac_decode_bool_adapt(&mut ts.msac, &mut ts.cdf.m.intrabc.0)) as u8; if debug_block_info!(f, t) { println!("Post-intrabcflag[{}]: r={}", b.intra, ts.msac.rng); @@ -2264,7 +2264,7 @@ unsafe fn decode_b_inner( } } } - if f.frame_hdr().frame_type.is_inter_or_switch() || f.frame_hdr().allow_intrabc != 0 { + if f.frame_hdr().frame_type.is_inter_or_switch() || f.frame_hdr().allow_intrabc { splat_intraref(c, t, bs, bw4 as usize, bh4 as usize); } } else if f.frame_hdr().frame_type.is_key_or_intra() { @@ -4074,7 +4074,7 @@ pub(crate) unsafe fn rav1d_decode_tile_sbrow( let col_sb_start = frame_hdr.tiling.col_start_sb[tile_col as usize] as c_int; let col_sb128_start = col_sb_start >> (seq_hdr.sb128 == 0) as c_int; - if frame_hdr.frame_type.is_inter_or_switch() || frame_hdr.allow_intrabc != 0 { + if frame_hdr.frame_type.is_inter_or_switch() || frame_hdr.allow_intrabc { rav1d_refmvs_tile_sbrow_init( &mut t.rt, &f.rf, @@ -4546,7 +4546,7 @@ pub(crate) unsafe fn rav1d_decode_frame_init( f.lf.tx_lpf_right_edge.resize(re_sz as usize, 0); // init ref mvs - if frame_hdr.frame_type.is_inter_or_switch() || frame_hdr.allow_intrabc != 0 { + if frame_hdr.frame_type.is_inter_or_switch() || frame_hdr.allow_intrabc { let ret = rav1d_refmvs_init_frame( &mut f.rf, seq_hdr, @@ -5133,7 +5133,7 @@ pub unsafe fn rav1d_submit_frame(c: &mut Rav1dContext) -> Rav1dResult { .store(cols * rows + f.sbh << uses_2pass, Ordering::SeqCst); // ref_mvs - if frame_hdr.frame_type.is_inter_or_switch() || frame_hdr.allow_intrabc != 0 { + if frame_hdr.frame_type.is_inter_or_switch() || frame_hdr.allow_intrabc { f.mvs_ref = rav1d_ref_create_using_pool( c.refmvs_pool, ::core::mem::size_of::() @@ -5146,7 +5146,7 @@ pub unsafe fn rav1d_submit_frame(c: &mut Rav1dContext) -> Rav1dResult { return Err(ENOMEM); } f.mvs = (*f.mvs_ref).data.cast::(); - if frame_hdr.allow_intrabc == 0 { + if !frame_hdr.allow_intrabc { for i in 0..7 { f.refpoc[i] = f.refp[i].p.frame_hdr.as_ref().unwrap().frame_offset as c_uint; } @@ -5260,7 +5260,7 @@ pub unsafe fn rav1d_submit_frame(c: &mut Rav1dContext) -> Rav1dResult { rav1d_ref_inc(f.cur_segmap_ref); } rav1d_ref_dec(&mut c.refs[i].refmvs); - if frame_hdr.allow_intrabc == 0 { + if !frame_hdr.allow_intrabc { c.refs[i].refmvs = f.mvs_ref; if !f.mvs_ref.is_null() { rav1d_ref_inc(f.mvs_ref); diff --git a/src/obu.rs b/src/obu.rs index fc50008a0..ca4ccbeb5 100644 --- a/src/obu.rs +++ b/src/obu.rs @@ -1140,7 +1140,7 @@ unsafe fn parse_segmentation( fn parse_delta( quant: &Rav1dFrameHeader_quant, - allow_intrabc: c_int, + allow_intrabc: bool, debug: &Debug, gb: &mut GetBits, ) -> Rav1dFrameHeader_delta { @@ -1158,7 +1158,7 @@ fn parse_delta( Rav1dFrameHeader_delta_q { present, res_log2 } }; let lf = { - let present = (q.present != 0 && allow_intrabc == 0 && gb.get_bit()) as c_int; + let present = (q.present != 0 && !allow_intrabc && gb.get_bit()) as c_int; let res_log2 = if present != 0 { gb.get_bits(2) as c_int } else { @@ -1183,7 +1183,7 @@ unsafe fn parse_loopfilter( c: &Rav1dContext, seqhdr: &Rav1dSequenceHeader, all_lossless: bool, - allow_intrabc: c_int, + allow_intrabc: bool, primary_ref_frame: c_int, refidx: &[c_int; RAV1D_REFS_PER_FRAME], debug: &Debug, @@ -1196,7 +1196,7 @@ unsafe fn parse_loopfilter( let mode_ref_delta_update; let mut mode_ref_deltas; let sharpness; - if all_lossless || allow_intrabc != 0 { + if all_lossless || allow_intrabc { level_y = [0; 2]; level_v = 0; level_u = level_v; @@ -1265,7 +1265,7 @@ unsafe fn parse_loopfilter( fn parse_cdef( seqhdr: &Rav1dSequenceHeader, all_lossless: bool, - allow_intrabc: c_int, + allow_intrabc: bool, debug: &Debug, gb: &mut GetBits, ) -> Rav1dFrameHeader_cdef { @@ -1273,7 +1273,7 @@ fn parse_cdef( let n_bits; let mut y_strength = [0; RAV1D_MAX_CDEF_STRENGTHS]; let mut uv_strength = [0; RAV1D_MAX_CDEF_STRENGTHS]; - if !all_lossless && seqhdr.cdef != 0 && allow_intrabc == 0 { + if !all_lossless && seqhdr.cdef != 0 && !allow_intrabc { damping = gb.get_bits(2) as c_int + 3; n_bits = gb.get_bits(2) as c_int; for i in 0..1 << n_bits { @@ -1303,13 +1303,13 @@ fn parse_restoration( seqhdr: &Rav1dSequenceHeader, all_lossless: bool, super_res_enabled: c_int, - allow_intrabc: c_int, + allow_intrabc: bool, debug: &Debug, gb: &mut GetBits, ) -> Rav1dFrameHeader_restoration { let r#type; let unit_size; - if (!all_lossless || super_res_enabled != 0) && seqhdr.restoration != 0 && allow_intrabc == 0 { + if (!all_lossless || super_res_enabled != 0) && seqhdr.restoration != 0 && !allow_intrabc { let type_0 = Rav1dRestorationType::from_repr(gb.get_bits(2) as usize).unwrap(); r#type = if seqhdr.monochrome == 0 { [ @@ -1878,8 +1878,7 @@ unsafe fn parse_frame_hdr( return Err(EINVAL); } size = parse_frame_size(c, seqhdr, None, frame_size_override, gb)?; - allow_intrabc = - (allow_screen_content_tools && size.super_res.enabled == 0 && gb.get_bit()) as c_int; + allow_intrabc = allow_screen_content_tools && size.super_res.enabled == 0 && gb.get_bit(); use_ref_frame_mvs = 0; // Default initialization. @@ -1889,7 +1888,7 @@ unsafe fn parse_frame_hdr( subpel_filter_mode = Rav1dFilterMode::Regular8Tap; switchable_motion_mode = Default::default(); } else { - allow_intrabc = 0; + allow_intrabc = false; refresh_frame_flags = if frame_type == Rav1dFrameType::Switch { 0xff } else {