xref: /linux/drivers/media/platform/amphion/vpu_codec.h (revision 9f599f351e86acf0fc13e42771f97b7fb4dbbea4)
1*9f599f35SMing Qian /* SPDX-License-Identifier: GPL-2.0 */
2*9f599f35SMing Qian /*
3*9f599f35SMing Qian  * Copyright 2020-2021 NXP
4*9f599f35SMing Qian  */
5*9f599f35SMing Qian 
6*9f599f35SMing Qian #ifndef _AMPHION_VPU_CODEC_H
7*9f599f35SMing Qian #define _AMPHION_VPU_CODEC_H
8*9f599f35SMing Qian 
9*9f599f35SMing Qian struct vpu_encode_params {
10*9f599f35SMing Qian 	u32 input_format;
11*9f599f35SMing Qian 	u32 codec_format;
12*9f599f35SMing Qian 	u32 profile;
13*9f599f35SMing Qian 	u32 tier;
14*9f599f35SMing Qian 	u32 level;
15*9f599f35SMing Qian 	struct v4l2_fract frame_rate;
16*9f599f35SMing Qian 	u32 src_stride;
17*9f599f35SMing Qian 	u32 src_width;
18*9f599f35SMing Qian 	u32 src_height;
19*9f599f35SMing Qian 	struct v4l2_rect crop;
20*9f599f35SMing Qian 	u32 out_width;
21*9f599f35SMing Qian 	u32 out_height;
22*9f599f35SMing Qian 
23*9f599f35SMing Qian 	u32 gop_length;
24*9f599f35SMing Qian 	u32 bframes;
25*9f599f35SMing Qian 
26*9f599f35SMing Qian 	u32 rc_enable;
27*9f599f35SMing Qian 	u32 rc_mode;
28*9f599f35SMing Qian 	u32 bitrate;
29*9f599f35SMing Qian 	u32 bitrate_min;
30*9f599f35SMing Qian 	u32 bitrate_max;
31*9f599f35SMing Qian 
32*9f599f35SMing Qian 	u32 i_frame_qp;
33*9f599f35SMing Qian 	u32 p_frame_qp;
34*9f599f35SMing Qian 	u32 b_frame_qp;
35*9f599f35SMing Qian 	u32 qp_min;
36*9f599f35SMing Qian 	u32 qp_max;
37*9f599f35SMing Qian 	u32 qp_min_i;
38*9f599f35SMing Qian 	u32 qp_max_i;
39*9f599f35SMing Qian 
40*9f599f35SMing Qian 	struct {
41*9f599f35SMing Qian 		u32 enable;
42*9f599f35SMing Qian 		u32 idc;
43*9f599f35SMing Qian 		u32 width;
44*9f599f35SMing Qian 		u32 height;
45*9f599f35SMing Qian 	} sar;
46*9f599f35SMing Qian 
47*9f599f35SMing Qian 	struct {
48*9f599f35SMing Qian 		u32 primaries;
49*9f599f35SMing Qian 		u32 transfer;
50*9f599f35SMing Qian 		u32 matrix;
51*9f599f35SMing Qian 		u32 full_range;
52*9f599f35SMing Qian 	} color;
53*9f599f35SMing Qian };
54*9f599f35SMing Qian 
55*9f599f35SMing Qian struct vpu_decode_params {
56*9f599f35SMing Qian 	u32 codec_format;
57*9f599f35SMing Qian 	u32 output_format;
58*9f599f35SMing Qian 	u32 b_dis_reorder;
59*9f599f35SMing Qian 	u32 b_non_frame;
60*9f599f35SMing Qian 	u32 frame_count;
61*9f599f35SMing Qian 	u32 end_flag;
62*9f599f35SMing Qian 	struct {
63*9f599f35SMing Qian 		u32 base;
64*9f599f35SMing Qian 		u32 size;
65*9f599f35SMing Qian 	} udata;
66*9f599f35SMing Qian };
67*9f599f35SMing Qian 
68*9f599f35SMing Qian #endif
69