Home | History | Annotate | Download | only in mm-camera-interface

Lines Matching refs:my_obj

42 static int32_t mm_camera_send_native_ctrl_cmd(mm_camera_obj_t * my_obj,
44 static int32_t mm_camera_send_native_ctrl_timeout_cmd(mm_camera_obj_t * my_obj,
46 static int32_t mm_camera_ctrl_set_specialEffect (mm_camera_obj_t *my_obj, int effect) {
54 rc = ioctl(my_obj->ctrl_fd, VIDIOC_S_CTRL, &ctrl);
58 static int32_t mm_camera_ctrl_set_antibanding (mm_camera_obj_t *my_obj, int antibanding) {
64 rc = ioctl(my_obj->ctrl_fd, VIDIOC_S_CTRL, &ctrl);
68 static int32_t mm_camera_ctrl_set_auto_focus (mm_camera_obj_t *my_obj, int value)
80 if (-1 == ioctl (my_obj->ctrl_fd, VIDIOC_QUERYCTRL, &queryctrl)) {
85 if(0 != (rc = mm_camera_util_s_ctrl(my_obj->ctrl_fd,
95 static int32_t mm_camera_ctrl_set_whitebalance (mm_camera_obj_t *my_obj, int mode) {
118 if(0 != (rc = mm_camera_util_s_ctrl(my_obj->ctrl_fd,
127 static int32_t mm_camera_ctrl_set_toggle_afr (mm_camera_obj_t *my_obj) {
130 if(0 != (rc = mm_camera_util_g_ctrl(my_obj->ctrl_fd,
140 if(0 != (rc = mm_camera_util_g_ctrl(my_obj->ctrl_fd,
145 if(0 != (rc = mm_camera_util_s_ctrl(my_obj->ctrl_fd,
154 mm_camera_obj_t *my_obj,
177 static int32_t mm_camera_util_set_op_mode(mm_camera_obj_t * my_obj,
183 if (my_obj->op_mode == *op_mode)
185 if(mm_camera_poll_busy(my_obj) == TRUE) {
205 if(0 != (rc = mm_camera_util_s_ctrl(my_obj->ctrl_fd,
211 my_obj->op_mode = *op_mode;
217 int32_t mm_camera_set_general_parm(mm_camera_obj_t * my_obj, mm_camera_parm_t *parm)
224 return mm_camera_util_s_ctrl(my_obj->ctrl_fd,
228 return mm_camera_util_s_ctrl(my_obj->ctrl_fd, V4L2_CID_SHARPNESS,
231 return mm_camera_util_s_ctrl(my_obj->ctrl_fd, V4L2_CID_CONTRAST,
234 return mm_camera_util_s_ctrl(my_obj->ctrl_fd, V4L2_CID_SATURATION,
237 return mm_camera_util_s_ctrl(my_obj->ctrl_fd, V4L2_CID_BRIGHTNESS,
240 return mm_camera_ctrl_set_whitebalance (my_obj, *((int *)(parm->p_value)));
242 return mm_camera_util_s_ctrl(my_obj->ctrl_fd, MSM_V4L2_PID_ISO,
245 return mm_camera_util_s_ctrl(my_obj->ctrl_fd, V4L2_CID_ZOOM_ABSOLUTE,
248 return mm_camera_util_s_ctrl(my_obj->ctrl_fd, MSM_V4L2_PID_LUMA_ADAPTATION,
251 return mm_camera_ctrl_set_antibanding (my_obj, *((int *)(parm->p_value)));
253 return mm_camera_ctrl_set_auto_focus(my_obj, *((int *)(parm->p_value)));
255 return mm_camera_util_s_ctrl(my_obj->ctrl_fd, MSM_V4L2_PID_HJR, *((int *)(parm->p_value)));
257 return mm_camera_ctrl_set_specialEffect (my_obj, *((int *)(parm->p_value)));
259 return mm_camera_send_native_ctrl_cmd(my_obj,
262 return mm_camera_send_native_ctrl_cmd(my_obj,
265 return mm_camera_send_native_ctrl_cmd(my_obj,
268 return mm_camera_send_native_ctrl_cmd(my_obj,
271 return mm_camera_send_native_ctrl_cmd(my_obj,
274 my_obj->current_mode = *((camera_mode_t *)parm->p_value);
277 return mm_camera_send_native_ctrl_cmd(my_obj,
280 return mm_camera_send_native_ctrl_cmd(my_obj,
283 return mm_camera_send_native_ctrl_cmd(my_obj,
286 return mm_camera_send_native_ctrl_cmd(my_obj,
290 return mm_camera_send_native_ctrl_cmd(my_obj,
293 return mm_camera_send_native_ctrl_cmd(my_obj,
297 return mm_camera_send_native_ctrl_cmd(my_obj,
301 return mm_camera_send_native_ctrl_cmd(my_obj,
305 return mm_camera_send_native_ctrl_cmd(my_obj,
308 return mm_camera_send_native_ctrl_cmd(my_obj,
311 return mm_camera_send_native_ctrl_cmd(my_obj,
314 return mm_camera_send_native_ctrl_cmd(my_obj,
317 return mm_camera_send_native_ctrl_cmd(my_obj,
320 return mm_camera_send_native_ctrl_cmd(my_obj, CAMERA_SET_AWB_LOCK,
323 return mm_camera_send_native_ctrl_cmd(my_obj, CAMERA_SET_PARM_MCE,
326 return mm_camera_send_native_ctrl_cmd(my_obj, CAMERA_GET_PARM_HORIZONTAL_VIEW_ANGLE,
329 return mm_camera_send_native_ctrl_cmd(my_obj, CAMERA_GET_PARM_VERTICAL_VIEW_ANGLE,
332 return mm_camera_send_native_ctrl_cmd(my_obj,
336 return mm_camera_send_native_ctrl_cmd(my_obj, CAMERA_GET_PARM_SNAPSHOTDATA,
339 return mm_camera_send_native_ctrl_cmd(my_obj,
342 return mm_camera_send_native_ctrl_cmd(my_obj,
345 return mm_camera_send_native_ctrl_cmd(my_obj,
348 return mm_camera_send_native_ctrl_cmd(my_obj,
351 return mm_camera_send_native_ctrl_cmd(my_obj,
356 return mm_camera_send_native_ctrl_cmd(my_obj,
359 if(my_obj->op_mode == MM_CAMERA_OP_MODE_ZSL){
366 return mm_camera_send_native_ctrl_cmd(my_obj,
370 my_obj,
374 return mm_camera_send_native_ctrl_cmd(my_obj,
378 return mm_camera_send_native_ctrl_cmd(my_obj,
382 my_obj->full_liveshot = *((int *)(parm->p_value));
383 return mm_camera_send_native_ctrl_cmd(my_obj,
388 return mm_camera_send_native_ctrl_cmd(my_obj,
393 return mm_camera_send_native_ctrl_cmd(my_obj,
397 return mm_camera_send_native_ctrl_cmd(my_obj,
401 return mm_camera_send_native_ctrl_cmd(my_obj,
410 static int32_t mm_camera_send_native_ctrl_cmd(mm_camera_obj_t * my_obj,
421 rc = mm_camera_util_private_s_ctrl(my_obj->ctrl_fd, MSM_V4L2_PID_CTRL_CMD,
433 static int32_t mm_camera_send_native_ctrl_timeout_cmd(mm_camera_obj_t * my_obj,
444 rc = mm_camera_util_private_s_ctrl(my_obj->ctrl_fd, MSM_V4L2_PID_CTRL_CMD,
455 int32_t mm_camera_set_parm(mm_camera_obj_t * my_obj,
463 rc = mm_camera_util_set_op_mode(my_obj,
467 rc = mm_camera_send_native_ctrl_cmd(my_obj,
473 memcpy(&my_obj->dim, (cam_ctrl_dimension_t *)parm->p_value,
477 my_obj->dim.display_width,my_obj->dim.display_height,
478 my_obj->dim.video_width, my_obj->dim.video_height,
479 my_obj->dim.picture_width,my_obj->dim.picture_height,
480 my_obj->dim.ui_thumbnail_width,my_obj->dim.ui_thumbnail_height,
481 my_obj->dim.raw_picture_width,my_obj->dim.raw_picture_height);
485 my_obj->snap_burst_num_by_user = *((int *)parm->p_value);
492 rc = mm_camera_ch_fn(my_obj, fmt->ch_type,
497 return mm_camera_send_native_ctrl_cmd(my_obj, CAMERA_CHECK_AF_RETRY,
500 return mm_camera_send_native_ctrl_cmd(my_obj, CAMERA_SET_LG_CAF_LOCK,
503 return mm_camera_send_native_ctrl_cmd(my_obj, CAMERA_SET_INFORM_STARTPREVIEW,
506 rc = mm_camera_set_general_parm(my_obj, parm);
512 int32_t mm_camera_get_parm(mm_camera_obj_t * my_obj,
519 return rc = mm_camera_ch_fn(my_obj,
524 memcpy(parm->p_value, &my_obj->dim, sizeof(my_obj->dim));
527 my_obj->dim.display_width,my_obj->dim.display_height,
528 my_obj->dim.video_width,my_obj->dim.video_height,
529 my_obj->dim.picture_width,my_obj->dim.picture_height,
530 my_obj->dim.ui_thumbnail_width,my_obj->dim.ui_thumbnail_height,
531 my_obj->dim.orig_video_width,my_obj->dim.orig_video_height,
532 my_obj->dim.orig_picture_width,my_obj->dim.orig_picture_height,
533 my_obj->dim.main_img_format, my_obj->dim.thumb_format);
538 dim->height = my_obj->properties.max_pict_height;
539 dim->width = my_obj->properties.max_pict_width;
545 *((cam_format_t *)parm->p_value) = my_obj->properties.pxlcode;
548 *((int *)parm->p_value) = my_obj->properties.preview_format;
551 *((int *)parm->p_value) = my_obj->properties.preview_sizes_cnt;
554 *((int *)parm->p_value) = my_obj->properties.video_sizes_cnt;
557 *((int *)parm->p_value) = my_obj->properties.thumb_sizes_cnt;
560 *((int *)parm->p_value) = my_obj->properties.hfr_sizes_cnt;
563 *((int *)parm->p_value) = my_obj->properties.hfr_frame_skip;
566 *((int *)parm->p_value) = my_obj->properties.default_preview_width;
569 *((int *)parm->p_value) = my_obj->properties.default_preview_height;
572 *((int *)parm->p_value) = my_obj->properties.bestshot_reconfigure;
577 dim->height = my_obj->properties.max_preview_height;
578 dim->width = my_obj->properties.max_preview_width;
586 dim->height = my_obj->properties.max_video_height;
587 dim->width = my_obj->properties.max_video_width;
593 return mm_camera_send_native_ctrl_cmd(my_obj, CAMERA_GET_PARM_MAX_HFR_MODE,
596 return mm_camera_send_native_ctrl_cmd(my_obj, CAMERA_GET_PARM_FOCAL_LENGTH,
599 return mm_camera_send_native_ctrl_cmd(my_obj, CAMERA_GET_PARM_HORIZONTAL_VIEW_ANGLE,
602 return mm_camera_send_native_ctrl_cmd(my_obj, CAMERA_GET_PARM_VERTICAL_VIEW_ANGLE,
605 return mm_camera_send_native_ctrl_cmd(my_obj, CAMERA_GET_PARM_FOCUS_DISTANCES,
608 return mm_camera_send_native_ctrl_cmd(my_obj, CAMERA_QUERY_FLASH_FOR_SNAPSHOT,
611 return mm_camera_send_native_ctrl_cmd(my_obj, CAMERA_GET_PARM_3D_FRAME_FORMAT,
614 return mm_camera_send_native_ctrl_cmd(my_obj, CAMERA_GET_PARM_MAXZOOM,
618 return mm_camera_send_native_ctrl_cmd(my_obj, CAMERA_GET_PARM_ZOOMRATIOS,
623 return mm_camera_send_native_ctrl_cmd(my_obj, CAMERA_GET_PARM_DEF_PREVIEW_SIZES,
628 return mm_camera_send_native_ctrl_cmd(my_obj, CAMERA_GET_PARM_DEF_VIDEO_SIZES,
633 return mm_camera_send_native_ctrl_cmd(my_obj, CAMERA_GET_PARM_DEF_THUMB_SIZES,
638 return mm_camera_send_native_ctrl_cmd(my_obj, CAMERA_GET_PARM_DEF_HFR_SIZES,
642 *((mm_camera_op_mode_type_t *)parm->p_value) = my_obj->op_mode;
645 *((int *)parm->p_value) = my_obj->snap_burst_num_by_user;
648 *((int *)parm->p_value) = my_obj->properties.vfe_output_enable;
652 return mm_camera_send_native_ctrl_cmd(my_obj, CAMERA_GET_PARM_LUX_IDX,
655 return mm_camera_send_native_ctrl_cmd(my_obj, CAMERA_GET_MAX_NUM_FACES_DECT,
658 return mm_camera_send_native_ctrl_cmd(my_obj, CAMERA_GET_FACIAL_FEATURE_INFO,
661 rc = mm_camera_send_native_ctrl_cmd(my_obj,
663 //my_obj->channel_interface_mask = *((exp_bracketing_t *)(parm->p_value));
666 return mm_camera_send_native_ctrl_cmd(my_obj, CAMERA_GET_PARM_LOW_LIGHT_FOR_ZSL,
670 return mm_camera_send_native_ctrl_cmd(my_obj, CAMERA_GET_PARM_AF_STATUS,
674 return mm_camera_send_native_ctrl_cmd(my_obj, CAMERA_GET_PARM_F_NUMBER,
684 int32_t mm_camera_request_buf(mm_camera_obj_t * my_obj, mm_camera_reg_buf_t *buf)
687 rc = mm_camera_ch_fn(my_obj, buf->ch_type,
692 int32_t mm_camera_prepare_buf(mm_camera_obj_t * my_obj, mm_camera_reg_buf_t *buf)
695 rc = mm_camera_ch_fn(my_obj, buf->ch_type,
699 int32_t mm_camera_unprepare_buf(mm_camera_obj_t * my_obj, mm_camera_channel_type_t ch_type)
702 pthread_mutex_lock(&my_obj->ch[ch_type].mutex);
703 rc = mm_camera_ch_fn(my_obj, ch_type,
705 pthread_mutex_unlock(&my_obj->ch[ch_type].mutex);
709 static int mm_camera_evt_sub(mm_camera_obj_t * my_obj,
719 if(my_obj->evt_type_mask == (uint32_t)(1 << evt_type)) {
720 rc = ioctl(my_obj->ctrl_fd, VIDIOC_UNSUBSCRIBE_EVENT, &sub);
723 rc = ioctl(my_obj->ctrl_fd, VIDIOC_UNSUBSCRIBE_EVENT, &sub);
726 my_obj->evt_type_mask &= ~(1 << evt_type);
727 if(my_obj->evt_type_mask == 0) {
729 mm_camera_poll_thread_release(my_obj, MM_CAMERA_CH_MAX);
732 my_obj->evt_type_mask) {
734 rc = ioctl(my_obj->ctrl_fd, VIDIOC_SUBSCRIBE_EVENT, &sub);
739 rc = ioctl(my_obj->ctrl_fd, VIDIOC_SUBSCRIBE_EVENT, &sub);
744 my_obj->evt_type_mask |= (1 << evt_type);
745 if(my_obj->evt_type_mask == (uint32_t)(1 << evt_type)) {
747 rc = mm_camera_poll_thread_launch(my_obj, MM_CAMERA_CH_MAX);
754 int mm_camera_reg_event(mm_camera_obj_t * my_obj, mm_camera_event_notify_t evt_cb,
759 mm_camera_evt_obj_t *evt_array = &my_obj->evt[evt_type];
785 rc = mm_camera_evt_sub(my_obj, evt_type, evt_array->reg_count);
791 static int32_t mm_camera_send_af_failed_event(mm_camera_obj_t *my_obj)
799 rc = mm_camera_poll_send_ch_event(my_obj, &event);
803 static int32_t mm_camera_send_ch_on_off_event(mm_camera_obj_t *my_obj,
814 rc = mm_camera_poll_send_ch_event(my_obj, &event);
818 int32_t mm_camera_action_start(mm_camera_obj_t *my_obj,
827 if(0 > mm_camera_send_native_ctrl_cmd(my_obj,
830 mm_camera_send_af_failed_event(my_obj);
836 rc = mm_camera_ch_fn(my_obj, tmp->ch_type,
843 ch_type = mm_camera_util_opcode_2_ch_type(my_obj, opcode);
845 __func__,ch_type,my_obj->op_mode,opcode);
846 switch(my_obj->op_mode) {
854 rc = mm_camera_ch_fn(my_obj, ch_type,
866 rc = mm_camera_ch_fn(my_obj, ch_type,
873 rc = mm_camera_send_native_ctrl_timeout_cmd(my_obj,CAMERA_PREPARE_SNAPSHOT, 0, NULL, 2000);
884 my_obj->op_mode, opcode);
886 rc = mm_camera_send_ch_on_off_event(my_obj,ch_type,MM_CAMERA_CH_EVT_STREAMING_ON);
890 int32_t mm_camera_action_stop(mm_camera_obj_t *my_obj,
897 return mm_camera_send_native_ctrl_cmd(my_obj,
901 ch_type = mm_camera_util_opcode_2_ch_type(my_obj, opcode);
902 switch(my_obj->op_mode) {
910 rc = mm_camera_ch_fn(my_obj, ch_type,
923 rc = mm_camera_ch_fn(my_obj , ch_type,
935 rc = mm_camera_send_ch_on_off_event(my_obj,ch_type,MM_CAMERA_CH_EVT_STREAMING_OFF);
939 static void mm_camera_init_ch_stream_count(mm_camera_obj_t *my_obj)
945 my_obj->ch_stream_count[i].stream_on_count_cfg = 2;
946 my_obj->ch_stream_count[i].stream_off_count_cfg = 2;
948 my_obj->ch_stream_count[i].stream_on_count_cfg = 1;
949 my_obj->ch_stream_count[i].stream_off_count_cfg = 1;
954 int32_t mm_camera_open(mm_camera_obj_t *my_obj,
965 if(my_obj->op_mode != MM_CAMERA_OP_MODE_NOTUSED) {
967 __func__, my_obj->op_mode);
975 snprintf(dev_name, sizeof(dev_name), "/dev/%s", mm_camera_util_get_dev_name(my_obj));
976 //rc = mm_camera_dev_open(&my_obj->ctrl_fd, dev_name);
981 my_obj->ctrl_fd = open(dev_name,O_RDWR | O_NONBLOCK);
982 ALOGV("%s: ctrl_fd = %d", __func__, my_obj->ctrl_fd);
984 if((my_obj->ctrl_fd > 0) || (errno != EIO) || (n_try <= 0 )) {
995 if (my_obj->ctrl_fd <= 0) {
997 __func__, mm_camera_util_get_dev_name(my_obj),errno);
1006 my_obj->ds_fd = mm_camera_socket_create(my_obj->my_id, MM_CAMERA_SOCK_TYPE_UDP); // TODO: UDP for now, change to TCP
1007 ALOGV("%s: ds_fd = %d", __func__, my_obj->ds_fd);
1009 if((my_obj->ds_fd > 0) || (n_try <= 0 )) {
1019 if (my_obj->ds_fd <= 0) {
1021 __func__, mm_camera_util_get_dev_name(my_obj),errno);
1022 close(my_obj->ctrl_fd);
1023 my_obj->ctrl_fd = -1;
1028 rc = mm_camera_util_s_ctrl(my_obj->ctrl_fd,
1033 close(my_obj->ctrl_fd);
1034 close(my_obj->ds_fd);
1035 my_obj->ctrl_fd = -1;
1036 my_obj->ds_fd = -1;
1040 rc = mm_camera_util_s_ctrl(my_obj->ctrl_fd,
1043 my_obj->op_mode = op_mode;
1044 my_obj->current_mode = CAMERA_MODE_2D; /* set geo mode to 2D by default */
1048 memset(&my_obj->properties, 0, sizeof(cam_prop_t));
1049 rc = mm_camera_send_native_ctrl_cmd(my_obj,
1052 (void *)& my_obj->properties);
1055 close(my_obj->ctrl_fd);
1056 close(my_obj->ds_fd);
1057 my_obj->ctrl_fd = -1;
1058 my_obj->ds_fd = -1;
1062 mm_camera_poll_threads_init(my_obj);
1063 mm_camera_init_ch_stream_count(my_obj);
1066 mm_camera_poll_thread_launch(my_obj,(mm_camera_channel_type_t)i);
1069 __func__, dev_name, my_obj->ctrl_fd, my_obj->op_mode, rc);
1073 int32_t mm_camera_close(mm_camera_obj_t *my_obj)
1078 mm_camera_ch_fn(my_obj, (mm_camera_channel_type_t)i,
1082 my_obj->op_mode = MM_CAMERA_OP_MODE_NOTUSED;
1083 if(my_obj->ctrl_fd > 0) {
1084 rc = close(my_obj->ctrl_fd);
1088 __func__, my_obj->ctrl_fd, rc);
1090 my_obj->ctrl_fd = 0;
1092 if(my_obj->ds_fd > 0) {
1093 mm_camera_socket_close(my_obj->ds_fd);
1094 my_obj->ds_fd = 0;
1099 int32_t mm_camera_action(mm_camera_obj_t *my_obj, uint8_t start,
1104 if(start) rc = mm_camera_action_start(my_obj, opcode, parm);
1105 else rc = mm_camera_action_stop(my_obj, opcode, parm);
1110 int32_t mm_camera_ch_acquire(mm_camera_obj_t *my_obj, mm_camera_channel_type_t ch_type)
1112 return mm_camera_ch_fn(my_obj,ch_type, MM_CAMERA_STATE_EVT_ACQUIRE, 0);
1115 void mm_camera_ch_release(mm_camera_obj_t *my_obj, mm_camera_channel_type_t ch_type)
1117 mm_camera_ch_fn(my_obj,ch_type, MM_CAMERA_STATE_EVT_RELEASE, 0);
1120 int32_t mm_camera_sendmsg(mm_camera_obj_t *my_obj, void *msg, uint32_t buf_size, int sendfd)
1122 return mm_camera_socket_sendmsg(my_obj->ds_fd, msg, buf_size, sendfd);