diff --git a/app/src/main/cpp/camera2/ndkcamera.cpp b/app/src/main/cpp/camera2/ndkcamera.cpp index 57805fc4..5b4b085d 100644 --- a/app/src/main/cpp/camera2/ndkcamera.cpp +++ b/app/src/main/cpp/camera2/ndkcamera.cpp @@ -116,7 +116,8 @@ NdkCamera::NdkCamera(int32_t width, int32_t height, const NdkCamera::CAMERA_PARA m_imagesCaptured = ~0; afSupported = false; - lockAvailable = false; + aeLockAvailable = false; + awbLockAvailable = false; hdrSupported = false; nightModeSupported = false; @@ -315,7 +316,13 @@ int NdkCamera::open(const std::string& cameraId) { ACameraMetadata_const_entry e = {0}; status = ACameraMetadata_getConstEntry(camera_metadata,ACAMERA_CONTROL_AE_LOCK_AVAILABLE, &e); // AASSERT(status == ACAMERA_OK, "ACameraMetadata_getConstEntry::ACAMERA_CONTROL_AF_AVAILABLE_MODES return error, %d", status); - lockAvailable = (status == ACAMERA_OK) ? (*e.data.u8 == ACAMERA_CONTROL_AE_LOCK_AVAILABLE_TRUE) : false; + aeLockAvailable = (status == ACAMERA_OK) ? (*e.data.u8 == ACAMERA_CONTROL_AE_LOCK_AVAILABLE_TRUE) : false; + } + + { + ACameraMetadata_const_entry e = {0}; + status = ACameraMetadata_getConstEntry(camera_metadata,ACAMERA_CONTROL_AWB_LOCK_AVAILABLE, &e); + awbLockAvailable = (status == ACAMERA_OK) ? (*e.data.u8 == ACAMERA_CONTROL_AWB_LOCK_AVAILABLE_TRUE) : false; } { @@ -470,7 +477,7 @@ int NdkCamera::open(const std::string& cameraId) { // m_imagesCaptured = 0; uint8_t awbMode = ACAMERA_CONTROL_AWB_MODE_AUTO; - // res = ACaptureRequest_setEntry_u8(capture_request, ACAMERA_CONTROL_AWB_MODE, 1, &awbMode); + status = ACaptureRequest_setEntry_u8(capture_request, ACAMERA_CONTROL_AWB_MODE, 1, &awbMode); if (hdrSupported && m_params.hdrMode) { uint8_t hdrMode = ACAMERA_CONTROL_SCENE_MODE_HDR; @@ -917,7 +924,7 @@ void NdkCamera::onCaptureCompleted(ACameraCaptureSession* session, ACaptureReque } else if (mResult.aeState == ACAMERA_CONTROL_AE_STATE_CONVERGED) { - if (lockAvailable) + if (aeLockAvailable) { uint8_t aeLock = ACAMERA_CONTROL_AE_LOCK_ON; status = ACaptureRequest_setEntry_u8(capture_request, ACAMERA_CONTROL_AE_LOCK, 1, &aeLock); diff --git a/app/src/main/cpp/camera2/ndkcamera.h b/app/src/main/cpp/camera2/ndkcamera.h index d165c6be..22564117 100644 --- a/app/src/main/cpp/camera2/ndkcamera.h +++ b/app/src/main/cpp/camera2/ndkcamera.h @@ -137,7 +137,9 @@ protected: bool nightPortraitModeSupported; bool afSupported; bool awbSupported; - bool lockAvailable; + bool aeLockAvailable; + bool awbLockAvailable; + // int64_t exposureTime_; RangeValue exposureRange; // int32_t sensitivity_;