diff options
Diffstat (limited to 'libcamera/SecCamera.cpp')
-rwxr-xr-x | libcamera/SecCamera.cpp | 122 |
1 files changed, 10 insertions, 112 deletions
diff --git a/libcamera/SecCamera.cpp b/libcamera/SecCamera.cpp index 4d0705a..48cf02e 100755 --- a/libcamera/SecCamera.cpp +++ b/libcamera/SecCamera.cpp @@ -122,24 +122,6 @@ static int get_pixel_depth(unsigned int fmt) #define ALIGN_H(x) (((x) + 0x1F) & (~0x1F)) // Set as multiple of 32 #define ALIGN_BUF(x) (((x) + 0x1FFF)& (~0x1FFF)) // Set as multiple of 8K -static int init_preview_buffers(struct fimc_buffer *buffers, int width, int height, unsigned int fmt) -{ - int i, len; - - if (fmt==V4L2_PIX_FMT_NV12T) { - len = ALIGN_BUF(ALIGN_W(width) * ALIGN_H(height)) + - ALIGN_BUF(ALIGN_W(width) * ALIGN_H(height / 2)); - } else { - len = (width * height * get_pixel_depth(fmt)) / 8; - } - - for (i = 0; i < MAX_BUFFERS; i++) { - buffers[i].length = len; - } - - return 0; -} - static int fimc_poll(struct pollfd *events) { int ret; @@ -546,6 +528,8 @@ static int fimc_v4l2_s_parm(int fp, struct v4l2_streamparm *streamparm) SecCamera::SecCamera() : m_flag_init(0), m_camera_id(CAMERA_ID_BACK), + m_cam_fd(-1), + m_cam_fd2(-1), m_preview_v4lformat(V4L2_PIX_FMT_NV21), m_preview_width (0), m_preview_height (0), @@ -609,12 +593,6 @@ SecCamera::SecCamera() : LOGV("%s :", __func__); } -int SecCamera::flagCreate(void) const -{ - LOGV("%s : : %d", __func__, m_flag_init); - return m_flag_init; -} - SecCamera::~SecCamera() { LOGV("%s :", __func__); @@ -632,43 +610,12 @@ int SecCamera::initCamera(int index) */ m_camera_af_flag = -1; - 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)); return -1; } - - if (m_cam_fd < 3) { // for 0, 1, 2 - LOGE("ERR(%s):m_cam_fd is %d\n", __func__, m_cam_fd); - - close(m_cam_fd); - - m_cam_fd_temp = open(CAMERA_DEV_NAME_TEMP, O_CREAT); - - LOGE("ERR(%s):m_cam_fd_temp is %d\n", __func__, m_cam_fd_temp); - - m_cam_fd = open(CAMERA_DEV_NAME, O_RDWR); - - if (m_cam_fd < 3) { // for 0, 1, 2 - LOGE("ERR(%s):retring to open %s is failed, %d\n", __func__, CAMERA_DEV_NAME, m_cam_fd); - - if (m_cam_fd < 0) { - return -1; - } else { - close(m_cam_fd); - m_cam_fd = -1; - } - - if (m_cam_fd_temp != -1){ - close(m_cam_fd_temp); - m_cam_fd_temp = -1; - } - return -1; - } - } + LOGV("%s: open(%s) --> m_cam_fd %d", __FUNCTION__, CAMERA_DEV_NAME, m_cam_fd); LOGE("initCamera: m_cam_fd(%d), m_jpeg_fd(%d)", m_cam_fd, m_jpeg_fd); @@ -680,50 +627,11 @@ int SecCamera::initCamera(int index) CHECK(ret); m_cam_fd2 = open(CAMERA_DEV_NAME2, O_RDWR); + LOGV("%s: open(%s) --> m_cam_fd2 = %d", __FUNCTION__, CAMERA_DEV_NAME2, m_cam_fd2); if (m_cam_fd2 < 0) { LOGE("ERR(%s):Cannot open %s (error : %s)\n", __func__, CAMERA_DEV_NAME2, strerror(errno)); return -1; } - if (m_cam_fd2 < 3) { // for 0, 1, 2 - LOGE("ERR(%s):m_cam_fd2 is %d\n", __func__, m_cam_fd2); - - close(m_cam_fd2); - - m_cam_fd2_temp = open(CAMERA_DEV_NAME2_TEMP, O_CREAT); - - LOGE("ERR(%s):m_cam_fd2_temp is %d\n", __func__, m_cam_fd2_temp); - - m_cam_fd2 = open(CAMERA_DEV_NAME2, O_RDWR); - - if (m_cam_fd2 < 3) { // for 0, 1, 2 - LOGE("ERR(%s):retring to open %s is failed, %d\n", __func__, CAMERA_DEV_NAME2, m_cam_fd2); - - if (m_cam_fd2 < 0) { - return -1; - } - else{ - close(m_cam_fd2); - m_cam_fd2 = -1; - } - - if (m_cam_fd2_temp != -1) { - close(m_cam_fd2_temp); - m_cam_fd2_temp = -1; - } - - return -1; - } - } - - if (m_cam_fd_temp != -1) { - close(m_cam_fd_temp); - m_cam_fd_temp = -1; - } - - if (m_cam_fd2_temp != -1) { - close(m_cam_fd2_temp); - m_cam_fd2_temp = -1; - } LOGE("initCamera: m_cam_fd2(%d)", m_cam_fd2); @@ -755,6 +663,7 @@ int SecCamera::initCamera(int index) setExifFixedAttribute(); m_flag_init = 1; + LOGI("%s : initialized", __FUNCTION__); } return 0; } @@ -789,18 +698,9 @@ void SecCamera::DeinitCamera() m_cam_fd2 = -1; } - if (m_cam_fd_temp != -1) { - close(m_cam_fd_temp); - m_cam_fd_temp = -1; - } - - if (m_cam_fd2_temp != -1) { - close(m_cam_fd2_temp); - m_cam_fd2_temp = -1; - } - m_flag_init = 0; } + else LOGI("%s : already deinitialized", __FUNCTION__); } @@ -1527,7 +1427,7 @@ int SecCamera::getSnapshotAndJpeg(unsigned char *yuv_buf, unsigned char *jpeg_bu memcpy(pInBuf, yuv_buf, snapshot_size); setExifChangedAttribute(); - jpgEnc.encode(output_size, &mExifInfo); + jpgEnc.encode(output_size, NULL); uint64_t outbuf_size; unsigned char *pOutBuf = (unsigned char *)jpgEnc.getOutBuf(&outbuf_size); @@ -2746,9 +2646,7 @@ int SecCamera::setDataLineCheck(int chk_dataline) return -1; } - if (m_chk_dataline != chk_dataline) { - m_chk_dataline = chk_dataline; - } + m_chk_dataline = chk_dataline; return 0; } @@ -3124,7 +3022,7 @@ inline int SecCamera::m_frameSize(int format, int width, int height) return size; } -status_t SecCamera::dump(int fd, const Vector<String16> &args) +status_t SecCamera::dump(int fd) { const size_t SIZE = 256; char buffer[SIZE]; @@ -3136,7 +3034,7 @@ status_t SecCamera::dump(int fd, const Vector<String16> &args) } double SecCamera::jpeg_ratio = 0.7; -int SecCamera::interleaveDataSize = 4261248; +int SecCamera::interleaveDataSize = 5242880; int SecCamera::jpegLineLength = 636; }; // namespace android |