Skip to content

Commit

Permalink
src/ipred.rs: Deduplicate w/ generics (#574)
Browse files Browse the repository at this point in the history
  • Loading branch information
kkysen authored Nov 21, 2023
2 parents e3fba63 + e26e7b5 commit 1c315a0
Show file tree
Hide file tree
Showing 10 changed files with 2,353 additions and 4,211 deletions.
1 change: 1 addition & 0 deletions include/common/bitdepth.rs
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,7 @@ pub trait BitDepth: Clone + Copy {
+ Into<usize>
+ Into<i32>
+ TryFrom<i32>
+ FromPrimitive<u16>
+ FromPrimitive<c_int>
+ FromPrimitive<c_uint>
+ ToPrimitive<c_int>
Expand Down
5 changes: 0 additions & 5 deletions lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -60,11 +60,6 @@ pub mod src {
mod intra_edge;
mod ipred;
mod ipred_prepare;
mod ipred_tmpl;
#[cfg(feature = "bitdepth_16")]
mod ipred_tmpl_16;
#[cfg(feature = "bitdepth_8")]
mod ipred_tmpl_8;
mod itx;
mod itx_1d;
#[cfg(feature = "bitdepth_16")]
Expand Down
8 changes: 4 additions & 4 deletions src/decode.rs
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,7 @@ use crate::src::intra_edge::EdgeFlags;
use crate::src::intra_edge::EdgeNode;
use crate::src::intra_edge::EdgeTip;
use crate::src::intra_edge::EDGE_I444_TOP_HAS_RIGHT;
use crate::src::ipred::rav1d_intra_pred_dsp_init;
use crate::src::levels::mv;
use crate::src::levels::Av1Block;
use crate::src::levels::BS_128x128;
Expand Down Expand Up @@ -244,14 +245,13 @@ use std::sync::atomic::Ordering;
#[cfg(feature = "bitdepth_8")]
use crate::{
include::common::bitdepth::BitDepth8, src::cdef_tmpl_8::rav1d_cdef_dsp_init_8bpc,
src::ipred_tmpl_8::rav1d_intra_pred_dsp_init_8bpc, src::itx_tmpl_8::rav1d_itx_dsp_init_8bpc,
src::itx_tmpl_8::rav1d_itx_dsp_init_8bpc,
src::loopfilter_tmpl_8::rav1d_loop_filter_dsp_init_8bpc,
};

#[cfg(feature = "bitdepth_16")]
use crate::{
include::common::bitdepth::BitDepth16, src::cdef_tmpl_16::rav1d_cdef_dsp_init_16bpc,
src::ipred_tmpl_16::rav1d_intra_pred_dsp_init_16bpc,
src::itx_tmpl_16::rav1d_itx_dsp_init_16bpc,
src::loopfilter_tmpl_16::rav1d_loop_filter_dsp_init_16bpc,
};
Expand Down Expand Up @@ -5051,7 +5051,7 @@ pub unsafe fn rav1d_submit_frame(c: &mut Rav1dContext) -> Rav1dResult {
#[cfg(feature = "bitdepth_8")]
8 => {
rav1d_cdef_dsp_init_8bpc(&mut dsp.cdef);
rav1d_intra_pred_dsp_init_8bpc(&mut dsp.ipred);
rav1d_intra_pred_dsp_init::<BitDepth8>(&mut dsp.ipred);
rav1d_itx_dsp_init_8bpc(&mut dsp.itx, bpc);
rav1d_loop_filter_dsp_init_8bpc(&mut dsp.lf);
rav1d_loop_restoration_dsp_init::<BitDepth8>(&mut dsp.lr, bpc);
Expand All @@ -5061,7 +5061,7 @@ pub unsafe fn rav1d_submit_frame(c: &mut Rav1dContext) -> Rav1dResult {
#[cfg(feature = "bitdepth_16")]
10 | 12 => {
rav1d_cdef_dsp_init_16bpc(&mut dsp.cdef);
rav1d_intra_pred_dsp_init_16bpc(&mut dsp.ipred);
rav1d_intra_pred_dsp_init::<BitDepth16>(&mut dsp.ipred);
rav1d_itx_dsp_init_16bpc(&mut dsp.itx, bpc);
rav1d_loop_filter_dsp_init_16bpc(&mut dsp.lf);
rav1d_loop_restoration_dsp_init::<BitDepth16>(&mut dsp.lr, bpc);
Expand Down
4 changes: 4 additions & 0 deletions src/enum_map.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,10 @@ pub trait DefaultValue {
const DEFAULT: Self;
}

impl<T> DefaultValue for Option<T> {
const DEFAULT: Self = None;
}

/// A map from an `enum` key `K` to `V`s.
/// `N` is the number of possible `enum` values.
pub struct EnumMap<K, V, const N: usize>
Expand Down
Loading

0 comments on commit 1c315a0

Please sign in to comment.