Home | History | Annotate | Download | only in camera

Lines Matching refs:mHalCamCtrl

93 	format = mHalCamCtrl->getPreviewFormatInfo().Hal_format;
108 mHalCamCtrl->mPreviewMemoryLock.lock();
109 mHalCamCtrl->mPreviewMemory.buffer_count = kPreviewBufferCount + numMinUndequeuedBufs;;
110 err = mPreviewWindow->set_buffer_count(mPreviewWindow, mHalCamCtrl->mPreviewMemory.buffer_count );
134 for (int cnt = 0; cnt < mHalCamCtrl->mPreviewMemory.buffer_count; cnt++) {
137 &mHalCamCtrl->mPreviewMemory.buffer_handle[cnt],
138 &mHalCamCtrl->mPreviewMemory.stride[cnt]);
141 mHalCamCtrl->mPreviewMemory.buffer_handle[cnt]);
145 if (GENLOCK_NO_ERROR != genlock_lock_buffer((native_handle_t *)(*mHalCamCtrl->mPreviewMemory.buffer_handle[cnt]),
148 mHalCamCtrl->mPreviewMemory.local_flag[cnt] = BUFFER_UNLOCKED;
149 mHalCamCtrl->mPreviewMemoryLock.unlock();
152 mHalCamCtrl->mPreviewMemory.local_flag[cnt] = BUFFER_LOCKED;
156 ALOGE("%s: dequeue buf: %u\n", __func__, (unsigned int)mHalCamCtrl->mPreviewMemory.buffer_handle[cnt]);
164 if (BUFFER_LOCKED == mHalCamCtrl->mPreviewMemory.local_flag[i]) {
166 (*(mHalCamCtrl->mPreviewMemory.buffer_handle[i])))) {
168 mHalCamCtrl->mPreviewMemoryLock.unlock();
173 mHalCamCtrl->mPreviewMemory.buffer_handle[i]);
174 mHalCamCtrl->mPreviewMemory.buffer_handle[i] = NULL;
175 mHalCamCtrl->mPreviewMemory.local_flag[i] = BUFFER_UNLOCKED;
179 mHalCamCtrl->mPreviewMemory.private_buffer_handle[cnt] =
180 (struct private_handle_t *)(*mHalCamCtrl->mPreviewMemory.buffer_handle[cnt]);
181 mHalCamCtrl->mPreviewMemory.camera_memory[cnt] =
182 mHalCamCtrl->mGetMemory(mHalCamCtrl->mPreviewMemory.private_buffer_handle[cnt]->fd,
183 mHalCamCtrl->mPreviewMemory.private_buffer_handle[cnt]->size, 1, (void *)this);
185 cnt, mHalCamCtrl->mPreviewMemory.private_buffer_handle[cnt]->fd,
186 mHalCamCtrl->mPreviewMemory.private_buffer_handle[cnt]->size,
187 mHalCamCtrl->mPreviewMemory.private_buffer_handle[cnt]->offset);
191 memset(&mHalCamCtrl->mMetadata, 0, sizeof(mHalCamCtrl->mMetadata));
192 memset(mHalCamCtrl->mFace, 0, sizeof(mHalCamCtrl->mFace));
197 mHalCamCtrl->mPreviewMemoryLock.unlock();
209 mHalCamCtrl->mPreviewMemoryLock.lock();
210 for (int cnt = 0; cnt < mHalCamCtrl->mPreviewMemory.buffer_count; cnt++) {
211 mHalCamCtrl->mPreviewMemory.camera_memory[cnt]->release(mHalCamCtrl->mPreviewMemory.camera_memory[cnt]);
212 if (BUFFER_LOCKED == mHalCamCtrl->mPreviewMemory.local_flag[cnt]) {
215 (*(mHalCamCtrl->mPreviewMemory.buffer_handle[cnt])))) {
217 mHalCamCtrl->mPreviewMemoryLock.unlock();
220 mHalCamCtrl->mPreviewMemory.local_flag[cnt] = BUFFER_UNLOCKED;
223 err = mPreviewWindow->cancel_buffer(mPreviewWindow, mHalCamCtrl->mPreviewMemory.buffer_handle[cnt]);
226 memset(&mHalCamCtrl->mPreviewMemory, 0, sizeof(mHalCamCtrl->mPreviewMemory));
227 mHalCamCtrl->mPreviewMemoryLock.unlock();
240 memset(mHalCamCtrl->mFace, 0, sizeof(mHalCamCtrl->mFace));
241 mHalCamCtrl->mMetadata.faces = mHalCamCtrl->mFace;
242 mHalCamCtrl->mMetadata.number_of_faces = roi.d.hdr.num_face_detected;
243 if(mHalCamCtrl->mMetadata.number_of_faces > MAX_ROI)
244 mHalCamCtrl->mMetadata.number_of_faces = MAX_ROI;
247 if (mHalCamCtrl->mMetadata.number_of_faces == 0) {
249 mHalCamCtrl->mCallbackLock.lock();
250 camera_data_callback pcb = mHalCamCtrl->mDataCb;
251 mHalCamCtrl->mCallbackLock.unlock();
253 if (pcb && (mHalCamCtrl->mMsgEnabled & CAMERA_MSG_PREVIEW_METADATA)){
255 pcb(CAMERA_MSG_PREVIEW_METADATA, NULL, 0, &mHalCamCtrl->mMetadata, mHalCamCtrl->mCallbackCookie);
264 if (idx >= mHalCamCtrl->mMetadata.number_of_faces) {
266 ALOGE("%s: idx %d out of boundary %d", __func__, idx, mHalCamCtrl->mMetadata.number_of_faces);
270 mHalCamCtrl->mFace[idx].id = roi.d.data.face.id;
271 mHalCamCtrl->mFace[idx].score = roi.d.data.face.score / 10; // keep within range 0~100
274 mHalCamCtrl->mFace[idx].rect[0] =
275 roi.d.data.face.face_boundary.x*2000/mHalCamCtrl->mDimension.display_width - 1000;
277 mHalCamCtrl->mFace[idx].rect[1] =
278 roi.d.data.face.face_boundary.y*2000/mHalCamCtrl->mDimension.display_height - 1000;
280 mHalCamCtrl->mFace[idx].rect[2] = mHalCamCtrl->mFace[idx].rect[0] +
281 roi.d.data.face.face_boundary.dx*2000/mHalCamCtrl->mDimension.display_width;
283 mHalCamCtrl->mFace[idx].rect[3] = mHalCamCtrl->mFace[idx].rect[1] +
284 roi.d.data.face.face_boundary.dy*2000/mHalCamCtrl->mDimension.display_height;
287 mHalCamCtrl->mFace[idx].left_eye[0] =
288 roi.d.data.face.left_eye_center[0]*2000/mHalCamCtrl->mDimension.display_width - 1000;
289 mHalCamCtrl->mFace[idx].left_eye[1] =
290 roi.d.data.face.left_eye_center[1]*2000/mHalCamCtrl->mDimension.display_height - 1000;
293 mHalCamCtrl->mFace[idx].right_eye[0] =
294 roi.d.data.face.right_eye_center[0]*2000/mHalCamCtrl->mDimension.display_width - 1000;
295 mHalCamCtrl->mFace[idx].right_eye[1] =
296 roi.d.data.face.right_eye_center[1]*2000/mHalCamCtrl->mDimension.display_height - 1000;
299 mHalCamCtrl->mFace[idx].mouth[0] =
300 roi.d.data.face.mouth_center[0]*2000/mHalCamCtrl->mDimension.display_width - 1000;
301 mHalCamCtrl->mFace[idx].mouth[1] =
302 roi.d.data.face.mouth_center[1]*2000/mHalCamCtrl->mDimension.display_height - 1000;
304 mHalCamCtrl->mFace[idx].smile_degree = roi.d.data.face.smile_degree;
305 mHalCamCtrl->mFace[idx].smile_score = roi.d.data.face.smile_confidence;
306 mHalCamCtrl->mFace[idx].blink_detected = roi.d.data.face.blink_detected;
307 mHalCamCtrl->mFace[idx].face_recognised = roi.d.data.face.is_face_recognised;
308 mHalCamCtrl->mFace[idx].gaze_angle = roi.d.data.face.gaze_angle;
312 mHalCamCtrl->mFace[idx].updown_dir = roi.d.data.face.updown_dir*2;
313 mHalCamCtrl->mFace[idx].leftright_dir = roi.d.data.face.leftright_dir*2;
314 mHalCamCtrl->mFace[idx].roll_dir = roi.d.data.face.roll_dir*2;
316 mHalCamCtrl->mFace[idx].leye_blink = roi.d.data.face.left_blink;
317 mHalCamCtrl->mFace[idx].reye_blink = roi.d.data.face.right_blink;
318 mHalCamCtrl->mFace[idx].left_right_gaze = roi.d.data.face.left_right_gaze;
319 mHalCamCtrl->mFace[idx].top_bottom_gaze = roi.d.data.face.top_bottom_gaze;
322 mHalCamCtrl->mFace[idx].rect[0], mHalCamCtrl->mFace[idx].rect[1],
323 mHalCamCtrl->mFace[idx].rect[2], mHalCamCtrl->mFace[idx].rect[3],
324 mHalCamCtrl->mFace[idx].left_eye[0], mHalCamCtrl->mFace[idx].left_eye[1],
325 mHalCamCtrl->mFace[idx].right_eye[0], mHalCamCtrl->mFace[idx].right_eye[1],
326 mHalCamCtrl->mFace[idx].mouth[0], mHalCamCtrl->mFace[idx].mouth[1],
332 if (mNumFDRcvd == mHalCamCtrl->mMetadata.number_of_faces) {
333 mHalCamCtrl->mCallbackLock.lock();
334 camera_data_callback pcb = mHalCamCtrl->mDataCb;
335 mHalCamCtrl->mCallbackLock.unlock();
337 if (pcb && (mHalCamCtrl->mMsgEnabled & CAMERA_MSG_PREVIEW_METADATA)){
338 ALOGE("%s: Face detection RIO callback with %d faces detected (score=%d)", __func__, mNumFDRcvd, mHalCamCtrl->mFace[idx].score);
339 pcb(CAMERA_MSG_PREVIEW_METADATA, NULL, 0, &mHalCamCtrl->mMetadata, mHalCamCtrl->mCallbackCookie);
361 memset(&mHalCamCtrl->mMetadata, 0, sizeof(camera_frame_metadata_t));
362 mHalCamCtrl->mPreviewMemoryLock.lock();
363 memset(&mHalCamCtrl->mPreviewMemory, 0, sizeof(mHalCamCtrl->mPreviewMemory));
364 mHalCamCtrl->mPreviewMemoryLock.unlock();
390 mHalCamCtrl->mPreviewMemoryLock.lock();
391 this->mDisplayStreamBuf.num = mHalCamCtrl->mPreviewMemory.buffer_count;
408 if (mHalCamCtrl->mPreviewMemory.private_buffer_handle[i] == NULL)
410 mDisplayStreamBuf.frame[i].fd = mHalCamCtrl->mPreviewMemory.private_buffer_handle[i]->fd;
414 mHalCamCtrl->mPreviewMemory.addr_offset[i] =
415 mHalCamCtrl->mPreviewMemory.private_buffer_handle[i]->offset;
417 (long unsigned int)mHalCamCtrl->mPreviewMemory.camera_memory[i]->data;
422 mHalCamCtrl->mPreviewMemory.private_buffer_handle[i]->size,
425 mHalCamCtrl->mPreviewMemory.addr_offset[i],
430 mDisplayBuf.preview.buf.mp[i].frame_offset = mHalCamCtrl->mPreviewMemory.addr_offset[i];
462 mHalCamCtrl->mPreviewMemoryLock.unlock();
495 status_t ret = cam_config_get_parm(mHalCamCtrl->mCameraId,
527 if(mHalCamCtrl==NULL) {
533 mHalCamCtrl->mCallbackLock.lock();
534 camera_data_timestamp_callback rcb = mHalCamCtrl->mDataCbTimestamp;
535 void *rdata = mHalCamCtrl->mCallbackCookie;
536 mHalCamCtrl->mCallbackLock.unlock();
538 if (UNLIKELY(mHalCamCtrl->mDebugFps)) {
539 mHalCamCtrl->debugShowPreviewFPS();
542 mHalCamCtrl->dumpFrameToFile(frame->def.frame, HAL_DUMP_FRM_PREVIEW);
546 mHalCamCtrl->mPreviewMemoryLock.lock();
551 mHalCamCtrl->mPreviewMemory.buffer_handle[frame->def.idx]);
553 if (BUFFER_LOCKED == mHalCamCtrl->mPreviewMemory.local_flag[frame->def.idx]) {
555 (*mHalCamCtrl->mPreviewMemory.buffer_handle[frame->def.idx]))) {
557 mHalCamCtrl->mPreviewMemoryLock.unlock();
560 mHalCamCtrl->mPreviewMemory.local_flag[frame->def.idx] = BUFFER_UNLOCKED;
564 mHalCamCtrl->mPreviewMemoryLock.unlock();
568 (buffer_handle_t *)mHalCamCtrl->mPreviewMemory.buffer_handle[frame->def.idx]);
582 mHalCamCtrl->mPreviewMemoryLock.unlock();
585 for(int i = 0; i < mHalCamCtrl->mPreviewMemory.buffer_count; i++) {
586 ALOGD("h1: %p h2: %p\n", mHalCamCtrl->mPreviewMemory.buffer_handle[i], buffer_handle);
587 if(mHalCamCtrl->mPreviewMemory.buffer_handle[i] == buffer_handle) {
589 mHalCamCtrl->mPreviewMemory.local_flag[i] = BUFFER_LOCKED;
592 mHalCamCtrl->mPreviewMemoryLock.unlock();
603 mHalCamCtrl->mPreviewMemoryLock.unlock();
605 mHalCamCtrl->mCallbackLock.lock();
606 camera_data_callback pcb = mHalCamCtrl->mDataCb;
607 mHalCamCtrl->mCallbackLock.unlock();
608 ALOGD("Message enabled = 0x%x", mHalCamCtrl->mMsgEnabled);
612 if(mHalCamCtrl->mMsgEnabled & CAMERA_MSG_PREVIEW_FRAME) {
614 data = mHalCamCtrl->mPreviewMemory.camera_memory[frame->def.idx];//mPreviewHeap->mBuffers[frame->def.idx];
620 pcb(msgType, data, 0, metadata, mHalCamCtrl->mCallbackCookie);
626 if (mHalCamCtrl->mStoreMetaDataInFrame)
629 if(mHalCamCtrl->mStartRecording == true &&( mHalCamCtrl->mMsgEnabled & CAMERA_MSG_VIDEO_FRAME))
631 mHalCamCtrl->mRecordingMemory.metadata_memory[frame->def.idx],
632 0, mHalCamCtrl->mCallbackCookie);
636 if(mHalCamCtrl->mStartRecording == true &&( mHalCamCtrl->mMsgEnabled & CAMERA_MSG_VIDEO_FRAME))
640 mHalCamCtrl->mPreviewMemory.camera_memory[frame->def.idx],
641 0, mHalCamCtrl->mCallbackCookie);
669 mHalCamCtrl = NULL;