49 #include <linux/videodev.h> 51 #include <sys/ioctl.h> 70 #include <sys/types.h> 73 #include <sys/ioctl.h> 80 #include "ioctls_def.h" 83 #include "econ_typedef.h" 84 #include "econ_error.h" 85 #include "econ_fn_res_prototype.h" 87 #define ECAM50_MAX_IMAGE_WIDTH 2592 88 #define ECAM50_MAX_IMAGE_HEIGHT 1944 89 #define ECAM50_MAX_PATH_NAME 500 92 #define ECAM50_WRITE 1 93 #define ECAM50_QUERY 2 98 #define ECAM50_TEST_BUFFER_NUM 2 103 #define V4L2_SENS_TRIG_FOCUS (V4L2_CID_PRIVATE_BASE + 1) 104 #define V4L2_SENS_FCS_OLAY (V4L2_CID_PRIVATE_BASE + 2) 106 #define V4L2_SENS_FLASH (V4L2_CID_PRIVATE_BASE + 3) 107 #define V4L2_SENS_FLASH_LUM (V4L2_CID_PRIVATE_BASE + 4) 108 #define V4L2_SENS_FLASH_TORCH (V4L2_CID_PRIVATE_BASE + 5) 109 #define V4L2_SENS_FLASH_FLASH (V4L2_CID_PRIVATE_BASE + 6) 110 #define V4L2_SENS_FLASH_STROBE (V4L2_CID_PRIVATE_BASE + 7) 111 #define V4L2_SENS_FLASH_FLASH_LUM (V4L2_CID_PRIVATE_BASE + 10) 112 #define V4L2_SENS_FLASH_TORCH_LUM (V4L2_CID_PRIVATE_BASE + 11) 114 #define V4L2_SENS_EFFECTS (V4L2_CID_PRIVATE_BASE + 8) 115 #define V4L2_SENS_FOCUS_DISABLE (V4L2_CID_PRIVATE_BASE + 9) 117 #define V4L2_SENS_ANTISHAKE (V4L2_CID_PRIVATE_BASE + 12) 118 #define V4L2_SENS_ANTISHAKE_STATUS (V4L2_CID_PRIVATE_BASE + 13) 127 struct v4l2_format fmt;
129 struct v4l2_control ctrl_whitebalance,ctrl_brightness, \
130 ctrl_contrast,ctrl_saturation,ctrl_exposure, \
131 ctrl_focus,ctrl_sharpness,ctrl_hue,ctrl_effects, \
132 ctrl_h_mirror,ctrl_flash,ctrl_anti_shake,ctrl_v_flip;
134 struct v4l2_queryctrl qctrl_whitebalance,qctrl_brightness,qctrl_contrast, \
135 qctrl_saturation,qctrl_exposure,qctrl_focus, \
136 qctrl_sharpness,qctrl_effects,qctrl_v_flip, \
137 qctrl_h_mirror,qctrl_flash,qctrl_anti_shake,qctrl_hue;
139 struct v4l2_streamparm fps;
140 struct v4l2_requestbuffers req;
141 enum v4l2_buf_type type;
142 struct v4l2_buffer buf;
145 PINT8 rgb_888_buffer;
146 PINT8 raw_read_buffer;
147 UINT8 save_raw_file_needed;
151 UINT32 Maintain_threads;
154 UINT32 stream_thread_kill :1;
164 UINT32 anti_shake :1;
168 struct __attribute__ ((__packed__))
185 UINT32 clr_important;
189 INT8 save_path[ECAM50_MAX_PATH_NAME];
191 struct fb_var_screeninfo gvinfo;
192 struct fb_var_screeninfo vinfo;
199 pthread_t stream_tid;
205 }buffers[ECAM50_TEST_BUFFER_NUM];
212 UINT32 record_mode :1;
213 UINT32 stream_lcd :1;
217 FILE *fp_file_record;
225 extern FNRESLT save_snap(
ecam50 *cam,
const char *sFileName);
226 extern FNRESLT feature_test_api_init(
ecam50 **cam,
int nVidIndex);
227 extern FNRESLT feature_test_api_exit(
ecam50 *cam);
228 extern FNRESLT close_camera(
ecam50 *cam);
229 extern FNRESLT stream_on(
ecam50 *cam);
230 extern FNRESLT stream_off(
ecam50 *cam);
231 extern FNRESLT snap_apply_ctrl(
ecam50 *cam);
232 extern FNRESLT take_snap(
ecam50 *cam);
233 extern FNRESLT read_snap(
ecam50 *cam);
234 extern FNRESLT convert_bmp_565_bmp_888(
ecam50 *cam);
235 extern FNRESLT form_bmp_header_info(
ecam50 *cam);
236 extern FNRESLT anti_shake(
ecam50 *cam);
237 extern FNRESLT v_flip(
ecam50 *cam);
239 FNRESLT gettime(OUT PINT64 millisec,UINT8 flag);
ecam50 camera control structure
struct _ecam50_camera_data ecam50
ecam50 camera control structure
FNRESLT register_camera_data(ecam50 **cam, UINT8 configure_status_flag)
ecam50 interface