162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright 2020-2021 NXP
462306a36Sopenharmony_ci */
562306a36Sopenharmony_ci
662306a36Sopenharmony_ci#ifndef _AMPHION_VPU_CODEC_H
762306a36Sopenharmony_ci#define _AMPHION_VPU_CODEC_H
862306a36Sopenharmony_ci
962306a36Sopenharmony_cistruct vpu_encode_params {
1062306a36Sopenharmony_ci	u32 input_format;
1162306a36Sopenharmony_ci	u32 codec_format;
1262306a36Sopenharmony_ci	u32 profile;
1362306a36Sopenharmony_ci	u32 tier;
1462306a36Sopenharmony_ci	u32 level;
1562306a36Sopenharmony_ci	struct v4l2_fract frame_rate;
1662306a36Sopenharmony_ci	u32 src_stride;
1762306a36Sopenharmony_ci	u32 src_width;
1862306a36Sopenharmony_ci	u32 src_height;
1962306a36Sopenharmony_ci	struct v4l2_rect crop;
2062306a36Sopenharmony_ci	u32 out_width;
2162306a36Sopenharmony_ci	u32 out_height;
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ci	u32 gop_length;
2462306a36Sopenharmony_ci	u32 bframes;
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ci	u32 rc_enable;
2762306a36Sopenharmony_ci	u32 rc_mode;
2862306a36Sopenharmony_ci	u32 bitrate;
2962306a36Sopenharmony_ci	u32 bitrate_min;
3062306a36Sopenharmony_ci	u32 bitrate_max;
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ci	u32 i_frame_qp;
3362306a36Sopenharmony_ci	u32 p_frame_qp;
3462306a36Sopenharmony_ci	u32 b_frame_qp;
3562306a36Sopenharmony_ci	u32 qp_min;
3662306a36Sopenharmony_ci	u32 qp_max;
3762306a36Sopenharmony_ci	u32 qp_min_i;
3862306a36Sopenharmony_ci	u32 qp_max_i;
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_ci	struct {
4162306a36Sopenharmony_ci		u32 enable;
4262306a36Sopenharmony_ci		u32 idc;
4362306a36Sopenharmony_ci		u32 width;
4462306a36Sopenharmony_ci		u32 height;
4562306a36Sopenharmony_ci	} sar;
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_ci	struct {
4862306a36Sopenharmony_ci		u32 primaries;
4962306a36Sopenharmony_ci		u32 transfer;
5062306a36Sopenharmony_ci		u32 matrix;
5162306a36Sopenharmony_ci		u32 full_range;
5262306a36Sopenharmony_ci	} color;
5362306a36Sopenharmony_ci};
5462306a36Sopenharmony_ci
5562306a36Sopenharmony_cistruct vpu_decode_params {
5662306a36Sopenharmony_ci	u32 codec_format;
5762306a36Sopenharmony_ci	u32 output_format;
5862306a36Sopenharmony_ci	u32 display_delay_enable;
5962306a36Sopenharmony_ci	u32 display_delay;
6062306a36Sopenharmony_ci	u32 b_non_frame;
6162306a36Sopenharmony_ci	u32 frame_count;
6262306a36Sopenharmony_ci	u32 end_flag;
6362306a36Sopenharmony_ci	struct {
6462306a36Sopenharmony_ci		u32 base;
6562306a36Sopenharmony_ci		u32 size;
6662306a36Sopenharmony_ci	} udata;
6762306a36Sopenharmony_ci};
6862306a36Sopenharmony_ci
6962306a36Sopenharmony_ci#endif
70