Files
Linux_Drivers/middleware/v2/include/linux/cvi_vc_drv_ioctl.h
wangliang.wang db9bea8b47 fix build error.
Change-Id: I733d10d084d6cea8f281eb3d38a3bdd06c042b33
2023-03-10 20:30:16 +08:00

101 lines
5.7 KiB
C

/*
* 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__ */