status_t QCameraStream_preview::start() { ALOGV("%s: E", __func__); status_t ret = NO_ERROR; Mutex::Autolock lock(mLock); /* call start() in parent class to start the monitor thread*/ //QCameraStream::start (); #if 0 ret = cam_config_prepare_buf(mCameraId, &mDisplayBuf); ALOGE("Debug : %s : cam_config_prepare_buf",__func__); if(ret != MM_CAMERA_OK) { ALOGV("%s:reg preview buf err=%d\n", __func__, ret); ret = BAD_VALUE; goto error; }else { ret = NO_ERROR; } #endif /* For preview, the OP_MODE we set is dependent upon whether we are starting camera or camcorder. For snapshot, anyway we disable preview. However, for ZSL we need to set OP_MODE to OP_MODE_ZSL and not OP_MODE_VIDEO. We'll set that for now in CamCtrl. So in case of ZSL we skip setting Mode here */ /* call mm_camera action start(...) */ ALOGE("Starting Preview/Video Stream. "); mFirstFrameRcvd = false; ALOGE("Starting Preview/Video Stream. "); ret = streamOn(); if (MM_CAMERA_OK != ret) { ALOGE ("%s: preview streaming start err=%d\n", __func__, ret); ret = BAD_VALUE; goto end; } ALOGE("Debug : %s : Preview streaming Started",__func__); ret = NO_ERROR; mActive = true; goto end; end: ALOGE("%s: X", __func__); return ret; }
status_t QCameraStream_Rdi::start() { ALOGV("%s: E", __func__); status_t ret = NO_ERROR; uint32_t stream_info; Mutex::Autolock lock(mStopCallbackLock); /* call start() in parent class to start the monitor thread*/ //QCameraStream::start (); stream_info = mHalCamCtrl->getChannelInterface(); setFormat(MM_CAMERA_CH_RDI_MASK, (cam_format_t)0); initRdiBuffers(); ret = cam_config_prepare_buf(mCameraId, &mRdiBuf); if(ret != MM_CAMERA_OK) { ret = BAD_VALUE; } else ret = NO_ERROR; /* For preview, the OP_MODE we set is dependent upon whether we are starting camera or camcorder. For snapshot, anyway we disable preview. However, for ZSL we need to set OP_MODE to OP_MODE_ZSL and not OP_MODE_VIDEO. We'll set that for now in CamCtrl. So in case of ZSL we skip setting Mode here */ if (!(myMode & CAMERA_ZSL_MODE)) { ALOGD("Setting OP MODE to MM_CAMERA_OP_MODE_VIDEO"); mm_camera_op_mode_type_t op_mode=MM_CAMERA_OP_MODE_VIDEO; ret = cam_config_set_parm (mCameraId, MM_CAMERA_PARM_OP_MODE, &op_mode); ALOGD("OP Mode Set"); if(MM_CAMERA_OK != ret) { ALOGE("%s: X :set mode MM_CAMERA_OP_MODE_VIDEO err=%d\n", __func__, ret); ret = BAD_VALUE; goto error; } }else { ALOGD("Setting OP MODE to MM_CAMERA_OP_MODE_ZSL"); mm_camera_op_mode_type_t op_mode=MM_CAMERA_OP_MODE_ZSL; ret = cam_config_set_parm (mCameraId, MM_CAMERA_PARM_OP_MODE, &op_mode); if(MM_CAMERA_OK != ret) { ALOGE("%s: X :set mode MM_CAMERA_OP_MODE_ZSL err=%d\n", __func__, ret); ret = BAD_VALUE; goto error; } } /* call mm_camera action start(...) */ ALOGD("Starting RDI Stream. "); ret = cam_ops_action(mCameraId, TRUE, MM_CAMERA_OPS_RDI, 0); if (MM_CAMERA_OK != ret) { ALOGE ("%s: rdi streaming start err=%d\n", __func__, ret); ret = BAD_VALUE; freeBufferRdi(); goto end; } ret = NO_ERROR; mActive = true; goto end; error: freeBufferRdi(); end: ALOGD("%s: X", __func__); return ret; }
status_t QCameraStream_preview::start() { ALOGV("%s: E", __func__); status_t ret = NO_ERROR; mm_camera_reg_buf_t *reg_buf=&mDisplayBuf; Mutex::Autolock lock(mStopCallbackLock); /* call start() in parent class to start the monitor thread*/ //QCameraStream::start (); setFormat(MM_CAMERA_CH_PREVIEW_MASK); if(NO_ERROR!=initDisplayBuffers()){ return BAD_VALUE; } ALOGE("Debug : %s : initDisplayBuffers",__func__); ret = cam_config_prepare_buf(mCameraId, reg_buf); ALOGE("Debug : %s : cam_config_prepare_buf",__func__); if(ret != MM_CAMERA_OK) { ALOGV("%s:reg preview buf err=%d\n", __func__, ret); ret = BAD_VALUE; }else ret = NO_ERROR; /* For preview, the OP_MODE we set is dependent upon whether we are starting camera or camcorder. For snapshot, anyway we disable preview. However, for ZSL we need to set OP_MODE to OP_MODE_ZSL and not OP_MODE_VIDEO. We'll set that for now in CamCtrl. So in case of ZSL we skip setting Mode here */ if (!(myMode & CAMERA_ZSL_MODE)) { ALOGE("Setting OP MODE to MM_CAMERA_OP_MODE_VIDEO"); mm_camera_op_mode_type_t op_mode=MM_CAMERA_OP_MODE_VIDEO; ret = cam_config_set_parm (mCameraId, MM_CAMERA_PARM_OP_MODE, &op_mode); ALOGE("OP Mode Set"); if(MM_CAMERA_OK != ret) { ALOGE("%s: X :set mode MM_CAMERA_OP_MODE_VIDEO err=%d\n", __func__, ret); return BAD_VALUE; } }else { ALOGE("Setting OP MODE to MM_CAMERA_OP_MODE_ZSL"); mm_camera_op_mode_type_t op_mode=MM_CAMERA_OP_MODE_ZSL; ret = cam_config_set_parm (mCameraId, MM_CAMERA_PARM_OP_MODE, &op_mode); if(MM_CAMERA_OK != ret) { ALOGE("%s: X :set mode MM_CAMERA_OP_MODE_ZSL err=%d\n", __func__, ret); return BAD_VALUE; } } /* call mm_camera action start(...) */ ALOGE("Starting Preview/Video Stream. "); ret = cam_ops_action(mCameraId, TRUE, MM_CAMERA_OPS_PREVIEW, 0); if (MM_CAMERA_OK != ret) { ALOGE ("%s: preview streaming start err=%d\n", __func__, ret); return BAD_VALUE; } ALOGE("Debug : %s : Preview streaming Started",__func__); ret = NO_ERROR; mActive = true; ALOGE("%s: X", __func__); return NO_ERROR; }