📄 artpec.h
字号:
typedef enum { WHITE_BALANCE_AUTO = 0, WHITE_BALANCE_HOLD = 1, WHITE_BALANCE_FIXED_OUTDOOR1 = 2, WHITE_BALANCE_FIXED_OUTDOOR2 = 3, WHITE_BALANCE_FIXED_INDOOR = 4, WHITE_BALANCE_FIXED_FLUOR1 = 5, WHITE_BALANCE_FIXED_FLUOR2 = 6} white_balance_type;typedef enum { EXPOSURE_AUTO = 0, EXPOSURE_AUTO_FLICKER_FREE_50 = 1, EXPOSURE_AUTO_FLICKER_FREE_60 = 2, EXPOSURE_HOLD = 3} exposure_type;typedef enum { EXPOSURE_WINDOW_CENTER = 0, EXPOSURE_WINDOW_LEFT = 1, EXPOSURE_WINDOW_RIGHT = 2, EXPOSURE_WINDOW_UPPER = 3, EXPOSURE_WINDOW_LOWER = 4, EXPOSURE_WINDOW_AUTO = 5, EXPOSURE_WINDOW_SPOT = 6} exposure_window_type;typedef enum { IR_FILTER_YES = 0, IR_FILTER_NO = 1, IR_FILTER_AUTO = 2} ir_filter_type;struct image_sensor_param { white_balance_type white_balance; exposure_type exposure; exposure_window_type exposure_window; int contrast; unsigned int brightness; unsigned int color_level; unsigned int sharpness; unsigned char blc_enabled; unsigned char dc_iris_enabled; unsigned int gain_max; int noise_color_reduction; unsigned int gain_threshold; signed int exposure_time_max; ir_filter_type ir_filter; unsigned char wide_enabled;};#define CAM_IOC_SET_IMAGE_SENSOR_PARAMS _IOW(ARTPEC_MAGIC, 0x90, struct image_sensor_param*)#define CAM_IOC_SET_WHITE_BALANCE_MODE _IOW(ARTPEC_MAGIC, 0x92, white_balance_type)#define CAM_IOC_SET_EXPOSURE_MODE _IOW(ARTPEC_MAGIC, 0x93, exposure_type)#define CAM_IOC_SET_EXPOSURE_WINDOW_MODE _IOW(ARTPEC_MAGIC, 0x94, exposure_window_type)#define CAM_IOC_SET_CONTRAST _IOW(ARTPEC_MAGIC, 0x95, unsigned int)#define CAM_IOC_SET_BRIGHTNESS _IOW(ARTPEC_MAGIC, 0x96, unsigned int)#define CAM_IOC_SET_COLOR_LEVEL _IOW(ARTPEC_MAGIC, 0x97, unsigned int)#define CAM_IOC_SET_SHARPNESS _IOW(ARTPEC_MAGIC, 0x98, unsigned int)#define CAM_IOC_SET_BLC_ENABLED _IOW(ARTPEC_MAGIC, 0x99, unsigned char)#define CAM_IOC_SET_DC_IRIS_ENABLED _IOW(ARTPEC_MAGIC, 0x9A, unsigned char)#define CAM_IOC_SET_GAIN_MAX _IOW(ARTPEC_MAGIC, 0x9B, unsigned int)#define CAM_IOC_SET_GAIN_THRESHOLD _IOW(ARTPEC_MAGIC, 0x9C, unsigned int)#define CAM_IOC_SET_EXPOSURE_TIME_MAX _IOW(ARTPEC_MAGIC, 0x9D, signed long)#define CAM_IOC_SET_IR_FILTER _IOW(ARTPEC_MAGIC, 0x9E, ir_filter_type)#define CAM_IOC_SET_WHITE_BALANCE_GAIN_LEVELS _IOW(ARTPEC_MAGIC, 0x9F, int*)#define CAM_IOC_GET_IMAGE_SENSOR_PARAMS _IOR(ARTPEC_MAGIC, 0xA0, struct image_sensor_param*)#define CAM_IOC_GET_DAY_NIGHT_STATUS _IO(ARTPEC_MAGIC, 0xA1)#define CAM_IOC_GET_WIDE_ENABLED _IO(ARTPEC_MAGIC, 0xA2)#define CAM_IOC_GET_WHITE_BALANCE_GAIN_LEVELS _IOW(ARTPEC_MAGIC, 0xA3, int*)/* Video (only available in Video Driver) */typedef enum { VIDEO_TYPE_PAL = 0, VIDEO_TYPE_NTSC = 1} video_type_type;typedef enum { COLOR_MODULATION_PAL_BGHI_NTSC_M = 0, COLOR_MODULATION_NTSC_4_43_50HZ_PAL_4_43_60HZ = 1, COLOR_MODULATION_PAL_N_NTSC_4_43_60HZ = 2, COLOR_MODULATION_NTSC_N_PAL_M = 3, COLOR_MODULATION_SEACAM_PAL_4_43_60HZ = 4} color_modulation_type;typedef enum { DEINTERLACE_MODE_NONE = 0, DEINTERLACE_MODE_FIELD_BLEND = 1} deinterlace_mode_type;struct video_param { color_modulation_type color_modulation; video_type_type video_type; int x_offset; int y_offset; unsigned char signal_enabled; unsigned char yc_mode_enabled; deinterlace_mode_type deinterlace_mode;};#define CAM_IOC_SET_VIDEO_PARAMS _IOW(ARTPEC_MAGIC, 0xb0, struct video_param*)#define CAM_IOC_GET_VIDEO_PARAMS _IOR(ARTPEC_MAGIC, 0xb1, struct video_param*)#define CAM_IOC_SET_COLOR_MODULATION _IOW(ARTPEC_MAGIC, 0xb2, color_modulation_type)#define CAM_IOC_DETECT_COLOR_MODULATION _IO(ARTPEC_MAGIC, 0xb3)#define CAM_IOC_GET_COLOR_MODULATION _IO(ARTPEC_MAGIC, 0xb4)#define CAM_IOC_SET_VIDEO_TYPE _IOW(ARTPEC_MAGIC, 0xb5, video_type_type)#define CAM_IOC_DETECT_VIDEO_TYPE _IO(ARTPEC_MAGIC, 0xb6)#define CAM_IOC_GET_VIDEO_TYPE _IO(ARTPEC_MAGIC, 0xb7)#define CAM_IOC_DETECT_SIGNAL_ENABLED _IO(ARTPEC_MAGIC, 0xb8)#define CAM_IOC_GET_SIGNAL_ENABLED _IO(ARTPEC_MAGIC, 0xb9)#define CAM_IOC_SET_YC_MODE_ENABLED _IOW(ARTPEC_MAGIC, 0xba, unsigned char)#define CAM_IOC_SET_X_OFFSET _IOW(ARTPEC_MAGIC, 0xbb, int)#define CAM_IOC_SET_Y_OFFSET _IOW(ARTPEC_MAGIC, 0xbc, int)#define CAM_IOC_SET_DEINTERLACE_MODE _IOW(ARTPEC_MAGIC, 0xbd, deinterlace_mode_type)/* MPEG specific */typedef enum { RC_PRIORITY_NONE = 0, RC_PRIORITY_QUALITY = 1, RC_PRIORITY_FRAMERATE = 2,} rc_prio_type;typedef enum { RC_MODE_VBR = 0, RC_MODE_CBR = 1} rc_mode_type;struct mpeg_param { unsigned char profile_level; unsigned char video_object_type; /* How often to insert the configuration headers. */ unsigned int config_interval; /* GOV structure. */ unsigned int i_per_gov; unsigned int p_per_i; unsigned int b_per_ip; /* Actual compression to use for the MPEG stream. Minimum compression * will always be the default compression. This is used to temporarily * increase the compression to prevent the bit rate from exceeding * what is specified by the profile@level (i.e., poor man's CBR). */ unsigned int compression; /* Use video packet headers for stream resynchronization */ unsigned char resync_marker_enabled; /* Allow user data to be added to the MPEG headers */ unsigned char user_data_enabled; /* Add a time stamp as user data in the GOV header */ unsigned char user_data_time_stamp_enabled; /* The compression may produce streams using fast P-VOPs. */ unsigned char fast_p_vop_enabled;};struct ratectrl_param { rc_mode_type mode; rc_prio_type prio; /* Target bit rate in kilobit/s */ unsigned int target_bit_rate; /* Frame rate range */ unsigned int max_fps; unsigned int min_fps; /* Compression range */ unsigned int max_compression; unsigned int min_compression; /* Max bit rate in kilobit/s */ unsigned int max_bit_rate;};/* <id> unique identifier for this user data. * <type> which header to add this user data in: STREAM_INFO_VOS_USER, * STREAM_INFO_VOL_USER or STREAM_INFO_GOV_USER. * <size> size of the user data, in bytes. */struct mpeg_user_data { unsigned int id; unsigned int type; unsigned int size; void *user_data;};#define CAM_IOC_SET_MPEG_PARAMS _IOW(ARTPEC_MAGIC, 0xd0, struct mpeg_param*)#define CAM_IOC_GET_MPEG_PARAMS _IOR(ARTPEC_MAGIC, 0xd1, struct mpeg_param*)#define CAM_IOC_SET_MPEG_PROFILE_LEVEL _IOW(ARTPEC_MAGIC, 0xd2, unsigned char)#define CAM_IOC_SET_MPEG_VIDEO_OBJECT_TYPE _IOW(ARTPEC_MAGIC, 0xd3, unsigned char)#define CAM_IOC_SET_MPEG_CONFIG_INTERVAL _IOW(ARTPEC_MAGIC, 0xd4, int)#define CAM_IOC_SET_MPEG_I_PER_GOV _IOW(ARTPEC_MAGIC, 0xd5, unsigned int)#define CAM_IOC_SET_MPEG_P_PER_I _IOW(ARTPEC_MAGIC, 0xd6, unsigned int)#define CAM_IOC_SET_MPEG_B_PER_IP _IOW(ARTPEC_MAGIC, 0xd7, unsigned int)#define CAM_IOC_SET_MPEG_USER_DATA _IOW(ARTPEC_MAGIC, 0xd8, struct mpeg_user_data*)#define CAM_IOC_SET_MPEG_COMPRESSION _IOW(ARTPEC_MAGIC, 0xd9, unsigned int)#define CAM_IOC_SET_MPEG_RESYNC_MARKER_ENABLED _IOW(ARTPEC_MAGIC, 0xda, unsigned char)#define CAM_IOC_SET_MPEG_USER_DATA_TIME_STAMP_ENABLED _IOW(ARTPEC_MAGIC, 0xdb, unsigned char)#define CAM_IOC_GET_MPEG_MAX_BIT_RATE _IOR(ARTPEC_MAGIC, 0xdc, unsigned int)#define CAM_IOC_SET_MPEG_USER_DATA_ENABLED _IOW(ARTPEC_MAGIC, 0xdd, unsigned char)#define CAM_IOC_SET_RC_PARAMS _IOW(ARTPEC_MAGIC, 0xe0, struct ratectrl_param*)#define CAM_IOC_GET_RC_PARAMS _IOW(ARTPEC_MAGIC, 0xe1, struct ratectrl_param*)#define CAM_IOC_SET_RC_MODE _IOW(ARTPEC_MAGIC, 0xe2, rc_mode_type)#define CAM_IOC_SET_RC_TARGET_RATE _IOW(ARTPEC_MAGIC, 0xe3, unsigned int)#define CAM_IOC_SET_RC_MAX_FPS _IOW(ARTPEC_MAGIC, 0xe4, unsigned int)#define CAM_IOC_SET_RC_MIN_FPS _IOW(ARTPEC_MAGIC, 0xe5, unsigned int)#define CAM_IOC_SET_RC_MAX_COMPRESSION _IOW(ARTPEC_MAGIC, 0xe6, unsigned int)#define CAM_IOC_SET_RC_MIN_COMPRESSION _IOW(ARTPEC_MAGIC, 0xe7, unsigned int)#define CAM_IOC_SET_RC_PRIORITY _IOW(ARTPEC_MAGIC, 0xe8, rc_prio_type)#define CAM_IOC_SET_RC_MAX_BIT_RATE _IOW(ARTPEC_MAGIC, 0xe9, unsigned int)/* MPEG-4 Video Object Types from ISO/IEC 14496-2:2003 table 6-11. */#define MPEG4_VOT_SIMPLE 1#define MPEG4_VOT_SIMPLE_SCALABLE 2#define MPEG4_VOT_CORE 3#define MPEG4_VOT_MAIN 4#define MPEG4_VOT_NBIT 5#define MPEG4_VOT_BASIC_ANIM_2D_TEXTURE 6#define MPEG4_VOT_ANIM_2D_MESH 7#define MPEG4_VOT_SIMPLE_FACE 8#define MPEG4_VOT_STILL_SCALABLE_TEXTURE 9#define MPEG4_VOT_ADVANCED_REAL_TIME_SIMPLE 10#define MPEG4_VOT_CORE_SCALABLE 11#define MPEG4_VOT_ADVANCED_CODING_EFFICIENCY 12#define MPEG4_VOT_ADVANCED_SCALABLE_TEXTURE 13#define MPEG4_VOT_SIMPLE_FBA 14#define MPEG4_VOT_SIMPLE_STUDIO 15#define MPEG4_VOT_CORE_STUDIO 16#define MPEG4_VOT_ADVANCED_SIMPLE 17#define MPEG4_VOT_FINE_GRANULARITY_SCALABLE 18#define MPEG4_VOT_COUNT 18#define MPEG4_VOT_UNKNOWN -1/* MPEG-4 Profile@Level combinations from ISO/IEC 14496-2:2003 table G-1. */#define MPEG4_PROFILE_SIMPLE_LEVEL_1 0x01#define MPEG4_PROFILE_SIMPLE_LEVEL_2 0x02#define MPEG4_PROFILE_SIMPLE_LEVEL_3 0x03#define MPEG4_PROFILE_SIMPLE_LEVEL_0 0x08#define MPEG4_PROFILE_SIMPLE_SCALABLE_LEVEL_0 0x10#define MPEG4_PROFILE_SIMPLE_SCALABLE_LEVEL_1 0x11#define MPEG4_PROFILE_SIMPLE_SCALABLE_LEVEL_2 0x12#define MPEG4_PROFILE_CORE_LEVEL_1 0x21#define MPEG4_PROFILE_CORE_LEVEL_2 0x22#define MPEG4_PROFILE_MAIN_LEVEL_2 0x32#define MPEG4_PROFILE_MAIN_LEVEL_3 0x33#define MPEG4_PROFILE_MAIN_LEVEL_4 0x34#define MPEG4_PROFILE_NBIT_LEVEL_2 0x42#define MPEG4_PROFILE_SCALABLE_TEXTURE_LEVEL_1 0x51#define MPEG4_PROFILE_SIMPLE_FACE_ANIMATION_LEVEL_1 0x61#define MPEG4_PROFILE_SIMPLE_FACE_ANIMATION_LEVEL_2 0x62#define MPEG4_PROFILE_SIMPLE_FBA_LEVEL_1 0x63#define MPEG4_PROFILE_SIMPLE_FBA_LEVEL_2 0x64#define MPEG4_PROFILE_BASIC_ANIMATED_TEXTURE_LEVEL_1 0x71#define MPEG4_PROFILE_BASIC_ANIMATED_TEXTURE_LEVEL_2 0x72#define MPEG4_PROFILE_HYBRID_LEVEL_1 0x81#define MPEG4_PROFILE_HYBRID_LEVEL_2 0x82#define MPEG4_PROFILE_ADVANCED_REAL_TIME_SIMPLE_LEVEL_1 0x91#define MPEG4_PROFILE_ADVANCED_REAL_TIME_SIMPLE_LEVEL_2 0x92#define MPEG4_PROFILE_ADVANCED_REAL_TIME_SIMPLE_LEVEL_3 0x93#define MPEG4_PROFILE_ADVANCED_REAL_TIME_SIMPLE_LEVEL_4 0x94#define MPEG4_PROFILE_CORE_SCALABLE_LEVEL_1 0xA1#define MPEG4_PROFILE_CORE_SCALABLE_LEVEL_2 0xA2#define MPEG4_PROFILE_CORE_SCALABLE_LEVEL_3 0xA3#define MPEG4_PROFILE_ADVANCED_CODING_EFFICIENCY_LEVEL_1 0xB1#define MPEG4_PROFILE_ADVANCED_CODING_EFFICIENCY_LEVEL_2 0xB2#define MPEG4_PROFILE_ADVANCED_CODING_EFFICIENCY_LEVEL_3 0xB3#define MPEG4_PROFILE_ADVANCED_CODING_EFFICIENCY_LEVEL_4 0xB4#define MPEG4_PROFILE_ADVANCED_CORE_LEVEL_1 0xC1#define MPEG4_PROFILE_ADVANCED_CORE_LEVEL_2 0xC2#define MPEG4_PROFILE_ADVANCED_SCALABLE_TEXTURE_LEVEL_1 0xD1#define MPEG4_PROFILE_ADVANCED_SCALABLE_TEXTURE_LEVEL_2 0xD2#define MPEG4_PROFILE_ADVANCED_SCALABLE_TEXTURE_LEVEL_3 0xD3#define MPEG4_PROFILE_SIMPLE_STUDIO_LEVEL_1 0xE1#define MPEG4_PROFILE_SIMPLE_STUDIO_LEVEL_2 0xE2#define MPEG4_PROFILE_SIMPLE_STUDIO_LEVEL_3 0xE3#define MPEG4_PROFILE_SIMPLE_STUDIO_LEVEL_4 0xE4#define MPEG4_PROFILE_CORE_STUDIO_LEVEL_1 0xE5#define MPEG4_PROFILE_CORE_STUDIO_LEVEL_2 0xE6#define MPEG4_PROFILE_CORE_STUDIO_LEVEL_3 0xE7#define MPEG4_PROFILE_CORE_STUDIO_LEVEL_4 0xE8#define MPEG4_PROFILE_ADVANCED_SIMPLE_LEVEL_0 0xF0#define MPEG4_PROFILE_ADVANCED_SIMPLE_LEVEL_1 0xF1#define MPEG4_PROFILE_ADVANCED_SIMPLE_LEVEL_2 0xF2#define MPEG4_PROFILE_ADVANCED_SIMPLE_LEVEL_3 0xF3#define MPEG4_PROFILE_ADVANCED_SIMPLE_LEVEL_4 0xF4#define MPEG4_PROFILE_ADVANCED_SIMPLE_LEVEL_5 0xF5#define MPEG4_PROFILE_ADVANCED_SIMPLE_LEVEL_3B 0xF7#define MPEG4_PROFILE_FINE_GRANULARITY_SCALABLE_LEVEL_0 0xF8#define MPEG4_PROFILE_FINE_GRANULARITY_SCALABLE_LEVEL_1 0xF9#define MPEG4_PROFILE_FINE_GRANULARITY_SCALABLE_LEVEL_2 0xFA#define MPEG4_PROFILE_FINE_GRANULARITY_SCALABLE_LEVEL_3 0xFB#define MPEG4_PROFILE_FINE_GRANULARITY_SCALABLE_LEVEL_4 0xFC#define MPEG4_PROFILE_FINE_GRANULARITY_SCALABLE_LEVEL_5 0xFD/* MPEG header types used in async_request.headers and mpeg_user_data.type */#define MPEG_HEADER_END 0x0001#define MPEG_HEADER_SEQ 0x0002#define MPEG_HEADER_GOP 0x0004#define MPEG_HEADER_PIC 0x0008#define MPEG_HEADER_VOS 0x0010#define MPEG_HEADER_VO 0x0020#define MPEG_HEADER_VOL 0x0040#define MPEG_HEADER_GOV 0x0080#define MPEG_HEADER_VOP 0x0100/* artpec debug */#define CAM_IOC_DEBUG_CMD _IOW(ARTPEC_MAGIC, 0xff, int)/* * call artpec debug commands, this command * should not be available in products to * keep driver size smaller */#endif/******************** END OF FILE artpec.h ***********************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -