This only implements the functions for 10 bpc, as 12 bpc would require int32_t instead of int16_t (the same as 8 bpc) for some of the intermediate buffers - this is done by adding a bpc argument to
dav1d_loop_restoration_dsp_init. This also requires splitting the checkasm tests into separate 10 and 12 bpc tests for looprestoration, as one initialization of
Dav1dLoopRestorationDSPContext potentially could only support that particular case.
Some code is shared between 8bpc and 10bpc; two functions are shared with one single copy for all bitdepths each, while some share source code via macroing/templating.
VideoLAN code repository instance