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