diff options
Diffstat (limited to 'src/dsp/loop_restoration.cc')
-rw-r--r-- | src/dsp/loop_restoration.cc | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/src/dsp/loop_restoration.cc b/src/dsp/loop_restoration.cc index 2301a3e..eb8052c 100644 --- a/src/dsp/loop_restoration.cc +++ b/src/dsp/loop_restoration.cc @@ -922,7 +922,6 @@ void Init8bpp() { } #if LIBGAV1_MAX_BITDEPTH >= 10 - void Init10bpp() { Dsp* const dsp = dsp_internal::GetWritableDspTable(10); assert(dsp != nullptr); @@ -939,8 +938,27 @@ void Init10bpp() { #endif #endif // LIBGAV1_ENABLE_ALL_DSP_FUNCTIONS } - #endif // LIBGAV1_MAX_BITDEPTH >= 10 + +#if LIBGAV1_MAX_BITDEPTH == 12 +void Init12bpp() { + Dsp* const dsp = dsp_internal::GetWritableDspTable(12); + assert(dsp != nullptr); +#if LIBGAV1_ENABLE_ALL_DSP_FUNCTIONS + dsp->loop_restorations[0] = WienerFilter_C<12, uint16_t>; + dsp->loop_restorations[1] = SelfGuidedFilter_C<12, uint16_t>; +#else // !LIBGAV1_ENABLE_ALL_DSP_FUNCTIONS + static_cast<void>(dsp); +#ifndef LIBGAV1_Dsp12bpp_WienerFilter + dsp->loop_restorations[0] = WienerFilter_C<12, uint16_t>; +#endif +#ifndef LIBGAV1_Dsp12bpp_SelfGuidedFilter + dsp->loop_restorations[1] = SelfGuidedFilter_C<12, uint16_t>; +#endif +#endif // LIBGAV1_ENABLE_ALL_DSP_FUNCTIONS +} +#endif // LIBGAV1_MAX_BITDEPTH == 12 + } // namespace void LoopRestorationInit_C() { @@ -948,6 +966,9 @@ void LoopRestorationInit_C() { #if LIBGAV1_MAX_BITDEPTH >= 10 Init10bpp(); #endif +#if LIBGAV1_MAX_BITDEPTH == 12 + Init12bpp(); +#endif } } // namespace dsp |