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