From 2e3994826931e7b6e995d488f6821171f840ec38 Mon Sep 17 00:00:00 2001 From: Khyber Sen Date: Mon, 4 Dec 2023 14:29:45 -0800 Subject: [PATCH 1/7] `const {D,R}AV1D_MAX_CDEF_STRENGTHS`: Deduplicate. --- include/dav1d/headers.rs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/include/dav1d/headers.rs b/include/dav1d/headers.rs index 1822c36ef..fa873a0ea 100644 --- a/include/dav1d/headers.rs +++ b/include/dav1d/headers.rs @@ -420,9 +420,11 @@ pub(crate) const _RAV1D_CHR_VERTICAL: Rav1dChromaSamplePosition = DAV1D_CHR_VERT pub(crate) const RAV1D_CHR_UNKNOWN: Rav1dChromaSamplePosition = DAV1D_CHR_UNKNOWN; // Constants from Section 3. "Symbols and abbreviated terms" +pub const DAV1D_MAX_CDEF_STRENGTHS: usize = 8; pub const DAV1D_MAX_SEGMENTS: u8 = 8; pub const DAV1D_PRIMARY_REF_NONE: c_int = 7; +pub(crate) const RAV1D_MAX_CDEF_STRENGTHS: usize = DAV1D_MAX_CDEF_STRENGTHS; pub(crate) const RAV1D_MAX_SEGMENTS: u8 = DAV1D_MAX_SEGMENTS; pub(crate) const RAV1D_PRIMARY_REF_NONE: c_int = DAV1D_PRIMARY_REF_NONE; @@ -1854,8 +1856,8 @@ impl From for Dav1dFrameHeader_loopfilter { pub struct Dav1dFrameHeader_cdef { pub damping: c_int, pub n_bits: c_int, - pub y_strength: [c_int; 8], - pub uv_strength: [c_int; 8], + pub y_strength: [c_int; DAV1D_MAX_CDEF_STRENGTHS], + pub uv_strength: [c_int; DAV1D_MAX_CDEF_STRENGTHS], } #[derive(Clone)] @@ -1863,8 +1865,8 @@ pub struct Dav1dFrameHeader_cdef { pub(crate) struct Rav1dFrameHeader_cdef { pub damping: c_int, pub n_bits: c_int, - pub y_strength: [c_int; 8], - pub uv_strength: [c_int; 8], + pub y_strength: [c_int; RAV1D_MAX_CDEF_STRENGTHS], + pub uv_strength: [c_int; RAV1D_MAX_CDEF_STRENGTHS], } impl From for Rav1dFrameHeader_cdef { From 458e77732246d89db0713afcaeb6ceabf54d1e7e Mon Sep 17 00:00:00 2001 From: Khyber Sen Date: Mon, 4 Dec 2023 14:35:41 -0800 Subject: [PATCH 2/7] `const {D,R}AV1D_MAX_OPERATING_POINTS`: Deduplicate. --- include/dav1d/headers.rs | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/include/dav1d/headers.rs b/include/dav1d/headers.rs index fa873a0ea..d7db2fde6 100644 --- a/include/dav1d/headers.rs +++ b/include/dav1d/headers.rs @@ -421,10 +421,12 @@ pub(crate) const RAV1D_CHR_UNKNOWN: Rav1dChromaSamplePosition = DAV1D_CHR_UNKNOW // Constants from Section 3. "Symbols and abbreviated terms" pub const DAV1D_MAX_CDEF_STRENGTHS: usize = 8; +pub const DAV1D_MAX_OPERATING_POINTS: usize = 32; pub const DAV1D_MAX_SEGMENTS: u8 = 8; pub const DAV1D_PRIMARY_REF_NONE: c_int = 7; pub(crate) const RAV1D_MAX_CDEF_STRENGTHS: usize = DAV1D_MAX_CDEF_STRENGTHS; +pub(crate) const RAV1D_MAX_OPERATING_POINTS: usize = DAV1D_MAX_OPERATING_POINTS; pub(crate) const RAV1D_MAX_SEGMENTS: u8 = DAV1D_MAX_SEGMENTS; pub(crate) const RAV1D_PRIMARY_REF_NONE: c_int = DAV1D_PRIMARY_REF_NONE; @@ -628,7 +630,7 @@ pub struct Dav1dSequenceHeader { pub hbd: c_int, pub color_range: c_int, pub num_operating_points: c_int, - pub operating_points: [Dav1dSequenceHeaderOperatingPoint; 32], + pub operating_points: [Dav1dSequenceHeaderOperatingPoint; DAV1D_MAX_OPERATING_POINTS], pub still_picture: c_int, pub reduced_still_picture_header: c_int, pub timing_info_present: c_int, @@ -669,7 +671,8 @@ pub struct Dav1dSequenceHeader { pub color_description_present: c_int, pub separate_uv_delta_q: c_int, pub film_grain_present: c_int, - pub operating_parameter_info: [Dav1dSequenceHeaderOperatingParameterInfo; 32], + pub operating_parameter_info: + [Dav1dSequenceHeaderOperatingParameterInfo; DAV1D_MAX_OPERATING_POINTS], } #[derive(Clone)] @@ -686,7 +689,7 @@ pub(crate) struct Rav1dSequenceHeader { pub hbd: c_int, pub color_range: c_int, pub num_operating_points: c_int, - pub operating_points: [Rav1dSequenceHeaderOperatingPoint; 32], + pub operating_points: [Rav1dSequenceHeaderOperatingPoint; RAV1D_MAX_OPERATING_POINTS], pub still_picture: c_int, pub reduced_still_picture_header: c_int, pub timing_info_present: c_int, @@ -727,7 +730,8 @@ pub(crate) struct Rav1dSequenceHeader { pub color_description_present: c_int, pub separate_uv_delta_q: c_int, pub film_grain_present: c_int, - pub operating_parameter_info: [Rav1dSequenceHeaderOperatingParameterInfo; 32], + pub operating_parameter_info: + [Rav1dSequenceHeaderOperatingParameterInfo; RAV1D_MAX_OPERATING_POINTS], } impl From for Rav1dSequenceHeader { @@ -1954,7 +1958,7 @@ pub struct Dav1dFrameHeader { pub frame_size_override: c_int, pub primary_ref_frame: c_int, pub buffer_removal_time_present: c_int, - pub operating_points: [Dav1dFrameHeaderOperatingPoint; 32], + pub operating_points: [Dav1dFrameHeaderOperatingPoint; DAV1D_MAX_OPERATING_POINTS], pub refresh_frame_flags: c_int, pub render_width: c_int, pub render_height: c_int, @@ -2009,7 +2013,7 @@ pub(crate) struct Rav1dFrameHeader { pub frame_size_override: c_int, pub primary_ref_frame: c_int, pub buffer_removal_time_present: c_int, - pub operating_points: [Rav1dFrameHeaderOperatingPoint; 32], + pub operating_points: [Rav1dFrameHeaderOperatingPoint; RAV1D_MAX_OPERATING_POINTS], pub refresh_frame_flags: c_int, pub render_width: c_int, pub render_height: c_int, From a4eefc7623b2490955572f5505b5893eddf7ef65 Mon Sep 17 00:00:00 2001 From: Khyber Sen Date: Mon, 4 Dec 2023 16:42:16 -0800 Subject: [PATCH 3/7] `const {D,R}AV1D_MAX_TILE_{COLS,ROWS}`: Deduplicate. --- include/dav1d/headers.rs | 12 ++++++++---- src/obu.rs | 10 ++++++---- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/include/dav1d/headers.rs b/include/dav1d/headers.rs index d7db2fde6..8b12a129a 100644 --- a/include/dav1d/headers.rs +++ b/include/dav1d/headers.rs @@ -422,11 +422,15 @@ pub(crate) const RAV1D_CHR_UNKNOWN: Rav1dChromaSamplePosition = DAV1D_CHR_UNKNOW // Constants from Section 3. "Symbols and abbreviated terms" pub const DAV1D_MAX_CDEF_STRENGTHS: usize = 8; pub const DAV1D_MAX_OPERATING_POINTS: usize = 32; +pub const DAV1D_MAX_TILE_COLS: usize = 64; +pub const DAV1D_MAX_TILE_ROWS: usize = 64; pub const DAV1D_MAX_SEGMENTS: u8 = 8; pub const DAV1D_PRIMARY_REF_NONE: c_int = 7; pub(crate) const RAV1D_MAX_CDEF_STRENGTHS: usize = DAV1D_MAX_CDEF_STRENGTHS; pub(crate) const RAV1D_MAX_OPERATING_POINTS: usize = DAV1D_MAX_OPERATING_POINTS; +pub(crate) const RAV1D_MAX_TILE_COLS: usize = DAV1D_MAX_TILE_COLS; +pub(crate) const RAV1D_MAX_TILE_ROWS: usize = DAV1D_MAX_TILE_ROWS; pub(crate) const RAV1D_MAX_SEGMENTS: u8 = DAV1D_MAX_SEGMENTS; pub(crate) const RAV1D_PRIMARY_REF_NONE: c_int = DAV1D_PRIMARY_REF_NONE; @@ -1426,8 +1430,8 @@ pub struct Dav1dFrameHeader_tiling { pub max_log2_rows: c_int, pub log2_rows: c_int, pub rows: c_int, - pub col_start_sb: [u16; 65], - pub row_start_sb: [u16; 65], + pub col_start_sb: [u16; DAV1D_MAX_TILE_COLS + 1], + pub row_start_sb: [u16; DAV1D_MAX_TILE_ROWS + 1], pub update: c_int, } @@ -1444,8 +1448,8 @@ pub(crate) struct Rav1dFrameHeader_tiling { pub max_log2_rows: c_int, pub log2_rows: c_int, pub rows: c_int, - pub col_start_sb: [u16; 65], - pub row_start_sb: [u16; 65], + pub col_start_sb: [u16; RAV1D_MAX_TILE_COLS + 1], + pub row_start_sb: [u16; RAV1D_MAX_TILE_ROWS + 1], pub update: c_int, } diff --git a/src/obu.rs b/src/obu.rs index 35a0b39d5..5ac3278c7 100644 --- a/src/obu.rs +++ b/src/obu.rs @@ -38,6 +38,8 @@ use crate::include::dav1d::headers::RAV1D_FRAME_TYPE_INTRA; use crate::include::dav1d::headers::RAV1D_FRAME_TYPE_KEY; use crate::include::dav1d::headers::RAV1D_FRAME_TYPE_SWITCH; use crate::include::dav1d::headers::RAV1D_MAX_SEGMENTS; +use crate::include::dav1d::headers::RAV1D_MAX_TILE_COLS; +use crate::include::dav1d::headers::RAV1D_MAX_TILE_ROWS; use crate::include::dav1d::headers::RAV1D_MC_IDENTITY; use crate::include::dav1d::headers::RAV1D_MC_UNKNOWN; use crate::include::dav1d::headers::RAV1D_OBU_FRAME; @@ -856,8 +858,8 @@ unsafe fn parse_frame_hdr(c: &mut Rav1dContext, gb: &mut GetBits) -> Rav1dResult let max_tile_width_sb = 4096 >> sbsz_log2; let max_tile_area_sb = 4096 * 2304 >> 2 * sbsz_log2; hdr.tiling.min_log2_cols = tile_log2(max_tile_width_sb, sbw); - hdr.tiling.max_log2_cols = tile_log2(1, cmp::min(sbw, 64)); - hdr.tiling.max_log2_rows = tile_log2(1, cmp::min(sbh, 64)); + hdr.tiling.max_log2_cols = tile_log2(1, cmp::min(sbw, RAV1D_MAX_TILE_COLS as c_int)); + hdr.tiling.max_log2_rows = tile_log2(1, cmp::min(sbh, RAV1D_MAX_TILE_ROWS as c_int)); let min_log2_tiles = cmp::max( tile_log2(max_tile_area_sb, sbw * sbh), hdr.tiling.min_log2_cols, @@ -894,7 +896,7 @@ unsafe fn parse_frame_hdr(c: &mut Rav1dContext, gb: &mut GetBits) -> Rav1dResult let mut widest_tile = 0; let mut max_tile_area_sb = sbw * sbh; let mut sbx = 0; - while sbx < sbw && hdr.tiling.cols < 64 { + while sbx < sbw && hdr.tiling.cols < RAV1D_MAX_TILE_COLS as c_int { let tile_width_sb = cmp::min(sbw - sbx, max_tile_width_sb); let tile_w = if tile_width_sb > 1 { 1 + rav1d_get_uniform(gb, tile_width_sb as c_uint) as c_int @@ -914,7 +916,7 @@ unsafe fn parse_frame_hdr(c: &mut Rav1dContext, gb: &mut GetBits) -> Rav1dResult hdr.tiling.rows = 0; let mut sby = 0; - while sby < sbh && hdr.tiling.rows < 64 { + while sby < sbh && hdr.tiling.rows < RAV1D_MAX_TILE_ROWS as c_int { let tile_height_sb = cmp::min(sbh - sby, max_tile_height_sb); let tile_h = if tile_height_sb > 1 { 1 + rav1d_get_uniform(gb, tile_height_sb as c_uint) as c_int From f60fd22b4ebd00b76e772fbd0577cd5cce7a6a30 Mon Sep 17 00:00:00 2001 From: Khyber Sen Date: Mon, 4 Dec 2023 16:44:09 -0800 Subject: [PATCH 4/7] `const {D,R}AV1D_NUM_REF_FRAMES`: Deduplicate (although unused). --- include/dav1d/headers.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/dav1d/headers.rs b/include/dav1d/headers.rs index 8b12a129a..b20f59ee2 100644 --- a/include/dav1d/headers.rs +++ b/include/dav1d/headers.rs @@ -425,6 +425,7 @@ pub const DAV1D_MAX_OPERATING_POINTS: usize = 32; pub const DAV1D_MAX_TILE_COLS: usize = 64; pub const DAV1D_MAX_TILE_ROWS: usize = 64; pub const DAV1D_MAX_SEGMENTS: u8 = 8; +pub const DAV1D_NUM_REF_FRAMES: usize = 8; pub const DAV1D_PRIMARY_REF_NONE: c_int = 7; pub(crate) const RAV1D_MAX_CDEF_STRENGTHS: usize = DAV1D_MAX_CDEF_STRENGTHS; @@ -432,6 +433,7 @@ pub(crate) const RAV1D_MAX_OPERATING_POINTS: usize = DAV1D_MAX_OPERATING_POINTS; pub(crate) const RAV1D_MAX_TILE_COLS: usize = DAV1D_MAX_TILE_COLS; pub(crate) const RAV1D_MAX_TILE_ROWS: usize = DAV1D_MAX_TILE_ROWS; pub(crate) const RAV1D_MAX_SEGMENTS: u8 = DAV1D_MAX_SEGMENTS; +pub(crate) const _RAV1D_NUM_REF_FRAMES: usize = DAV1D_NUM_REF_FRAMES; pub(crate) const RAV1D_PRIMARY_REF_NONE: c_int = DAV1D_PRIMARY_REF_NONE; #[repr(C)] From ed54ac980ef9662aa099674b07758ddd8e38680d Mon Sep 17 00:00:00 2001 From: Khyber Sen Date: Mon, 4 Dec 2023 16:45:48 -0800 Subject: [PATCH 5/7] `const {D,R}AV1D_REFS_PER_FRAME`: Deduplicate. --- include/dav1d/headers.rs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/include/dav1d/headers.rs b/include/dav1d/headers.rs index b20f59ee2..c8ae11f3b 100644 --- a/include/dav1d/headers.rs +++ b/include/dav1d/headers.rs @@ -427,6 +427,7 @@ pub const DAV1D_MAX_TILE_ROWS: usize = 64; pub const DAV1D_MAX_SEGMENTS: u8 = 8; pub const DAV1D_NUM_REF_FRAMES: usize = 8; pub const DAV1D_PRIMARY_REF_NONE: c_int = 7; +pub const DAV1D_REFS_PER_FRAME: usize = 7; pub(crate) const RAV1D_MAX_CDEF_STRENGTHS: usize = DAV1D_MAX_CDEF_STRENGTHS; pub(crate) const RAV1D_MAX_OPERATING_POINTS: usize = DAV1D_MAX_OPERATING_POINTS; @@ -435,6 +436,7 @@ pub(crate) const RAV1D_MAX_TILE_ROWS: usize = DAV1D_MAX_TILE_ROWS; pub(crate) const RAV1D_MAX_SEGMENTS: u8 = DAV1D_MAX_SEGMENTS; pub(crate) const _RAV1D_NUM_REF_FRAMES: usize = DAV1D_NUM_REF_FRAMES; pub(crate) const RAV1D_PRIMARY_REF_NONE: c_int = DAV1D_PRIMARY_REF_NONE; +pub(crate) const RAV1D_REFS_PER_FRAME: usize = DAV1D_REFS_PER_FRAME; #[repr(C)] pub struct Rav1dContentLightLevel { @@ -1972,7 +1974,7 @@ pub struct Dav1dFrameHeader { pub have_render_size: c_int, pub allow_intrabc: c_int, pub frame_ref_short_signaling: c_int, - pub refidx: [c_int; 7], + pub refidx: [c_int; DAV1D_REFS_PER_FRAME], pub hp: c_int, pub subpel_filter_mode: Dav1dFilterMode, pub switchable_motion_mode: c_int, @@ -1993,7 +1995,7 @@ pub struct Dav1dFrameHeader { pub skip_mode_refs: [c_int; 2], pub warp_motion: c_int, pub reduced_txtp_set: c_int, - pub gmv: [Dav1dWarpedMotionParams; 7], + pub gmv: [Dav1dWarpedMotionParams; DAV1D_REFS_PER_FRAME], } #[derive(Clone)] @@ -2027,7 +2029,7 @@ pub(crate) struct Rav1dFrameHeader { pub have_render_size: c_int, pub allow_intrabc: c_int, pub frame_ref_short_signaling: c_int, - pub refidx: [c_int; 7], + pub refidx: [c_int; RAV1D_REFS_PER_FRAME], pub hp: c_int, pub subpel_filter_mode: Rav1dFilterMode, pub switchable_motion_mode: c_int, @@ -2048,7 +2050,7 @@ pub(crate) struct Rav1dFrameHeader { pub skip_mode_refs: [c_int; 2], pub warp_motion: c_int, pub reduced_txtp_set: c_int, - pub gmv: [Rav1dWarpedMotionParams; 7], + pub gmv: [Rav1dWarpedMotionParams; RAV1D_REFS_PER_FRAME], } impl From for Rav1dFrameHeader { From 2ea7e06303d2c439c9982f2d12a7c6b0d530d138 Mon Sep 17 00:00:00 2001 From: Khyber Sen Date: Mon, 4 Dec 2023 16:47:03 -0800 Subject: [PATCH 6/7] `const {D,R}AV1D_TOTAL_REFS_PER_FRAME`: Deduplicate. --- include/dav1d/headers.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/include/dav1d/headers.rs b/include/dav1d/headers.rs index c8ae11f3b..fbe8936f5 100644 --- a/include/dav1d/headers.rs +++ b/include/dav1d/headers.rs @@ -428,6 +428,7 @@ pub const DAV1D_MAX_SEGMENTS: u8 = 8; pub const DAV1D_NUM_REF_FRAMES: usize = 8; pub const DAV1D_PRIMARY_REF_NONE: c_int = 7; pub const DAV1D_REFS_PER_FRAME: usize = 7; +pub const DAV1D_TOTAL_REFS_PER_FRAME: usize = DAV1D_REFS_PER_FRAME + 1; pub(crate) const RAV1D_MAX_CDEF_STRENGTHS: usize = DAV1D_MAX_CDEF_STRENGTHS; pub(crate) const RAV1D_MAX_OPERATING_POINTS: usize = DAV1D_MAX_OPERATING_POINTS; @@ -437,6 +438,7 @@ pub(crate) const RAV1D_MAX_SEGMENTS: u8 = DAV1D_MAX_SEGMENTS; pub(crate) const _RAV1D_NUM_REF_FRAMES: usize = DAV1D_NUM_REF_FRAMES; pub(crate) const RAV1D_PRIMARY_REF_NONE: c_int = DAV1D_PRIMARY_REF_NONE; pub(crate) const RAV1D_REFS_PER_FRAME: usize = DAV1D_REFS_PER_FRAME; +pub(crate) const RAV1D_TOTAL_REFS_PER_FRAME: usize = DAV1D_TOTAL_REFS_PER_FRAME; #[repr(C)] pub struct Rav1dContentLightLevel { @@ -1098,14 +1100,14 @@ impl From for Dav1dSegmentationDataSet { #[repr(C)] pub struct Dav1dLoopfilterModeRefDeltas { pub mode_delta: [c_int; 2], - pub ref_delta: [c_int; 8], + pub ref_delta: [c_int; DAV1D_TOTAL_REFS_PER_FRAME], } #[derive(Clone)] #[repr(C)] pub(crate) struct Rav1dLoopfilterModeRefDeltas { pub mode_delta: [c_int; 2], - pub ref_delta: [c_int; 8], + pub ref_delta: [c_int; RAV1D_TOTAL_REFS_PER_FRAME], } impl From for Rav1dLoopfilterModeRefDeltas { From 96f7febaecc794d5ddce4921dbf16b6ee0fa8de3 Mon Sep 17 00:00:00 2001 From: Khyber Sen Date: Mon, 4 Dec 2023 16:49:10 -0800 Subject: [PATCH 7/7] `mod include::dav1d::headers`: Move Section 3 `const`s to their location in C. --- include/dav1d/headers.rs | 42 ++++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/include/dav1d/headers.rs b/include/dav1d/headers.rs index fbe8936f5..544ed0795 100644 --- a/include/dav1d/headers.rs +++ b/include/dav1d/headers.rs @@ -26,6 +26,27 @@ where } } +// Constants from Section 3. "Symbols and abbreviated terms" +pub const DAV1D_MAX_CDEF_STRENGTHS: usize = 8; +pub const DAV1D_MAX_OPERATING_POINTS: usize = 32; +pub const DAV1D_MAX_TILE_COLS: usize = 64; +pub const DAV1D_MAX_TILE_ROWS: usize = 64; +pub const DAV1D_MAX_SEGMENTS: u8 = 8; +pub const DAV1D_NUM_REF_FRAMES: usize = 8; +pub const DAV1D_PRIMARY_REF_NONE: c_int = 7; +pub const DAV1D_REFS_PER_FRAME: usize = 7; +pub const DAV1D_TOTAL_REFS_PER_FRAME: usize = DAV1D_REFS_PER_FRAME + 1; + +pub(crate) const RAV1D_MAX_CDEF_STRENGTHS: usize = DAV1D_MAX_CDEF_STRENGTHS; +pub(crate) const RAV1D_MAX_OPERATING_POINTS: usize = DAV1D_MAX_OPERATING_POINTS; +pub(crate) const RAV1D_MAX_TILE_COLS: usize = DAV1D_MAX_TILE_COLS; +pub(crate) const RAV1D_MAX_TILE_ROWS: usize = DAV1D_MAX_TILE_ROWS; +pub(crate) const RAV1D_MAX_SEGMENTS: u8 = DAV1D_MAX_SEGMENTS; +pub(crate) const _RAV1D_NUM_REF_FRAMES: usize = DAV1D_NUM_REF_FRAMES; +pub(crate) const RAV1D_PRIMARY_REF_NONE: c_int = DAV1D_PRIMARY_REF_NONE; +pub(crate) const RAV1D_REFS_PER_FRAME: usize = DAV1D_REFS_PER_FRAME; +pub(crate) const RAV1D_TOTAL_REFS_PER_FRAME: usize = DAV1D_TOTAL_REFS_PER_FRAME; + pub type Dav1dObuType = c_uint; pub const DAV1D_OBU_PADDING: Dav1dObuType = 15; pub const DAV1D_OBU_REDUNDANT_FRAME_HDR: Dav1dObuType = 7; @@ -419,27 +440,6 @@ pub(crate) const _RAV1D_CHR_COLOCATED: Rav1dChromaSamplePosition = DAV1D_CHR_COL pub(crate) const _RAV1D_CHR_VERTICAL: Rav1dChromaSamplePosition = DAV1D_CHR_VERTICAL; pub(crate) const RAV1D_CHR_UNKNOWN: Rav1dChromaSamplePosition = DAV1D_CHR_UNKNOWN; -// Constants from Section 3. "Symbols and abbreviated terms" -pub const DAV1D_MAX_CDEF_STRENGTHS: usize = 8; -pub const DAV1D_MAX_OPERATING_POINTS: usize = 32; -pub const DAV1D_MAX_TILE_COLS: usize = 64; -pub const DAV1D_MAX_TILE_ROWS: usize = 64; -pub const DAV1D_MAX_SEGMENTS: u8 = 8; -pub const DAV1D_NUM_REF_FRAMES: usize = 8; -pub const DAV1D_PRIMARY_REF_NONE: c_int = 7; -pub const DAV1D_REFS_PER_FRAME: usize = 7; -pub const DAV1D_TOTAL_REFS_PER_FRAME: usize = DAV1D_REFS_PER_FRAME + 1; - -pub(crate) const RAV1D_MAX_CDEF_STRENGTHS: usize = DAV1D_MAX_CDEF_STRENGTHS; -pub(crate) const RAV1D_MAX_OPERATING_POINTS: usize = DAV1D_MAX_OPERATING_POINTS; -pub(crate) const RAV1D_MAX_TILE_COLS: usize = DAV1D_MAX_TILE_COLS; -pub(crate) const RAV1D_MAX_TILE_ROWS: usize = DAV1D_MAX_TILE_ROWS; -pub(crate) const RAV1D_MAX_SEGMENTS: u8 = DAV1D_MAX_SEGMENTS; -pub(crate) const _RAV1D_NUM_REF_FRAMES: usize = DAV1D_NUM_REF_FRAMES; -pub(crate) const RAV1D_PRIMARY_REF_NONE: c_int = DAV1D_PRIMARY_REF_NONE; -pub(crate) const RAV1D_REFS_PER_FRAME: usize = DAV1D_REFS_PER_FRAME; -pub(crate) const RAV1D_TOTAL_REFS_PER_FRAME: usize = DAV1D_TOTAL_REFS_PER_FRAME; - #[repr(C)] pub struct Rav1dContentLightLevel { pub max_content_light_level: c_int,