root/drivers/media/platform/verisilicon/rockchip_av1_filmgrain.h
/* SPDX-License-Identifier: GPL-2.0-only */

#ifndef _ROCKCHIP_AV1_FILMGRAIN_H_
#define _ROCKCHIP_AV1_FILMGRAIN_H_

#include <linux/types.h>

void rockchip_av1_generate_luma_grain_block(s32 (*luma_grain_block)[73][82],
                                            s32 bitdepth,
                                            u8 num_y_points,
                                            s32 grain_scale_shift,
                                            s32 ar_coeff_lag,
                                            s32 (*ar_coeffs_y)[24],
                                            s32 ar_coeff_shift,
                                            s32 grain_min,
                                            s32 grain_max,
                                            u16 random_seed);

void rockchip_av1_generate_chroma_grain_block(s32 (*luma_grain_block)[73][82],
                                              s32 (*cb_grain_block)[38][44],
                                              s32 (*cr_grain_block)[38][44],
                                              s32 bitdepth,
                                              u8 num_y_points,
                                              u8 num_cb_points,
                                              u8 num_cr_points,
                                              s32 grain_scale_shift,
                                              s32 ar_coeff_lag,
                                              s32 (*ar_coeffs_cb)[25],
                                              s32 (*ar_coeffs_cr)[25],
                                              s32 ar_coeff_shift,
                                              s32 grain_min,
                                              s32 grain_max,
                                              u8 chroma_scaling_from_luma,
                                              u16 random_seed);

#endif