int mm_app_start_snapshot(int cam_id) { int rc = MM_CAMERA_OK; int stream[2]; int op_mode = 0; uint8_t initial_reg_flag; mm_camera_frame_len_offset frame_offset_info; mm_camera_bundle_attr_t attr; mm_camera_app_obj_t *pme = mm_app_get_cam_obj(cam_id); if (MM_CAMERA_OK != mm_app_stop_preview(cam_id)) { CDBG_ERROR("%s: Stop preview Failed cam_id=%d\n",__func__,cam_id); return -1; } op_mode = MM_CAMERA_OP_MODE_CAPTURE; mm_app_set_snapshot_mode(cam_id,op_mode); usleep(20*1000); // pme->cam->ops->prepare_snapshot(pme->cam->camera_handle,pme->ch_id,0); if (MM_CAMERA_OK != (rc = mm_app_add_snapshot_stream(cam_id))) { CDBG_ERROR("%s : Add Snapshot stream err",__func__); return rc; } if (MM_CAMERA_OK != (rc = mm_app_config_snapshot_format(cam_id))) { CDBG_ERROR("%s : Config Snapshot stream err",__func__); return rc; } if (MM_CAMERA_OK != (rc = mm_app_streamon_snapshot(cam_id))) { CDBG_ERROR("%s : Stream on Snapshot stream err",__func__); return rc; } /* init jpeg buf */ pme->cam->ops->get_stream_parm(pme->cam->camera_handle, pme->ch_id, pme->stream[MM_CAMERA_SNAPSHOT_MAIN].id, MM_CAMERA_STREAM_OFFSET, &frame_offset_info); CDBG_ERROR("%s : alloc jpeg buf (len=%d)",__func__, frame_offset_info.frame_len); rc = mm_stream_alloc_bufs(pme, &pme->jpeg_buf, &frame_offset_info, 1); if (0 != rc) { CDBG_ERROR("%s : mm_stream_alloc_bufs err",__func__); return rc; } CDBG("%s: END, rc=%d\n", __func__, rc); return rc; }
int mm_app_start_snapshot(int cam_id) { int rc = MM_CAMERA_OK; int stream[2]; int op_mode = 0; mm_camera_bundle_attr_t attr; mm_camera_app_obj_t *pme = mm_app_get_cam_obj(cam_id); if (MM_CAMERA_OK != mm_app_stop_preview(cam_id)) { CDBG_ERROR("%s: Stop preview Failed cam_id=%d\n",__func__,cam_id); return -1; } op_mode = MM_CAMERA_OP_MODE_CAPTURE; mm_app_set_snapshot_mode(cam_id,op_mode); pme->cam->ops->prepare_snapshot(pme->cam->camera_handle,pme->ch_id,0); if (MM_CAMERA_OK != (rc = mm_app_add_snapshot_stream(cam_id))) { CDBG_ERROR("%s : Add Snapshot stream err",__func__); } if (MM_CAMERA_OK != (rc = mm_app_config_snapshot_format(cam_id))) { CDBG_ERROR("%s : Config Snapshot stream err",__func__); } if (MM_CAMERA_OK != (rc = mm_app_streamon_snapshot(cam_id))) { CDBG_ERROR("%s : Stream on Snapshot stream err",__func__); } #if 0 /*start OMX Jpeg encoder*/ #ifndef DISABLE_JPEG_ENCODING my_cam_app.hal_lib.omxJpegOpen(); #endif #endif end: CDBG("%s: END, rc=%d\n", __func__, rc); return rc; }