19f599f35SMing Qian /* SPDX-License-Identifier: GPL-2.0 */
29f599f35SMing Qian /*
39f599f35SMing Qian  * Copyright 2020-2021 NXP
49f599f35SMing Qian  */
59f599f35SMing Qian 
69f599f35SMing Qian #ifndef _AMPHION_VPU_CODEC_H
79f599f35SMing Qian #define _AMPHION_VPU_CODEC_H
89f599f35SMing Qian 
99f599f35SMing Qian struct vpu_encode_params {
109f599f35SMing Qian 	u32 input_format;
119f599f35SMing Qian 	u32 codec_format;
129f599f35SMing Qian 	u32 profile;
139f599f35SMing Qian 	u32 tier;
149f599f35SMing Qian 	u32 level;
159f599f35SMing Qian 	struct v4l2_fract frame_rate;
169f599f35SMing Qian 	u32 src_stride;
179f599f35SMing Qian 	u32 src_width;
189f599f35SMing Qian 	u32 src_height;
199f599f35SMing Qian 	struct v4l2_rect crop;
209f599f35SMing Qian 	u32 out_width;
219f599f35SMing Qian 	u32 out_height;
229f599f35SMing Qian 
239f599f35SMing Qian 	u32 gop_length;
249f599f35SMing Qian 	u32 bframes;
259f599f35SMing Qian 
269f599f35SMing Qian 	u32 rc_enable;
279f599f35SMing Qian 	u32 rc_mode;
289f599f35SMing Qian 	u32 bitrate;
299f599f35SMing Qian 	u32 bitrate_min;
309f599f35SMing Qian 	u32 bitrate_max;
319f599f35SMing Qian 
329f599f35SMing Qian 	u32 i_frame_qp;
339f599f35SMing Qian 	u32 p_frame_qp;
349f599f35SMing Qian 	u32 b_frame_qp;
359f599f35SMing Qian 	u32 qp_min;
369f599f35SMing Qian 	u32 qp_max;
379f599f35SMing Qian 	u32 qp_min_i;
389f599f35SMing Qian 	u32 qp_max_i;
399f599f35SMing Qian 
409f599f35SMing Qian 	struct {
419f599f35SMing Qian 		u32 enable;
429f599f35SMing Qian 		u32 idc;
439f599f35SMing Qian 		u32 width;
449f599f35SMing Qian 		u32 height;
459f599f35SMing Qian 	} sar;
469f599f35SMing Qian 
479f599f35SMing Qian 	struct {
489f599f35SMing Qian 		u32 primaries;
499f599f35SMing Qian 		u32 transfer;
509f599f35SMing Qian 		u32 matrix;
519f599f35SMing Qian 		u32 full_range;
529f599f35SMing Qian 	} color;
539f599f35SMing Qian };
549f599f35SMing Qian 
559f599f35SMing Qian struct vpu_decode_params {
569f599f35SMing Qian 	u32 codec_format;
579f599f35SMing Qian 	u32 output_format;
58*ffa331d9SMing Qian 	u32 display_delay_enable;
59*ffa331d9SMing Qian 	u32 display_delay;
609f599f35SMing Qian 	u32 b_non_frame;
619f599f35SMing Qian 	u32 frame_count;
629f599f35SMing Qian 	u32 end_flag;
639f599f35SMing Qian 	struct {
649f599f35SMing Qian 		u32 base;
659f599f35SMing Qian 		u32 size;
669f599f35SMing Qian 	} udata;
679f599f35SMing Qian };
689f599f35SMing Qian 
699f599f35SMing Qian #endif
70