/* * Copyright (C) Cvitek Co., Ltd. 2019-2020. All rights reserved. * * File Name: cvi_vc_drv_ioctl.h * Description: */ #ifndef __CVI_VC_DRV_IOCTL_H__ #define __CVI_VC_DRV_IOCTL_H__ #define CVI_VC_DRV_ENCODER_DEV_NAME "cvi_vc_enc" #define CVI_VC_DRV_DECODER_DEV_NAME "cvi_vc_dec" #define CVI_VC_DRV_IOCTL_MAGIC 'V' /* encoder ioctl */ #define CVI_VC_VENC_CREATE_CHN _IO(CVI_VC_DRV_IOCTL_MAGIC, 0) #define CVI_VC_VENC_DESTROY_CHN _IO(CVI_VC_DRV_IOCTL_MAGIC, 1) #define CVI_VC_VENC_RESET_CHN _IO(CVI_VC_DRV_IOCTL_MAGIC, 2) #define CVI_VC_VENC_START_RECV_FRAME _IO(CVI_VC_DRV_IOCTL_MAGIC, 3) #define CVI_VC_VENC_STOP_RECV_FRAME _IO(CVI_VC_DRV_IOCTL_MAGIC, 4) #define CVI_VC_VENC_QUERY_STATUS _IO(CVI_VC_DRV_IOCTL_MAGIC, 5) #define CVI_VC_VENC_SET_CHN_ATTR _IO(CVI_VC_DRV_IOCTL_MAGIC, 6) #define CVI_VC_VENC_GET_CHN_ATTR _IO(CVI_VC_DRV_IOCTL_MAGIC, 7) #define CVI_VC_VENC_GET_STREAM _IO(CVI_VC_DRV_IOCTL_MAGIC, 8) #define CVI_VC_VENC_RELEASE_STREAM _IO(CVI_VC_DRV_IOCTL_MAGIC, 9) #define CVI_VC_VENC_INSERT_USERDATA _IO(CVI_VC_DRV_IOCTL_MAGIC, 10) #define CVI_VC_VENC_SEND_FRAME _IO(CVI_VC_DRV_IOCTL_MAGIC, 11) #define CVI_VC_VENC_SEND_FRAMEEX _IO(CVI_VC_DRV_IOCTL_MAGIC, 12) #define CVI_VC_VENC_REQUEST_IDR _IO(CVI_VC_DRV_IOCTL_MAGIC, 13) #define CVI_VC_VENC_SET_ROI_ATTR _IO(CVI_VC_DRV_IOCTL_MAGIC, 14) #define CVI_VC_VENC_GET_ROI_ATTR _IO(CVI_VC_DRV_IOCTL_MAGIC, 15) #define CVI_VC_VENC_SET_H264_TRANS _IO(CVI_VC_DRV_IOCTL_MAGIC, 16) #define CVI_VC_VENC_GET_H264_TRANS _IO(CVI_VC_DRV_IOCTL_MAGIC, 17) #define CVI_VC_VENC_SET_H264_ENTROPY _IO(CVI_VC_DRV_IOCTL_MAGIC, 18) #define CVI_VC_VENC_GET_H264_ENTROPY _IO(CVI_VC_DRV_IOCTL_MAGIC, 19) #define CVI_VC_VENC_SET_H264_VUI _IO(CVI_VC_DRV_IOCTL_MAGIC, 20) #define CVI_VC_VENC_GET_H264_VUI _IO(CVI_VC_DRV_IOCTL_MAGIC, 21) #define CVI_VC_VENC_SET_H265_VUI _IO(CVI_VC_DRV_IOCTL_MAGIC, 22) #define CVI_VC_VENC_GET_H265_VUI _IO(CVI_VC_DRV_IOCTL_MAGIC, 23) #define CVI_VC_VENC_SET_JPEG_PARAM _IO(CVI_VC_DRV_IOCTL_MAGIC, 24) #define CVI_VC_VENC_GET_JPEG_PARAM _IO(CVI_VC_DRV_IOCTL_MAGIC, 25) #define CVI_VC_VENC_GET_RC_PARAM _IO(CVI_VC_DRV_IOCTL_MAGIC, 26) #define CVI_VC_VENC_SET_RC_PARAM _IO(CVI_VC_DRV_IOCTL_MAGIC, 27) #define CVI_VC_VENC_SET_REF_PARAM _IO(CVI_VC_DRV_IOCTL_MAGIC, 28) #define CVI_VC_VENC_GET_REF_PARAM _IO(CVI_VC_DRV_IOCTL_MAGIC, 29) #define CVI_VC_VENC_SET_H265_TRANS _IO(CVI_VC_DRV_IOCTL_MAGIC, 30) #define CVI_VC_VENC_GET_H265_TRANS _IO(CVI_VC_DRV_IOCTL_MAGIC, 31) #define CVI_VC_VENC_SET_FRAMELOST_STRATEGY _IO(CVI_VC_DRV_IOCTL_MAGIC, 32) #define CVI_VC_VENC_GET_FRAMELOST_STRATEGY _IO(CVI_VC_DRV_IOCTL_MAGIC, 33) #define CVI_VC_VENC_SET_SUPERFRAME_STRATEGY _IO(CVI_VC_DRV_IOCTL_MAGIC, 34) #define CVI_VC_VENC_GET_SUPERFRAME_STRATEGY _IO(CVI_VC_DRV_IOCTL_MAGIC, 35) #define CVI_VC_VENC_SET_CHN_PARAM _IO(CVI_VC_DRV_IOCTL_MAGIC, 36) #define CVI_VC_VENC_GET_CHN_PARAM _IO(CVI_VC_DRV_IOCTL_MAGIC, 37) #define CVI_VC_VENC_SET_MOD_PARAM _IO(CVI_VC_DRV_IOCTL_MAGIC, 38) #define CVI_VC_VENC_GET_MOD_PARAM _IO(CVI_VC_DRV_IOCTL_MAGIC, 39) #define CVI_VC_VENC_ATTACH_VBPOOL _IO(CVI_VC_DRV_IOCTL_MAGIC, 40) #define CVI_VC_VENC_DETACH_VBPOOL _IO(CVI_VC_DRV_IOCTL_MAGIC, 41) #define CVI_VC_VENC_SET_CUPREDICTION _IO(CVI_VC_DRV_IOCTL_MAGIC, 42) #define CVI_VC_VENC_GET_CUPREDICTION _IO(CVI_VC_DRV_IOCTL_MAGIC, 43) #define CVI_VC_VENC_CALC_FRAME_PARAM _IO(CVI_VC_DRV_IOCTL_MAGIC, 44) #define CVI_VC_VENC_SET_FRAME_PARAM _IO(CVI_VC_DRV_IOCTL_MAGIC, 45) #define CVI_VC_VENC_GET_FRAME_PARAM _IO(CVI_VC_DRV_IOCTL_MAGIC, 46) /* decoder ioctl */ #define CVI_VC_VDEC_CREATE_CHN _IO(CVI_VC_DRV_IOCTL_MAGIC, 47) #define CVI_VC_VDEC_DESTROY_CHN _IO(CVI_VC_DRV_IOCTL_MAGIC, 48) #define CVI_VC_VDEC_GET_CHN_ATTR _IO(CVI_VC_DRV_IOCTL_MAGIC, 49) #define CVI_VC_VDEC_SET_CHN_ATTR _IO(CVI_VC_DRV_IOCTL_MAGIC, 50) #define CVI_VC_VDEC_START_RECV_STREAM _IO(CVI_VC_DRV_IOCTL_MAGIC, 51) #define CVI_VC_VDEC_STOP_RECV_STREAM _IO(CVI_VC_DRV_IOCTL_MAGIC, 52) #define CVI_VC_VDEC_QUERY_STATUS _IO(CVI_VC_DRV_IOCTL_MAGIC, 53) #define CVI_VC_VDEC_RESET_CHN _IO(CVI_VC_DRV_IOCTL_MAGIC, 54) #define CVI_VC_VDEC_SET_CHN_PARAM _IO(CVI_VC_DRV_IOCTL_MAGIC, 55) #define CVI_VC_VDEC_GET_CHN_PARAM _IO(CVI_VC_DRV_IOCTL_MAGIC, 56) #define CVI_VC_VDEC_SEND_STREAM _IO(CVI_VC_DRV_IOCTL_MAGIC, 57) #define CVI_VC_VDEC_GET_FRAME _IO(CVI_VC_DRV_IOCTL_MAGIC, 58) #define CVI_VC_VDEC_RELEASE_FRAME _IO(CVI_VC_DRV_IOCTL_MAGIC, 59) #define CVI_VC_VDEC_ATTACH_VBPOOL _IO(CVI_VC_DRV_IOCTL_MAGIC, 60) #define CVI_VC_VDEC_DETACH_VBPOOL _IO(CVI_VC_DRV_IOCTL_MAGIC, 61) #define CVI_VC_VDEC_SET_MOD_PARAM _IO(CVI_VC_DRV_IOCTL_MAGIC, 62) #define CVI_VC_VDEC_GET_MOD_PARAM _IO(CVI_VC_DRV_IOCTL_MAGIC, 63) #define CVI_VC_DECODE_H265_TEST _IO(CVI_VC_DRV_IOCTL_MAGIC, 64) #define CVI_VC_DECODE_H264_TEST _IO(CVI_VC_DRV_IOCTL_MAGIC, 65) #define CVI_VC_ENCODE_MAIN_TEST _IO(CVI_VC_DRV_IOCTL_MAGIC, 66) #define CVI_VC_ENC_DEC_JPEG_TEST _IO(CVI_VC_DRV_IOCTL_MAGIC, 67) /* encoder slice split */ #define CVI_VC_VENC_SET_H264_SLICE_SPLIT _IO(CVI_VC_DRV_IOCTL_MAGIC, 68) #define CVI_VC_VENC_GET_H264_SLICE_SPLIT _IO(CVI_VC_DRV_IOCTL_MAGIC, 69) #define CVI_VC_VENC_SET_H265_SLICE_SPLIT _IO(CVI_VC_DRV_IOCTL_MAGIC, 70) #define CVI_VC_VENC_GET_H265_SLICE_SPLIT _IO(CVI_VC_DRV_IOCTL_MAGIC, 71) /* encoder ioctl */ #define CVI_VC_VENC_GET_H264_Dblk _IO(CVI_VC_DRV_IOCTL_MAGIC, 72) #define CVI_VC_VENC_SET_H264_Dblk _IO(CVI_VC_DRV_IOCTL_MAGIC, 73) #define CVI_VC_VENC_GET_H265_Dblk _IO(CVI_VC_DRV_IOCTL_MAGIC, 74) #define CVI_VC_VENC_SET_H265_Dblk _IO(CVI_VC_DRV_IOCTL_MAGIC, 75) #define CVI_VC_VENC_SET_H264_INTRA_PRED _IO(CVI_VC_DRV_IOCTL_MAGIC, 76) #define CVI_VC_VENC_GET_H264_INTRA_PRED _IO(CVI_VC_DRV_IOCTL_MAGIC, 77) #endif /* __CVI_VC_DRV_IOCTL_H__ */