|
|
|
@ -1810,7 +1810,7 @@ void NdkCamera::onCaptureCompleted(ACameraCaptureSession* session, ACaptureReque
|
|
|
|
|
requests.push_back(request->request);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (m_params.customHdr)
|
|
|
|
|
if (m_params.customHdr && burstCaptures > 1)
|
|
|
|
|
{
|
|
|
|
|
int32_t hdrStep = m_params.hdrStep;
|
|
|
|
|
if (hdrStep == 0)
|
|
|
|
@ -1824,19 +1824,29 @@ void NdkCamera::onCaptureCompleted(ACameraCaptureSession* session, ACaptureReque
|
|
|
|
|
|
|
|
|
|
val = {0};
|
|
|
|
|
status = ACameraMetadata_getConstEntry(result, ACAMERA_SENSOR_SENSITIVITY, &val);
|
|
|
|
|
int sensitivity = (status == ACAMERA_OK) ? *(val.data.i32) : 0;
|
|
|
|
|
int32_t sensitivity = (status == ACAMERA_OK) ? *(val.data.i32) : 0;
|
|
|
|
|
|
|
|
|
|
XYLOG(XYLOG_SEVERITY_INFO, "HDR: Base Exp=%lld ISO=%d", exTime / 1000, sensitivity);
|
|
|
|
|
if (exTime != -1 && sensitivity > 0)
|
|
|
|
|
{
|
|
|
|
|
uint8_t aeModeOff = ACAMERA_CONTROL_AE_MODE_OFF;
|
|
|
|
|
for (int idx = 0; idx < burstCaptures; idx++)
|
|
|
|
|
// for (int idx = 0; idx < burstCaptures; idx++)
|
|
|
|
|
{
|
|
|
|
|
ACaptureRequest_setEntry_u8(requests[burstCaptures - 1], ACAMERA_CONTROL_AE_MODE, 1, &aeModeOff);
|
|
|
|
|
// int64_t expt = (idx == 0) ? exTime : (exTime * (hdrStep + idx));
|
|
|
|
|
int64_t expt = exTime + ((exTime * hdrStep) >> 1);
|
|
|
|
|
ACaptureRequest_setEntry_i64(requests[burstCaptures - 1], ACAMERA_SENSOR_EXPOSURE_TIME, 1, &expt);
|
|
|
|
|
|
|
|
|
|
int32_t newSensitivity = sensitivity - ((sensitivity * hdrStep) >> 2);
|
|
|
|
|
if (m_params.sensitivity != 0)
|
|
|
|
|
{
|
|
|
|
|
ACaptureRequest_setEntry_u8(requests[idx], ACAMERA_CONTROL_AE_MODE, 1, &aeModeOff);
|
|
|
|
|
int64_t expt = (idx == 0) ? exTime : (exTime * (hdrStep + idx));
|
|
|
|
|
ACaptureRequest_setEntry_i64(requests[idx], ACAMERA_SENSOR_EXPOSURE_TIME, 1, &expt);
|
|
|
|
|
ACaptureRequest_setEntry_i32(requests[idx], ACAMERA_SENSOR_SENSITIVITY, 1, &sensitivity);
|
|
|
|
|
sensitivity = sensitivityRange.min_;
|
|
|
|
|
newSensitivity = m_params.sensitivity;
|
|
|
|
|
}
|
|
|
|
|
if (newSensitivity < sensitivityRange.min_)
|
|
|
|
|
{
|
|
|
|
|
newSensitivity = sensitivityRange.min_;
|
|
|
|
|
}
|
|
|
|
|
ACaptureRequest_setEntry_i32(requests[burstCaptures - 1], ACAMERA_SENSOR_SENSITIVITY, 1, &newSensitivity);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|