Home | History | Annotate | Download | only in camera

Lines Matching refs:mHalCamCtrl

91 	format = mHalCamCtrl->getPreviewFormatInfo().Hal_format;
106 mHalCamCtrl->mPreviewMemoryLock.lock();
107 mHalCamCtrl->mPreviewMemory.buffer_count = kPreviewBufferCount + numMinUndequeuedBufs;
108 if(mHalCamCtrl->isZSLMode()) {
109 if(mHalCamCtrl->getZSLQueueDepth() > numMinUndequeuedBufs)
110 mHalCamCtrl->mPreviewMemory.buffer_count +=
111 mHalCamCtrl->getZSLQueueDepth() - numMinUndequeuedBufs;
113 err = mPreviewWindow->set_buffer_count(mPreviewWindow, mHalCamCtrl->mPreviewMemory.buffer_count );
156 for (int cnt = 0; cnt < mHalCamCtrl->mPreviewMemory.buffer_count; cnt++) {
159 &mHalCamCtrl->mPreviewMemory.buffer_handle[cnt],
160 &mHalCamCtrl->mPreviewMemory.stride[cnt]);
162 ALOGV("%s: dequeue buf hdl =%p", __func__, *mHalCamCtrl->mPreviewMemory.buffer_handle[cnt]);
164 mHalCamCtrl->mPreviewMemory.buffer_handle[cnt]);
166 ALOGV("%s: camera call genlock_lock, hdl=%p", __FUNCTION__, (*mHalCamCtrl->mPreviewMemory.buffer_handle[cnt]));
167 if (GENLOCK_NO_ERROR != genlock_lock_buffer((native_handle_t *)(*mHalCamCtrl->mPreviewMemory.buffer_handle[cnt]),
170 mHalCamCtrl->mPreviewMemory.local_flag[cnt] = BUFFER_UNLOCKED;
171 //mHalCamCtrl->mPreviewMemoryLock.unlock();
174 ALOGV("%s: genlock_lock_buffer hdl =%p", __FUNCTION__, *mHalCamCtrl->mPreviewMemory.buffer_handle[cnt]);
175 mHalCamCtrl->mPreviewMemory.local_flag[cnt] = BUFFER_LOCKED;
178 mHalCamCtrl->mPreviewMemory.local_flag[cnt] = BUFFER_NOT_OWNED;
182 ALOGV("%s: dequeue buf: %p\n", __func__, mHalCamCtrl->mPreviewMemory.buffer_handle[cnt]);
189 if (BUFFER_LOCKED == mHalCamCtrl->mPreviewMemory.local_flag[i]) {
192 (*(mHalCamCtrl->mPreviewMemory.buffer_handle[i])))) {
193 ALOGE("%s: genlock_unlock_buffer failed: hdl =%p", __FUNCTION__, (*(mHalCamCtrl->mPreviewMemory.buffer_handle[i])) );
194 //mHalCamCtrl->mPreviewMemoryLock.unlock();
197 mHalCamCtrl->mPreviewMemory.local_flag[i] = BUFFER_UNLOCKED;
200 if( mHalCamCtrl->mPreviewMemory.local_flag[i] != BUFFER_NOT_OWNED) {
202 mHalCamCtrl->mPreviewMemory.buffer_handle[i]);
204 mHalCamCtrl->mPreviewMemory.local_flag[i] = BUFFER_NOT_OWNED;
205 ALOGV("%s: cancel_buffer: hdl =%p", __func__, (*mHalCamCtrl->mPreviewMemory.buffer_handle[i]));
206 mHalCamCtrl->mPreviewMemory.buffer_handle[i] = NULL;
208 memset(&mHalCamCtrl->mPreviewMemory, 0, sizeof(mHalCamCtrl->mPreviewMemory));
212 mHalCamCtrl->mPreviewMemory.private_buffer_handle[cnt] =
213 (struct private_handle_t *)(*mHalCamCtrl->mPreviewMemory.buffer_handle[cnt]);
215 mHalCamCtrl->mPreviewMemory.main_ion_fd[cnt] = open("/dev/ion", O_RDONLY);
216 if (mHalCamCtrl->mPreviewMemory.main_ion_fd[cnt] < 0) {
219 mHalCamCtrl->mPreviewMemory.ion_info_fd[cnt].fd =
220 mHalCamCtrl->mPreviewMemory.private_buffer_handle[cnt]->fd;
221 if (ioctl(mHalCamCtrl->mPreviewMemory.main_ion_fd[cnt],
222 ION_IOC_IMPORT, &mHalCamCtrl->mPreviewMemory.ion_info_fd[cnt]) < 0)
226 mHalCamCtrl->mPreviewMemory.camera_memory[cnt] =
227 mHalCamCtrl->mGetMemory(mHalCamCtrl->mPreviewMemory.private_buffer_handle[cnt]->fd,
228 mHalCamCtrl->mPreviewMemory.private_buffer_handle[cnt]->size, 1, (void *)this);
230 cnt, mHalCamCtrl->mPreviewMemory.private_buffer_handle[cnt]->fd,
231 mHalCamCtrl->mPreviewMemory.private_buffer_handle[cnt]->size,
232 mHalCamCtrl->mPreviewMemory.private_buffer_handle[cnt]->offset);
237 if( mHalCamCtrl->mPreviewMemory.local_flag[i] != BUFFER_NOT_OWNED) {
238 err = mPreviewWindow->cancel_buffer(mPreviewWindow, mHalCamCtrl->mPreviewMemory.buffer_handle[i]);
240 mHalCamCtrl->mPreviewMemory.local_flag[i] = BUFFER_NOT_OWNED;
243 memset(&mHalCamCtrl->mMetadata, 0, sizeof(mHalCamCtrl->mMetadata));
244 memset(mHalCamCtrl->mFace, 0, sizeof(mHalCamCtrl->mFace));
249 mHalCamCtrl->mPreviewMemoryLock.unlock();
260 mHalCamCtrl->mPreviewMemoryLock.lock();
261 for (int cnt = 0; cnt < mHalCamCtrl->mPreviewMemory.buffer_count; cnt++) {
262 if (cnt < mHalCamCtrl->mPreviewMemory.buffer_count) {
263 if (NO_ERROR != mHalCamCtrl->sendUnMappingBuf(MSM_V4L2_EXT_CAPTURE_MODE_PREVIEW, cnt, mCameraId,
267 if(mHalCamCtrl->isZSLMode()) {
268 if (NO_ERROR != mHalCamCtrl->sendUnMappingBuf(MSM_V4L2_EXT_CAPTURE_MODE_THUMBNAIL, cnt, mCameraId,
275 mHalCamCtrl->mPreviewMemory.camera_memory[cnt]->release(mHalCamCtrl->mPreviewMemory.camera_memory[cnt]);
278 ion_handle.handle = mHalCamCtrl->mPreviewMemory.ion_info_fd[cnt].handle;
279 if (ioctl(mHalCamCtrl->mPreviewMemory.main_ion_fd[cnt], ION_IOC_FREE, &ion_handle)
282 close(mHalCamCtrl->mPreviewMemory.main_ion_fd[cnt]);
284 if (BUFFER_LOCKED == mHalCamCtrl->mPreviewMemory.local_flag[cnt]) {
287 (*(mHalCamCtrl->mPreviewMemory.buffer_handle[cnt])))) {
288 ALOGE("%s: genlock_unlock_buffer failed, handle =%p", __FUNCTION__, (*(mHalCamCtrl->mPreviewMemory.buffer_handle[cnt])));
290 //mHalCamCtrl->mPreviewMemoryLock.unlock();
294 ALOGV("%s: genlock_unlock_buffer, handle =%p", __FUNCTION__, (*(mHalCamCtrl->mPreviewMemory.buffer_handle[cnt])));
295 mHalCamCtrl->mPreviewMemory.local_flag[cnt] = BUFFER_UNLOCKED;
298 if( mHalCamCtrl->mPreviewMemory.local_flag[cnt] != BUFFER_NOT_OWNED) {
299 err = mPreviewWindow->cancel_buffer(mPreviewWindow, mHalCamCtrl->mPreviewMemory.buffer_handle[cnt]);
300 ALOGV("%s: cancel_buffer: hdl =%p", __func__, (*mHalCamCtrl->mPreviewMemory.buffer_handle[cnt]));
302 mHalCamCtrl->mPreviewMemory.local_flag[cnt] = BUFFER_NOT_OWNED;
312 mHalCamCtrl->mPreviewMemoryLock.unlock();
313 memset(&mHalCamCtrl->mPreviewMemory, 0, sizeof(mHalCamCtrl->mPreviewMemory));
320 camera_memory_t *data = mHalCamCtrl->mGetMemory(-1, 1, 1, NULL);
326 memset(mHalCamCtrl->mFace, 0, sizeof(mHalCamCtrl->mFace));
327 mHalCamCtrl->mMetadata.faces = mHalCamCtrl->mFace;
328 mHalCamCtrl->mMetadata.number_of_faces = roi.d.hdr.num_face_detected;
329 if(mHalCamCtrl->mMetadata.number_of_faces > MAX_ROI)
330 mHalCamCtrl->mMetadata.number_of_faces = MAX_ROI;
333 if (mHalCamCtrl->mMetadata.number_of_faces == 0) {
335 mHalCamCtrl->mCallbackLock.lock();
336 camera_data_callback pcb = mHalCamCtrl->mDataCb;
337 mHalCamCtrl->mCallbackLock.unlock();
339 if (pcb && (mHalCamCtrl->mMsgEnabled & CAMERA_MSG_PREVIEW_METADATA)){
341 pcb(CAMERA_MSG_PREVIEW_METADATA, data, 0, &mHalCamCtrl->mMetadata, mHalCamCtrl->mCallbackCookie);
351 if (idx >= mHalCamCtrl->mMetadata.number_of_faces) {
353 ALOGE("%s: idx %d out of boundary %d", __func__, idx, mHalCamCtrl->mMetadata.number_of_faces);
357 mHalCamCtrl->mFace[idx].id = roi.d.data.face.id;
358 mHalCamCtrl->mFace[idx].score = roi.d.data.face.score;
361 mHalCamCtrl->mFace[idx].rect[0] =
362 roi.d.data.face.face_boundary.x*2000/mHalCamCtrl->mDimension.display_width - 1000;
364 mHalCamCtrl->mFace[idx].rect[1] =
365 roi.d.data.face.face_boundary.y*2000/mHalCamCtrl->mDimension.display_height - 1000;
367 mHalCamCtrl->mFace[idx].rect[2] = mHalCamCtrl->mFace[idx].rect[0] +
368 roi.d.data.face.face_boundary.dx*2000/mHalCamCtrl->mDimension.display_width;
370 mHalCamCtrl->mFace[idx].rect[3] = mHalCamCtrl->mFace[idx].rect[1] +
371 roi.d.data.face.face_boundary.dy*2000/mHalCamCtrl->mDimension.display_height;
374 mHalCamCtrl->mFace[idx].left_eye[0] =
375 roi.d.data.face.left_eye_center[0]*2000/mHalCamCtrl->mDimension.display_width - 1000;
376 mHalCamCtrl->mFace[idx].left_eye[1] =
377 mHalCamCtrl->mDimension.display_height - 1000;
380 mHalCamCtrl->mFace[idx].right_eye[0] =
381 roi.d.data.face.right_eye_center[0]*2000/mHalCamCtrl->mDimension.display_width - 1000;
382 mHalCamCtrl->mFace[idx].right_eye[1] =
383 roi.d.data.face.right_eye_center[1]*2000/mHalCamCtrl->mDimension.display_height - 1000;
386 mHalCamCtrl->mFace[idx].mouth[0] =
387 roi.d.data.face.mouth_center[0]*2000/mHalCamCtrl->mDimension.display_width - 1000;
388 mHalCamCtrl->mFace[idx].mouth[1] =
389 roi.d.data.face.mouth_center[1]*2000/mHalCamCtrl->mDimension.display_height - 1000;
391 mHalCamCtrl->mFace[idx].smile_degree = roi.d.data.face.smile_degree;
392 mHalCamCtrl->mFace[idx].smile_score = roi.d.data.face.smile_confidence;
393 mHalCamCtrl->mFace[idx].blink_detected = roi.d.data.face.blink_detected;
394 mHalCamCtrl->mFace[idx].face_recognised = roi.d.data.face.is_face_recognised;
395 mHalCamCtrl->mFace[idx].gaze_angle = roi.d.data.face.gaze_angle;
399 mHalCamCtrl->mFace[idx].updown_dir = roi.d.data.face.updown_dir*2;
400 mHalCamCtrl->mFace[idx].leftright_dir = roi.d.data.face.leftright_dir*2;
401 mHalCamCtrl->mFace[idx].roll_dir = roi.d.data.face.roll_dir*2;
403 mHalCamCtrl->mFace[idx].leye_blink = roi.d.data.face.left_blink;
404 mHalCamCtrl->mFace[idx].reye_blink = roi.d.data.face.right_blink;
405 mHalCamCtrl->mFace[idx].left_right_gaze = roi.d.data.face.left_right_gaze;
406 mHalCamCtrl->mFace[idx].top_bottom_gaze = roi.d.data.face.top_bottom_gaze;
408 mHalCamCtrl->mFace[idx].rect[0], mHalCamCtrl->mFace[idx].rect[1],
409 mHalCamCtrl->mFace[idx].rect[2], mHalCamCtrl->mFace[idx].rect[3],
410 mHalCamCtrl->mFace[idx].left_eye[0], mHalCamCtrl->mFace[idx].left_eye[1],
411 mHalCamCtrl->mFace[idx].right_eye[0], mHalCamCtrl->mFace[idx].right_eye[1],
412 mHalCamCtrl->mFace[idx].mouth[0], mHalCamCtrl->mFace[idx].mouth[1],
413 mHalCamCtrl->mFace[idx].smile_degree, mHalCamCtrl->mFace[idx].smile_score,
414 mHalCamCtrl->mFace[idx].face_recognised);
416 mHalCamCtrl->mFace[idx].gaze_angle, mHalCamCtrl->mFace[idx].left_right_gaze,
417 mHalCamCtrl->mFace[idx].top_bottom_gaze, mHalCamCtrl->mFace[idx].updown_dir,
418 mHalCamCtrl->mFace[idx].leftright_dir, mHalCamCtrl->mFace[idx].roll_dir,
419 mHalCamCtrl->mFace[idx].blink_detected,
420 mHalCamCtrl->mFace[idx].leye_blink, mHalCamCtrl->mFace[idx].reye_blink);
425 if (mNumFDRcvd == mHalCamCtrl->mMetadata.number_of_faces) {
426 mHalCamCtrl->mCallbackLock.lock();
427 camera_data_callback pcb = mHalCamCtrl->mDataCb;
428 mHalCamCtrl->mCallbackLock.unlock();
430 if (pcb && (mHalCamCtrl->mMsgEnabled & CAMERA_MSG_PREVIEW_METADATA)){
431 ALOGV("%s: Face detection RIO callback with %d faces detected (score=%d)", __func__, mNumFDRcvd, mHalCamCtrl->mFace[idx].score);
432 pcb(CAMERA_MSG_PREVIEW_METADATA, data, 0, &mHalCamCtrl->mMetadata, mHalCamCtrl->mCallbackCookie);
456 memset(&mHalCamCtrl->mMetadata, 0, sizeof(camera_frame_metadata_t));
457 mHalCamCtrl->mPreviewMemoryLock.lock();
458 memset(&mHalCamCtrl->mPreviewMemory, 0, sizeof(mHalCamCtrl->mPreviewMemory));
459 mHalCamCtrl->mPreviewMemoryLock.unlock();
483 mHalCamCtrl->mPreviewMemoryLock.lock();
485 this->mDisplayStreamBuf.num = mHalCamCtrl->mPreviewMemory.buffer_count;
505 if (mHalCamCtrl->mPreviewMemory.private_buffer_handle[i] == NULL)
507 mDisplayStreamBuf.frame[i].fd = mHalCamCtrl->mPreviewMemory.private_buffer_handle[i]->fd;
511 mHalCamCtrl->mPreviewMemory.addr_offset[i] =
512 mHalCamCtrl->mPreviewMemory.private_buffer_handle[i]->offset;
514 (long unsigned int)mHalCamCtrl->mPreviewMemory.camera_memory[i]->data;
515 mDisplayStreamBuf.frame[i].ion_alloc.len = mHalCamCtrl->mPreviewMemory.private_buffer_handle[i]->size;
516 mDisplayStreamBuf.frame[i].ion_dev_fd = mHalCamCtrl->mPreviewMemory.main_ion_fd[i];
517 mDisplayStreamBuf.frame[i].fd_data = mHalCamCtrl->mPreviewMemory.ion_info_fd[i];
521 mHalCamCtrl->mPreviewMemory.private_buffer_handle[i]->size,
523 mHalCamCtrl->mPreviewMemory.addr_offset[i],
526 ret = mHalCamCtrl->sendMappingBuf(
530 mHalCamCtrl->mPreviewMemory.private_buffer_handle[i]->size,
537 if(mHalCamCtrl->isZSLMode()) {
538 ret = mHalCamCtrl->sendMappingBuf(
542 mHalCamCtrl->mPreviewMemory.private_buffer_handle[i]->size,
550 mDisplayBuf.preview.buf.mp[i].frame_offset = mHalCamCtrl->mPreviewMemory.addr_offset[i];
570 if (mHalCamCtrl->mPreviewMemory.local_flag[i] == BUFFER_NOT_OWNED) {
585 mHalCamCtrl->mPreviewMemoryLock.unlock();
590 mHalCamCtrl->mPreviewMemoryLock.unlock();
614 status_t ret = cam_config_get_parm(mHalCamCtrl->mCameraId,
650 if(mHalCamCtrl==NULL) {
656 if(mHalCamCtrl->mPauseFramedispatch) {
662 mHalCamCtrl->mCallbackLock.lock();
663 camera_data_timestamp_callback rcb = mHalCamCtrl->mDataCbTimestamp;
664 void *rdata = mHalCamCtrl->mCallbackCookie;
665 mHalCamCtrl->mCallbackLock.unlock();
674 if (UNLIKELY(mHalCamCtrl->mDebugFps)) {
675 mHalCamCtrl->debugShowPreviewFPS();
678 mHalCamCtrl->dumpFrameToFile(frame->def.frame, HAL_DUMP_FRM_PREVIEW);
680 mHalCamCtrl->mPreviewMemoryLock.lock();
683 mHalCamCtrl->mPreviewMemory.buffer_handle[frame->def.idx], frame->def.idx);
686 if (BUFFER_LOCKED == mHalCamCtrl->mPreviewMemory.local_flag[frame->def.idx]) {
687 ALOGV("%s: genlock_unlock_buffer hdl =%p", __FUNCTION__, (*mHalCamCtrl->mPreviewMemory.buffer_handle[frame->def.idx]));
689 (*mHalCamCtrl->mPreviewMemory.buffer_handle[frame->def.idx]))) {
691 //mHalCamCtrl->mPreviewMemoryLock.unlock();
694 mHalCamCtrl->mPreviewMemory.local_flag[frame->def.idx] = BUFFER_UNLOCKED;
698 mHalCamCtrl->mPreviewMemoryLock.unlock();
711 if (mHalCamCtrl->cache_ops(ion_fd, &cache_inv_data,
719 const char *str = mHalCamCtrl->mParameters.get(
727 (buffer_handle_t *)mHalCamCtrl->mPreviewMemory.buffer_handle[frame->def.idx]);
737 (buffer_handle_t *)mHalCamCtrl->mPreviewMemory.buffer_handle[frame->def.idx]);
740 (buffer_handle_t *)mHalCamCtrl->mPreviewMemory.buffer_handle[frame->def.idx]);
743 (buffer_handle_t *)mHalCamCtrl->mPreviewMemory.buffer_handle[frame->def.idx]);
746 (buffer_handle_t *)mHalCamCtrl->mPreviewMemory.buffer_handle[frame->def.idx]);
751 ALOGV("%s: enqueue_buffer hdl=%p", __func__, *mHalCamCtrl->mPreviewMemory.buffer_handle[frame->def.idx]);
752 mHalCamCtrl->mPreviewMemory.local_flag[frame->def.idx] = BUFFER_NOT_OWNED;
760 for(i = 0; i < mHalCamCtrl
761 if(mHalCamCtrl->mPreviewMemory.buffer_handle[i] == buffer_handle) {
762 mHalCamCtrl->mPreviewMemory.local_flag[i] = BUFFER_UNLOCKED;
767 if (i < mHalCamCtrl->mPreviewMemory.buffer_count ) {
773 //mHalCamCtrl->mPreviewMemoryLock.unlock();
776 mHalCamCtrl->mPreviewMemory.local_flag[i] = BUFFER_LOCKED;
794 mHalCamCtrl->mPreviewMemoryLock.unlock();
796 mHalCamCtrl->mCallbackLock.lock();
797 camera_data_callback pcb = mHalCamCtrl->mDataCb;
798 mHalCamCtrl->mCallbackLock.unlock();
799 ALOGV("Message enabled = 0x%x", mHalCamCtrl->mMsgEnabled);
805 mHalCamCtrl->mMsgEnabled, mHalCamCtrl->mPreviewFormat);
807 if(mHalCamCtrl->mMsgEnabled & CAMERA_MSG_PREVIEW_FRAME) {
814 if ((mHalCamCtrl->mPreviewFormat == CAMERA_YUV_420_NV21) || (mHalCamCtrl->mPreviewFormat == CAMERA_YUV_420_NV12) ||
815 (mHalCamCtrl->mPreviewFormat == CAMERA_YUV_420_YV12))
817 if (mHalCamCtrl->mPreviewFormat == CAMERA_YUV_420_YV12) {
818 previewBufSize = ((mHalCamCtrl->mPreviewWidth+15)/16) *16* mHalCamCtrl->mPreviewHeight +
819 ((mHalCamCtrl->mPreviewWidth/2+15)/16)*16* mHalCamCtrl->mPreviewHeight;
821 previewBufSize = mHalCamCtrl->mPreviewWidth * mHalCamCtrl->mPreviewHeight * 3/2;
823 if(previewBufSize != mHalCamCtrl->mPreviewMemory.private_buffer_handle[frame->def.idx]->size) {
824 previewMem = mHalCamCtrl->mGetMemory(mHalCamCtrl->mPreviewMemory.private_buffer_handle[frame->def.idx]->fd,
825 previewBufSize, 1, mHalCamCtrl->mCallbackCookie);
832 data = mHalCamCtrl->mPreviewMemory.camera_memory[frame->def.idx];
834 data = mHalCamCtrl->mPreviewMemory.camera_memory[frame->def.idx];
843 pcb(msgType, data, 0, metadata, mHalCamCtrl->mCallbackCookie);
855 if(mHalCamCtrl->mStartRecording == true &&
856 ( mHalCamCtrl->mMsgEnabled & CAMERA_MSG_VIDEO_FRAME))
858 if (mHalCamCtrl->mStoreMetaDataInFrame)
860 if(mHalCamCtrl->mRecordingMemory.metadata_memory[frame->def.idx])
865 mHalCamCtrl->mRecordingMemory.metadata_memory[frame->def.idx],
866 0, mHalCamCtrl->mCallbackCookie);
875 mHalCamCtrl->mPreviewMemory.camera_memory[frame->def.idx],
876 0, mHalCamCtrl->mCallbackCookie);
881 Mutex::Autolock rLock(&mHalCamCtrl->mRecordFrameLock);
882 if (mHalCamCtrl->mReleasedRecordingFrame != true) {
883 mHalCamCtrl->mRecordWait.wait(mHalCamCtrl->mRecordFrameLock);
885 mHalCamCtrl->mReleasedRecordingFrame = false;
919 mHalCamCtrl = NULL;
979 previewFmt = mHalCamCtrl->getPreviewFormat();