diff options
author | Mike J. Chen <mjchen@sta.samsung.com> | 2010-11-23 17:39:22 -0800 |
---|---|---|
committer | Simon Wilson <simonwilson@google.com> | 2011-01-19 18:05:18 -0800 |
commit | 0bd85d7b37790a2486319001d5bdd2e86a866c4f (patch) | |
tree | 2eeb5a527e821b0e1d314b237a9c873ef08965d8 /libcamera/SecCamera.cpp | |
parent | 27cc0c7879c062a7a27c2479f45e974b20c1522c (diff) | |
download | device_samsung_crespo-0bd85d7b37790a2486319001d5bdd2e86a866c4f.zip device_samsung_crespo-0bd85d7b37790a2486319001d5bdd2e86a866c4f.tar.gz device_samsung_crespo-0bd85d7b37790a2486319001d5bdd2e86a866c4f.tar.bz2 |
SP5C11X: libcamera: #ifdef/#defines cleanup
Remove a bunch of #ifdef conditionals to cleanup the code. The #else
cases have generally not been tested for months now and we don't use
them, and this makes it easier to follow for the next round of logic
cleanup coming up.
Change-Id: I4a78901916ed9393ef9b904a1e8037cd645be3b4
Signed-off-by: Mike J. Chen <mjchen@sta.samsung.com>
Diffstat (limited to 'libcamera/SecCamera.cpp')
-rwxr-xr-x | libcamera/SecCamera.cpp | 480 |
1 files changed, 12 insertions, 468 deletions
diff --git a/libcamera/SecCamera.cpp b/libcamera/SecCamera.cpp index 6f14198..38f675c 100755 --- a/libcamera/SecCamera.cpp +++ b/libcamera/SecCamera.cpp @@ -25,7 +25,6 @@ //#define LOG_NDEBUG 0 #define LOG_TAG "SecCamera" -#define ADD_THUMB_IMG 1 #include <utils/Log.h> @@ -37,9 +36,6 @@ using namespace android; -//#define PERFORMANCE //Uncomment to measure performance -//#define DUMP_YUV //Uncomment to take a dump of YUV frame during capture - #define CHECK(return_value) \ if (return_value < 0) { \ LOGE("%s::%d fail. errno: %s, m_camera_id = %d\n", \ @@ -85,27 +81,6 @@ unsigned long measure_time(struct timeval *start, struct timeval *stop) return time; } -static inline unsigned long check_performance() -{ - unsigned long time = 0; - static unsigned long max = 0; - static unsigned long min = 0xffffffff; - - if (time_start.tv_sec == 0 && time_start.tv_usec == 0) { - gettimeofday(&time_start, NULL); - } else { - gettimeofday(&time_stop, NULL); - time = measure_time(&time_start, &time_stop); - if (max < time) max = time; - if (min > time) min = time; - LOGV("Interval: %lu us (%2.2lf fps), min:%2.2lf fps, max:%2.2lf fps\n", - time, 1000000.0 / time, 1000000.0 / max, 1000000.0 / min); - gettimeofday(&time_start, NULL); - } - - return time; -} - static int close_buffers(struct fimc_buffer *buffers) { int i; @@ -203,7 +178,6 @@ static int fimc_poll(struct pollfd *events) return ret; } -#ifdef SWP1_CAMERA_ADD_ADVANCED_FUNCTION static int fimc_esd_poll(struct pollfd *events) { int ret; @@ -222,44 +196,6 @@ static int fimc_esd_poll(struct pollfd *events) return ret; } -#endif /* SWP1_CAMERA_ADD_ADVANCED_FUNCTION */ - -#ifdef DUMP_YUV -static int save_yuv(struct fimc_buffer *m_buffers_c, int width, int height, int depth, int index, int frame_count) -{ - FILE *yuv_fp = NULL; - char filename[100], *buffer = NULL; - - /* file create/open, note to "wb" */ - yuv_fp = fopen("/data/main.yuv", "wb"); - if (yuv_fp == NULL) { - LOGE("Save YUV] file open error"); - return -1; - } - - buffer = (char *) malloc(m_buffers_c[index].length); - if (buffer == NULL) { - LOGE("Save YUV] buffer alloc failed"); - if (yuv_fp) fclose(yuv_fp); - return -1; - } - - memcpy(buffer, m_buffers_c[index].start, m_buffers_c[index].length); - - fflush(stdout); - - fwrite(buffer, 1, m_buffers_c[index].length, yuv_fp); - - fflush(yuv_fp); - - if (yuv_fp) - fclose(yuv_fp); - if (buffer) - free(buffer); - - return 0; -} -#endif //DUMP_YUV static int fimc_v4l2_querycap(int fp) { @@ -444,18 +380,6 @@ static int fimc_v4l2_querybuf(int fp, struct fimc_buffer *buffers, enum v4l2_buf } //LOGV("buffers[%d].start = %p v4l2_buf.length = %d", i, buffers[i].start, v4l2_buf.length); - } else { - -#if defined DUMP_YUV || defined (SEND_YUV_RECORD_DATA) - buffers[i].length = v4l2_buf.length; - if ((buffers[i].start = (char *)mmap(0, v4l2_buf.length, PROT_READ | PROT_WRITE, MAP_SHARED, - fp, v4l2_buf.m.offset)) < 0) { - LOGE("%s %d] mmap() failed\n",__func__, __LINE__); - return -1; - } - - //LOGV("buffers[%d].start = %p v4l2_buf.length = %d", i, buffers[i].start, v4l2_buf.length); -#endif } } @@ -481,9 +405,7 @@ static int fimc_v4l2_streamoff(int fp) enum v4l2_buf_type type = V4L2_BUF_TYPE_VIDEO_CAPTURE; int ret; -#ifdef SWP1_CAMERA_ADD_ADVANCED_FUNCTION LOGV("%s :", __func__); -#endif ret = ioctl(fp, VIDIOC_STREAMOFF, &type); if (ret < 0) { LOGE("ERR(%s):VIDIOC_STREAMOFF failed\n", __func__); @@ -564,7 +486,6 @@ static int fimc_v4l2_s_ctrl(int fp, unsigned int id, unsigned int value) return ctrl.value; } -#ifdef SWP1_CAMERA_ADD_ADVANCED_FUNCTION static int fimc_v4l2_s_ext_ctrl(int fp, unsigned int id, void *value) { struct v4l2_ext_controls ctrls; @@ -584,7 +505,6 @@ static int fimc_v4l2_s_ext_ctrl(int fp, unsigned int id, void *value) return ret; } -#endif static int fimc_v4l2_g_parm(int fp, struct v4l2_streamparm *streamparm) { @@ -637,7 +557,6 @@ SecCamera::SecCamera() : m_snapshot_max_width (MAX_BACK_CAMERA_SNAPSHOT_WIDTH), m_snapshot_max_height (MAX_BACK_CAMERA_SNAPSHOT_HEIGHT), m_angle(-1), - #ifdef SWP1_CAMERA_ADD_ADVANCED_FUNCTION m_anti_banding(-1), m_wdr(-1), m_anti_shake(-1), @@ -660,9 +579,6 @@ SecCamera::SecCamera() : m_video_gamma(-1), m_slow_ae(-1), m_camera_af_flag(-1), - #else - m_autofocus(-1), - #endif m_flag_camera_start(0), m_jpeg_thumbnail_width (0), m_jpeg_thumbnail_height(0), @@ -714,25 +630,12 @@ int SecCamera::initCamera(int index) */ m_camera_af_flag = -1; -#ifndef JPEG_FROM_SENSOR - m_jpeg_fd = SsbSipJPEGEncodeInit(); - LOGD("(%s):JPEG device open ID = %d\n", __func__, m_jpeg_fd); - if (m_jpeg_fd < 0) { - m_jpeg_fd = 0; - LOGE("ERR(%s):Cannot open a jpeg device file\n", __func__); - return -1; - } -#endif - m_cam_fd_temp = -1; m_cam_fd2_temp = -1; m_cam_fd = open(CAMERA_DEV_NAME, O_RDWR); if (m_cam_fd < 0) { LOGE("ERR(%s):Cannot open %s (error : %s)\n", __func__, CAMERA_DEV_NAME, strerror(errno)); -#ifndef JPEG_FROM_SENSOR - SsbSipJPEGEncodeDeInit(m_jpeg_fd); -#endif return -1; } @@ -774,7 +677,6 @@ int SecCamera::initCamera(int index) ret = fimc_v4l2_s_input(m_cam_fd, index); CHECK(ret); -#ifdef DUAL_PORT_RECORDING m_cam_fd2 = open(CAMERA_DEV_NAME2, O_RDWR); if (m_cam_fd2 < 0) { LOGE("ERR(%s):Cannot open %s (error : %s)\n", __func__, CAMERA_DEV_NAME2, strerror(errno)); @@ -829,7 +731,7 @@ int SecCamera::initCamera(int index) return -1; ret = fimc_v4l2_s_input(m_cam_fd2, index); CHECK(ret); -#endif + m_camera_id = index; setExifFixedAttribute(); @@ -851,35 +753,23 @@ void SecCamera::DeinitCamera() LOGV("%s :", __func__); if (m_flag_init) { -#ifndef JPEG_FROM_SENSOR - if (m_jpeg_fd > 0) { - if (SsbSipJPEGEncodeDeInit(m_jpeg_fd) != JPEG_OK) { - LOGE("ERR(%s):Fail on SsbSipJPEGEncodeDeInit\n", __func__); - } - m_jpeg_fd = 0; - } -#endif -#ifdef DUAL_PORT_RECORDING stopRecord(); -#endif /* close m_cam_fd after stopRecord() because stopRecord() * uses m_cam_fd to change frame rate */ - LOGE("DeinitCamera: m_cam_fd(%d)", m_cam_fd); + LOGI("DeinitCamera: m_cam_fd(%d)", m_cam_fd); if (m_cam_fd > -1) { close(m_cam_fd); m_cam_fd = -1; } -#ifdef DUAL_PORT_RECORDING - LOGE("DeinitCamera: m_cam_fd2(%d)", m_cam_fd2); + LOGI("DeinitCamera: m_cam_fd2(%d)", m_cam_fd2); if (m_cam_fd2 > -1) { close(m_cam_fd2); m_cam_fd2 = -1; } -#endif if (m_cam_fd_temp != -1) { close(m_cam_fd_temp); @@ -904,23 +794,12 @@ int SecCamera::getCameraFd(void) // ====================================================================== // Preview -int SecCamera::flagPreviewStart(void) -{ - LOGV("%s:started(%d)", __func__, m_flag_camera_start); - - return m_flag_camera_start > 0; -} - int SecCamera::startPreview(void) { v4l2_streamparm streamparm; struct sec_cam_parm *parms; parms = (struct sec_cam_parm*)&streamparm.parm.raw_data; -#ifdef SWP1_CAMERA_ADD_ADVANCED_FUNCTION LOGV("%s :", __func__); -#else /* SWP1_CAMERA_ADD_ADVANCED_FUNCTION */ - LOGE("%s :", __func__); -#endif /* SWP1_CAMERA_ADD_ADVANCED_FUNCTION */ // aleady started if (m_flag_camera_start > 0) { @@ -949,7 +828,6 @@ int SecCamera::startPreview(void) ret = fimc_v4l2_querybuf(m_cam_fd, m_buffers_c, V4L2_BUF_TYPE_VIDEO_CAPTURE, MAX_BUFFERS); CHECK(ret); -#ifdef SWP1_CAMERA_ADD_ADVANCED_FUNCTION LOGV("%s : m_preview_width: %d m_preview_height: %d m_angle: %d\n", __func__, m_preview_width, m_preview_height, m_angle); @@ -963,7 +841,6 @@ int SecCamera::startPreview(void) CHECK(ret); } -#endif /* start with all buffers in queue */ for (int i = 0; i < MAX_BUFFERS; i++) { ret = fimc_v4l2_qbuf(m_cam_fd, i); @@ -973,7 +850,6 @@ int SecCamera::startPreview(void) ret = fimc_v4l2_streamon(m_cam_fd); CHECK(ret); -#ifdef SWP1_CAMERA_ADD_ADVANCED_FUNCTION m_flag_camera_start = 1; ret = fimc_v4l2_s_parm(m_cam_fd, &m_streamparm); @@ -986,7 +862,6 @@ int SecCamera::startPreview(void) m_blur_level); CHECK(ret); } -#endif // It is a delay for a new frame, not to show the previous bigger ugly picture frame. ret = fimc_poll(&m_events_c); @@ -994,24 +869,15 @@ int SecCamera::startPreview(void) ret = fimc_v4l2_s_ctrl(m_cam_fd, V4L2_CID_CAMERA_RETURN_FOCUS, 0); CHECK(ret); -#ifdef SWP1_CAMERA_ADD_ADVANCED_FUNCTION LOGV("%s: got the first frame of the preview\n", __func__); -#endif /* SWP1_CAMERA_ADD_ADVANCED_FUNCTION */ -#ifndef SWP1_CAMERA_ADD_ADVANCED_FUNCTION - m_flag_camera_start = 1; -#endif /* SWP1_CAMERA_ADD_ADVANCED_FUNCTION */ - -#ifdef ENABLE_HDMI_DISPLAY - hdmi_initialize(m_preview_width,m_preview_height); - hdmi_gl_initialize(0); - hdmi_gl_streamoff(0); -#endif return 0; } int SecCamera::stopPreview(void) { + int ret; + LOGV("%s :", __func__); close_buffers(m_buffers_c); @@ -1024,17 +890,12 @@ int SecCamera::stopPreview(void) if (m_params->flash_mode == FLASH_MODE_TORCH) setFlashMode(FLASH_MODE_OFF); -#ifdef ENABLE_HDMI_DISPLAY - hdmi_deinitialize(); - hdmi_gl_streamon(0); -#endif - if (m_cam_fd <= 0) { LOGE("ERR(%s):Camera was closed\n", __func__); return -1; } - int ret = fimc_v4l2_streamoff(m_cam_fd); + ret = fimc_v4l2_streamoff(m_cam_fd); m_flag_camera_start = 0; CHECK(ret); @@ -1043,7 +904,6 @@ int SecCamera::stopPreview(void) } //Recording -#ifdef DUAL_PORT_RECORDING int SecCamera::startRecord(void) { LOGV("%s :", __func__); @@ -1068,7 +928,6 @@ int SecCamera::startRecord(void) int ret = fimc_v4l2_enum_fmt(m_cam_fd2,m_record_v4lformat); CHECK(ret); -#ifdef SWP1_CAMERA_ADD_ADVANCED_FUNCTION LOGE("%s: m_recording_width = %d, m_recording_height = %d\n", __func__, m_recording_width, m_recording_height); ret = fimc_v4l2_s_fmt(m_cam_fd2, m_recording_width, m_recording_height, m_record_v4lformat, 0); @@ -1076,12 +935,6 @@ int SecCamera::startRecord(void) CHECK(ret); init_yuv_buffers(m_buffers_c2, m_recording_width, m_recording_height, m_record_v4lformat); -#else /* SWP1_CAMERA_ADD_ADVANCED_FUNCTION */ - ret = fimc_v4l2_s_fmt(m_cam_fd2, m_preview_width, m_preview_height, m_record_v4lformat, 0); - CHECK(ret); - - init_yuv_buffers(m_buffers_c2, m_preview_width, m_preview_height, m_record_v4lformat); -#endif /* SWP1_CAMERA_ADD_ADVANCED_FUNCTION */ ret = fimc_v4l2_reqbufs(m_cam_fd2, V4L2_BUF_TYPE_VIDEO_CAPTURE, MAX_BUFFERS); CHECK(ret); @@ -1108,6 +961,8 @@ int SecCamera::startRecord(void) int SecCamera::stopRecord(void) { + int ret; + if (m_flag_record_start == 0) return 0; @@ -1120,7 +975,7 @@ int SecCamera::stopRecord(void) return -1; } - int ret = fimc_v4l2_streamoff(m_cam_fd2); + ret = fimc_v4l2_streamoff(m_cam_fd2); m_flag_record_start = 0; CHECK(ret); @@ -1145,7 +1000,6 @@ unsigned int SecCamera::getRecPhyAddrC(int index) CHECK((int)addr_c); return addr_c; } -#endif //DUAL_PORT_RECORDING unsigned int SecCamera::getPhyAddrY(int index) { @@ -1165,17 +1019,6 @@ unsigned int SecCamera::getPhyAddrC(int index) return addr_c; } -#ifdef SEND_YUV_RECORD_DATA -#define PAGE_ALIGN(x) (((x) + 0xFFF) & (~0xFFF)) // Set as multiple of 4K -void SecCamera::getYUVBuffers(unsigned char **virYAddr, unsigned char **virCAddr, int index) -{ - *virYAddr = (unsigned char*)m_buffers_c[index].start; - //*virCAddr = (unsigned char*)m_buffers_c[index].start + PAGE_ALIGN(m_preview_width * m_preview_height); - *virCAddr = (unsigned char*)m_buffers_c[index].start + - ALIGN_TO_8KB(ALIGN_TO_128B(m_preview_width) * ALIGN_TO_32B(m_preview_height)); -} -#endif - void SecCamera::pausePreview() { fimc_v4l2_s_ctrl(m_cam_fd, V4L2_CID_STREAM_PAUSE, 0); @@ -1184,9 +1027,7 @@ void SecCamera::pausePreview() int SecCamera::getPreview() { int index; -#ifdef SWP1_CAMERA_ADD_ADVANCED_FUNCTION int ret; -#endif #ifdef ENABLE_ESD_PREVIEW_CHECK int status = 0; @@ -1197,24 +1038,6 @@ int SecCamera::getPreview() } #endif // ENABLE_ESD_PREVIEW_CHECK -#ifdef PERFORMANCE - - LOG_TIME_DEFINE(0) - LOG_TIME_DEFINE(1) - - LOG_TIME_START(0) - fimc_poll(&m_events_c); - LOG_TIME_END(0) - LOG_CAMERA("fimc_poll interval: %lu us", LOG_TIME(0)); - - LOG_TIME_START(1) - index = fimc_v4l2_dqbuf(m_cam_fd); - LOG_TIME_END(1) - LOG_CAMERA("fimc_dqbuf interval: %lu us", LOG_TIME(1)); - -#else -#ifdef SWP1_CAMERA_ADD_ADVANCED_FUNCTION - #ifdef ENABLE_ESD_PREVIEW_CHECK if (m_flag_camera_start == 0 || fimc_esd_poll(&m_events_c) == 0 || status) { #else @@ -1236,74 +1059,35 @@ int SecCamera::getPreview() return -1; ret = fimc_v4l2_s_input(m_cam_fd, 1000); CHECK(ret); - //setCameraSensorReset(); ret = startPreview(); -#ifdef ENABLE_ESD_PREVIEW_CHECK - m_esd_check_count = 0; -#endif // ENABLE_ESD_PREVIEW_CHECK - if (ret < 0) { LOGE("ERR(%s): startPreview() return %d\n", __func__, ret); return 0; } } -#else /* SWP1_CAMERA_ADD_ADVANCED_FUNCTION */ - fimc_poll(&m_events_c); -#endif /* SWP1_CAMERA_ADD_ADVANCED_FUNCTION */ index = fimc_v4l2_dqbuf(m_cam_fd); -#endif if (!(0 <= index && index < MAX_BUFFERS)) { LOGE("ERR(%s):wrong index = %d\n", __func__, index); return -1; } -#ifdef SWP1_CAMERA_ADD_ADVANCED_FUNCTION ret = fimc_v4l2_qbuf(m_cam_fd, index); -#else /* SWP1_CAMERA_ADD_ADVANCED_FUNCTION */ - int ret = fimc_v4l2_qbuf(m_cam_fd, index); -#endif /* SWP1_CAMERA_ADD_ADVANCED_FUNCTION */ - CHECK(ret); -#ifdef ENABLE_HDMI_DISPLAY - hdmi_set_v_param(getPhyAddrY(index), getPhyAddrC (index), m_preview_width, m_preview_height); -#endif return index; - } -#ifdef DUAL_PORT_RECORDING int SecCamera::getRecord() { int index; -#ifdef SWP1_CAMERA_ADD_ADVANCED_FUNCTION if (m_flag_record_start == 0) { LOGE("%s: m_flag_record_start is 0", __func__); startRecord(); } -#endif - -#ifdef PERFORMANCE - - LOG_TIME_DEFINE(0) - LOG_TIME_DEFINE(1) - - LOG_TIME_START(0) fimc_poll(&m_events_c2); - LOG_TIME_END(0) - LOG_CAMERA("fimc_poll interval: %lu us", LOG_TIME(0)); - - LOG_TIME_START(1) index = fimc_v4l2_dqbuf(m_cam_fd2); - LOG_TIME_END(1) - LOG_CAMERA("fimc_dqbuf interval: %lu us", LOG_TIME(1)); - -#else - fimc_poll(&m_events_c2); - index = fimc_v4l2_dqbuf(m_cam_fd2); -#endif if (!(0 <= index && index < MAX_BUFFERS)) { LOGE("ERR(%s):wrong index = %d\n", __func__, index); return -1; @@ -1314,7 +1098,6 @@ int SecCamera::getRecord() return index; } -#endif //DUAL_PORT_RECORDING int SecCamera::setPreviewSize(int width, int height, int pixel_format) { @@ -1372,7 +1155,6 @@ int SecCamera::getPreviewPixelFormat(void) // ====================================================================== // Snapshot -#ifdef JPEG_FROM_SENSOR /* * Devide getJpeg() as two funcs, setSnapshotCmd() & getJpeg() because of the shutter sound timing. * Here, just send the capture cmd to camera ISP to start JPEG capture. @@ -1437,7 +1219,6 @@ unsigned char* SecCamera::getJpeg(int *jpeg_size, unsigned int *phyaddr) LOG_TIME_DEFINE(2) -#ifdef SWP1_CAMERA_ADD_ADVANCED_FUNCTION // capture ret = fimc_poll(&m_events_c); CHECK_PTR(ret); @@ -1446,7 +1227,6 @@ unsigned char* SecCamera::getJpeg(int *jpeg_size, unsigned int *phyaddr) LOGE("ERR(%s):wrong index = %d\n", __func__, index); return NULL; } -#endif *jpeg_size = fimc_v4l2_g_ctrl(m_cam_fd, V4L2_CID_CAM_JPEG_MAIN_SIZE); CHECK_PTR(*jpeg_size); @@ -1475,7 +1255,7 @@ unsigned char* SecCamera::getJpeg(int *jpeg_size, unsigned int *phyaddr) int SecCamera::getExif(unsigned char *pExifDst, unsigned char *pThumbSrc) { JpegEncoder jpgEnc; -#if ADD_THUMB_IMG + LOGV("%s : m_jpeg_thumbnail_width = %d, height = %d", __func__, m_jpeg_thumbnail_width, m_jpeg_thumbnail_height); if ((m_jpeg_thumbnail_width > 0) && (m_jpeg_thumbnail_height > 0)) { @@ -1527,9 +1307,6 @@ int SecCamera::getExif(unsigned char *pExifDst, unsigned char *pThumbSrc) LOGV("%s : enableThumb set to false", __func__); mExifInfo.enableThumb = false; } -#else - mExifInfo.enableThumb = false; -#endif unsigned int exifSize; @@ -1573,25 +1350,10 @@ void SecCamera::getThumbnailConfig(int *width, int *height, int *size) } } -#ifdef DIRECT_DELIVERY_OF_POSTVIEW_DATA int SecCamera::getPostViewOffset(void) { return m_postview_offset; } -#endif - -#else //#ifdef JPEG_FROM_SENSOR -int SecCamera::getJpegFd(void) -{ - return m_jpeg_fd; -} - -void SecCamera::SetJpgAddr(unsigned char *addr) -{ - SetMapAddr(addr); -} - -#endif int SecCamera::getSnapshotAndJpeg(unsigned char *yuv_buf, unsigned char *jpeg_buf, unsigned int *output_size) @@ -1676,17 +1438,11 @@ int SecCamera::getSnapshotAndJpeg(unsigned char *yuv_buf, unsigned char *jpeg_bu LOGV("\nsnapshot dequeued buffer = %d snapshot_width = %d snapshot_height = %d\n\n", index, m_snapshot_width, m_snapshot_height); -#ifdef DUMP_YUV - save_yuv(m_buffers_c, m_snapshot_width, m_snapshot_height, 16, index, 0); -#endif LOG_TIME_END(2) memcpy(yuv_buf, (unsigned char*)m_buffers_c[index].start, m_snapshot_width * m_snapshot_height * 2); LOG_TIME_START(5) // post fimc_v4l2_streamoff(m_cam_fd); -#ifdef DUMP_YUV - close_buffers(m_buffers_c); -#endif LOG_TIME_END(5) LOG_CAMERA("getSnapshotAndJpeg intervals : stopPreview(%lu), prepare(%lu)," @@ -1900,7 +1656,6 @@ int SecCamera::setAutofocus(void) { LOGV("%s :", __func__); -#ifdef SWP1_CAMERA_ADD_ADVANCED_FUNCTION if (m_cam_fd <= 0) { LOGE("ERR(%s):Camera was closed\n", __func__); return -1; @@ -1911,17 +1666,9 @@ int SecCamera::setAutofocus(void) return -1; } -#else - // kcoolsw : turn on setAutofocus initially.. - if (m_autofocus != AUTO_FOCUS_ON) { - m_autofocus = AUTO_FOCUS_ON; - } -#endif - return 0; } -#ifdef SWP1_CAMERA_ADD_ADVANCED_FUNCTION int SecCamera::getAutoFocusResult(void) { int af_result; @@ -1932,6 +1679,7 @@ int SecCamera::getAutoFocusResult(void) return af_result; } + int SecCamera::cancelAutofocus(void) { LOGV("%s :", __func__); @@ -1948,7 +1696,7 @@ int SecCamera::cancelAutofocus(void) return 0; } -#endif + // ----------------------------------- int SecCamera::zoomIn(void) @@ -1968,7 +1716,6 @@ int SecCamera::zoomOut(void) int SecCamera::SetRotate(int angle) { LOGE("%s(angle(%d))", __func__, angle); -#ifdef SWP1_CAMERA_ADD_ADVANCED_FUNCTION if (m_angle != angle) { switch (angle) { @@ -2005,7 +1752,6 @@ int SecCamera::SetRotate(int angle) } } } -#endif return 0; } @@ -2017,7 +1763,6 @@ int SecCamera::getRotate(void) int SecCamera::setFrameRate(int frame_rate) { -#ifdef SWP1_CAMERA_ADD_ADVANCED_FUNCTION LOGV("%s(FrameRate(%d))", __func__, frame_rate); if (frame_rate < FRAME_RATE_AUTO || FRAME_RATE_MAX < frame_rate ) @@ -2032,9 +1777,6 @@ int SecCamera::setFrameRate(int frame_rate) } } } -#else - m_params->capture.timeperframe.denominator = frame_rate; -#endif return 0; } @@ -2080,25 +1822,19 @@ int SecCamera::setWhiteBalance(int white_balance) { LOGV("%s(white_balance(%d))", __func__, white_balance); -#ifdef SWP1_CAMERA_ADD_ADVANCED_FUNCTION if (white_balance <= WHITE_BALANCE_BASE || WHITE_BALANCE_MAX <= white_balance) { -#else - if (white_balance < WHITE_BALANCE_AUTO || WHITE_BALANCE_SUNNY < white_balance) { -#endif LOGE("ERR(%s):Invalid white_balance(%d)", __func__, white_balance); return -1; } if (m_params->white_balance != white_balance) { m_params->white_balance = white_balance; -#ifdef SWP1_CAMERA_ADD_ADVANCED_FUNCTION if (m_flag_camera_start) { if (fimc_v4l2_s_ctrl(m_cam_fd, V4L2_CID_CAMERA_WHITE_BALANCE, white_balance) < 0) { LOGE("ERR(%s):Fail on V4L2_CID_CAMERA_WHITE_BALANCE", __func__); return -1; } } -#endif } return 0; @@ -2125,14 +1861,12 @@ int SecCamera::setBrightness(int brightness) if (m_params->brightness != brightness) { m_params->brightness = brightness; -#ifdef SWP1_CAMERA_ADD_ADVANCED_FUNCTION if (m_flag_camera_start) { if (fimc_v4l2_s_ctrl(m_cam_fd, V4L2_CID_CAMERA_BRIGHTNESS, brightness) < 0) { LOGE("ERR(%s):Fail on V4L2_CID_CAMERA_BRIGHTNESS", __func__); return -1; } } -#endif } return 0; @@ -2150,25 +1884,19 @@ int SecCamera::setImageEffect(int image_effect) { LOGV("%s(image_effect(%d))", __func__, image_effect); -#ifdef SWP1_CAMERA_ADD_ADVANCED_FUNCTION if (image_effect <= IMAGE_EFFECT_BASE || IMAGE_EFFECT_MAX <= image_effect) { -#else - if (image_effect < IMAGE_EFFECT_ORIGINAL || IMAGE_EFFECT_SILHOUETTE < image_effect) { -#endif LOGE("ERR(%s):Invalid image_effect(%d)", __func__, image_effect); return -1; } if (m_params->effects != image_effect) { m_params->effects = image_effect; -#ifdef SWP1_CAMERA_ADD_ADVANCED_FUNCTION if (m_flag_camera_start) { if (fimc_v4l2_s_ctrl(m_cam_fd, V4L2_CID_CAMERA_EFFECT, image_effect) < 0) { LOGE("ERR(%s):Fail on V4L2_CID_CAMERA_EFFECT", __func__); return -1; } } -#endif } return 0; @@ -2181,7 +1909,6 @@ int SecCamera::getImageEffect(void) } // ====================================================================== -#ifdef SWP1_CAMERA_ADD_ADVANCED_FUNCTION int SecCamera::setAntiBanding(int anti_banding) { LOGV("%s(anti_banding(%d))", __func__, anti_banding); @@ -3056,8 +2783,6 @@ int SecCamera::setDataLineCheckStop(void) return 0; } -#endif - const __u8* SecCamera::getCameraSensorName(void) { LOGV("%s", __func__); @@ -3080,187 +2805,6 @@ int SecCamera::getCameraSensorESDStatus(void) // ====================================================================== // Jpeg -#ifndef JPEG_FROM_SENSOR -unsigned char* SecCamera::getJpeg(unsigned char *snapshot_data, int snapshot_size, int *size) -{ - LOGV("%s :", __func__); - - if (m_cam_fd <= 0) { - LOGE("ERR(%s):Camera was closed\n", __func__); - return NULL; - } - - unsigned char *jpeg_data = NULL; - int jpeg_size = 0; - - jpeg_data = yuv2Jpeg(snapshot_data, snapshot_size, &jpeg_size, - m_snapshot_width, m_snapshot_height, m_snapshot_v4lformat); - - *size = jpeg_size; - return jpeg_data; -} -#endif - -#ifndef JPEG_FROM_SENSOR -unsigned char* SecCamera::yuv2Jpeg(unsigned char *raw_data, int raw_size, int *jpeg_size, - int width, int height, int pixel_format) -{ - LOGV("%s:raw_data(%p), raw_size(%d), jpeg_size(%d), width(%d), height(%d), format(%d)", - __func__, raw_data, raw_size, *jpeg_size, width, height, pixel_format); - - if (m_jpeg_fd <= 0) { - LOGE("ERR(%s):JPEG device was closed\n", __func__); - return NULL; - } - if (pixel_format == V4L2_PIX_FMT_RGB565) { - LOGE("ERR(%s):It doesn't support V4L2_PIX_FMT_RGB565\n", __func__); - return NULL; - } - - unsigned char *InBuf = NULL; - unsigned char *OutBuf = NULL; - unsigned char *jpeg_data = NULL; - long frameSize; - exif_file_info_t ExifInfo; - - int input_file_format = JPG_MODESEL_YCBCR; - - int out_file_format = JPG_422; - - switch (pixel_format) { - case V4L2_PIX_FMT_NV12: - case V4L2_PIX_FMT_NV21: - case V4L2_PIX_FMT_NV12T: - case V4L2_PIX_FMT_YUV420: - out_file_format = JPG_420; - break; - case V4L2_PIX_FMT_YUYV: - case V4L2_PIX_FMT_UYVY: - case V4L2_PIX_FMT_YUV422P: - out_file_format = JPG_422; - break; - } - - ////////////////////////////////////////////////////////////// - // 2. set encode config. // - ////////////////////////////////////////////////////////////// - LOGV("Step 1 : JPEG_SET_ENCODE_IN_FORMAT(JPG_MODESEL_YCBCR)"); - if (SsbSipJPEGSetEncConfig(JPEG_SET_ENCODE_IN_FORMAT, input_file_format) != JPEG_OK) { - LOGE("ERR(%s):Fail on JPEG_SET_ENCODE_IN_FORMAT\n", __func__); - goto YUV2JPEG_END; - } - - LOGV("Step 2 : JPEG_SET_SAMPING_MODE(JPG_422)"); - if (SsbSipJPEGSetEncConfig(JPEG_SET_SAMPING_MODE, out_file_format) != JPEG_OK) { - LOGE("ERR(%s):Fail on JPEG_SET_SAMPING_MODE\n", __func__); - goto YUV2JPEG_END; - } - - LOGV("Step 3 : JPEG_SET_ENCODE_WIDTH(%d)", width); - if (SsbSipJPEGSetEncConfig(JPEG_SET_ENCODE_WIDTH, width) != JPEG_OK) { - LOGE("ERR(%s):Fail on JPEG_SET_ENCODE_WIDTH \n", __func__); - goto YUV2JPEG_END; - } - - LOGV("Step 4 : JPEG_SET_ENCODE_HEIGHT(%d)", height); - if (SsbSipJPEGSetEncConfig(JPEG_SET_ENCODE_HEIGHT, height) != JPEG_OK) { - LOGE("ERR(%s):Fail on JPEG_SET_ENCODE_HEIGHT \n", __func__); - goto YUV2JPEG_END; - } - - LOGV("Step 5 : JPEG_SET_ENCODE_QUALITY(JPG_QUALITY_LEVEL_2)"); - if (SsbSipJPEGSetEncConfig(JPEG_SET_ENCODE_QUALITY, JPG_QUALITY_LEVEL_2) != JPEG_OK) { - LOGE("ERR(%s):Fail on JPEG_SET_ENCODE_QUALITY \n", __func__); - goto YUV2JPEG_END; - } - -#if (INCLUDE_JPEG_THUMBNAIL == 1) - - LOGV("Step 6a : JPEG_SET_ENCODE_THUMBNAIL(TRUE)"); - if (SsbSipJPEGSetEncConfig(JPEG_SET_ENCODE_THUMBNAIL, TRUE) != JPEG_OK) { - LOGE("ERR(%s):Fail on JPEG_SET_ENCODE_THUMBNAIL \n", __func__); - goto YUV2JPEG_END; - } - - LOGV("Step 6b : JPEG_SET_THUMBNAIL_WIDTH(%d)", m_jpeg_thumbnail_width); - if (SsbSipJPEGSetEncConfig(JPEG_SET_THUMBNAIL_WIDTH, m_jpeg_thumbnail_width) != JPEG_OK) { - LOGE("ERR(%s):Fail on JPEG_SET_THUMBNAIL_WIDTH(%d) \n", __func__, m_jpeg_thumbnail_height); - goto YUV2JPEG_END; - } - - LOGV("Step 6c : JPEG_SET_THUMBNAIL_HEIGHT(%d)", m_jpeg_thumbnail_height); - if (SsbSipJPEGSetEncConfig(JPEG_SET_THUMBNAIL_HEIGHT, m_jpeg_thumbnail_height) != JPEG_OK) { - LOGE("ERR(%s):Fail on JPEG_SET_THUMBNAIL_HEIGHT(%d) \n", __func__, m_jpeg_thumbnail_height); - goto YUV2JPEG_END; - } - -#endif - - if (raw_size == 0) { - unsigned int addr_y; - int width, height,frame_size; - getSnapshotSize(&width, &height, &frame_size); - if (raw_data == NULL) { - LOGE("%s %d] Raw data is NULL \n", __func__, __LINE__); - goto YUV2JPEG_END; - } else { - addr_y = (unsigned int)raw_data; - } - - SsbSipJPEGSetEncodeInBuf(m_jpeg_fd, addr_y, frame_size); - } else { - ////////////////////////////////////////////////////////////// - // 4. get Input buffer address // - ////////////////////////////////////////////////////////////// - LOGV("Step 7 : Input buffer size(0x%X", raw_size); - InBuf = (unsigned char *)SsbSipJPEGGetEncodeInBuf(m_jpeg_fd, raw_size); - if (InBuf == NULL) { - LOGE("ERR(%s):Fail on SsbSipJPEGGetEncodeInBuf \n", __func__); - goto YUV2JPEG_END; - } - ////////////////////////////////////////////////////////////// - // 5. put YUV stream to Input buffer - ////////////////////////////////////////////////////////////// - LOGV("Step 8: memcpy(InBuf(%p), raw_data(%p), raw_size(%d)", InBuf, raw_data, raw_size); - memcpy(InBuf, raw_data, raw_size); - } - - ////////////////////////////////////////////////////////////// - // 6. Make Exif info parameters - ////////////////////////////////////////////////////////////// - LOGV("Step 9: m_makeExifParam()"); - memset(&ExifInfo, 0x00, sizeof(exif_file_info_t)); - m_makeExifParam(&ExifInfo); - - ////////////////////////////////////////////////////////////// - // 7. Encode YUV stream - ////////////////////////////////////////////////////////////// - LOGV("Step a: SsbSipJPEGEncodeExe()"); - if (SsbSipJPEGEncodeExe(m_jpeg_fd, &ExifInfo, JPEG_USE_SW_SCALER) != JPEG_OK) { //with Exif - LOGE("ERR(%s):Fail on SsbSipJPEGEncodeExe \n", __func__); - goto YUV2JPEG_END; - } - ////////////////////////////////////////////////////////////// - // 8. get output buffer address - ////////////////////////////////////////////////////////////// - LOGV("Step b: SsbSipJPEGGetEncodeOutBuf()"); - OutBuf = (unsigned char *)SsbSipJPEGGetEncodeOutBuf(m_jpeg_fd, &frameSize); - if (OutBuf == NULL) { - LOGE("ERR(%s):Fail on SsbSipJPEGGetEncodeOutBuf \n", __func__); - goto YUV2JPEG_END; - } - ////////////////////////////////////////////////////////////// - // 9. write JPEG result file - ////////////////////////////////////////////////////////////// - LOGV("Done"); - jpeg_data = OutBuf; - *jpeg_size = (int)frameSize; - -YUV2JPEG_END: - return jpeg_data; -} -#endif - int SecCamera::setJpegThumbnailSize(int width, int height) { LOGV("%s(width(%d), height(%d))", __func__, width, height); |