白平衡设置

serial
Matthew 1 year ago
parent 1f5216a66d
commit 4a412647ea

@ -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);

@ -137,7 +137,9 @@ protected:
bool nightPortraitModeSupported;
bool afSupported;
bool awbSupported;
bool lockAvailable;
bool aeLockAvailable;
bool awbLockAvailable;
// int64_t exposureTime_;
RangeValue<int64_t> exposureRange;
// int32_t sensitivity_;

Loading…
Cancel
Save