|
|
|
@ -2717,21 +2717,7 @@ bool CPhoneDevice::onOneCapture(std::shared_ptr<ACameraMetadata> characteristics
|
|
|
|
|
std::string cameraInfo;
|
|
|
|
|
if (photoInfo.outputDbgInfo != 0)
|
|
|
|
|
{
|
|
|
|
|
NdkCamera::CAPTURE_RESULT captureResult = { 0 };
|
|
|
|
|
NdkCamera::EnumCameraResult(result.get(), captureResult);
|
|
|
|
|
|
|
|
|
|
char extimeunit[4] = { 0 };
|
|
|
|
|
unsigned int extime = (captureResult.exposureTime >= 1000000) ? ((unsigned int)(captureResult.exposureTime / 1000000)) : ((unsigned int)(captureResult.exposureTime / 1000));
|
|
|
|
|
strcpy(extimeunit, (captureResult.exposureTime >= 1000000) ? "ms" : "μs");
|
|
|
|
|
char str[128] = { 0 };
|
|
|
|
|
snprintf(str, sizeof(str), "AE=%u AF=%u EXPS=%u%s(%d) ISO=%d AFS=%u AES=%u AWBS=%u SCENE=%d LDR=%d(%u) %0.1fx T=%u FD=%lld",
|
|
|
|
|
captureResult.autoExposure, captureResult.autoFocus,
|
|
|
|
|
extime, extimeunit, captureResult.compensation, captureResult.sensitivity,
|
|
|
|
|
// isnan(captureResult.FocusDistance) ? 0 : captureResult.FocusDistance,
|
|
|
|
|
(unsigned int)captureResult.afState, (unsigned int)captureResult.aeState, captureResult.awbState,
|
|
|
|
|
captureResult.sceneMode, GpioControl::getLightAdc(), ldr, captureResult.zoomRatio,
|
|
|
|
|
duration, captureResult.frameDuration);
|
|
|
|
|
cameraInfo = str;
|
|
|
|
|
cameraInfo = BuildCaptureResultInfo(result.get(), ldr, duration, false);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#ifdef OUTPUT_DBG_INFO
|
|
|
|
@ -2858,21 +2844,7 @@ bool CPhoneDevice::onBurstCapture(std::shared_ptr<ACameraMetadata> characteristi
|
|
|
|
|
{
|
|
|
|
|
if (!results.empty())
|
|
|
|
|
{
|
|
|
|
|
NdkCamera::CAPTURE_RESULT captureResult = { 0 };
|
|
|
|
|
NdkCamera::EnumCameraResult(results[0].get(), captureResult);
|
|
|
|
|
|
|
|
|
|
char extimeunit[4] = { 0 };
|
|
|
|
|
unsigned int extime = (captureResult.exposureTime >= 1000000) ? ((unsigned int)(captureResult.exposureTime / 1000000)) : ((unsigned int)(captureResult.exposureTime / 1000));
|
|
|
|
|
strcpy(extimeunit, (captureResult.exposureTime >= 1000000) ? "ms" : "μs");
|
|
|
|
|
char str[128] = { 0 };
|
|
|
|
|
snprintf(str, sizeof(str), "AE=%u AF=%u EXPS=%u%s(%d) ISO=%d AFS=%u AES=%u AWBS=%u SCENE=%d LDR=%d(%u) %0.1fx T=%u FD=%lld BURST",
|
|
|
|
|
captureResult.autoExposure, captureResult.autoFocus,
|
|
|
|
|
extime, extimeunit, captureResult.compensation, captureResult.sensitivity,
|
|
|
|
|
// isnan(captureResult.FocusDistance) ? 0 : captureResult.FocusDistance,
|
|
|
|
|
(unsigned int)captureResult.afState, (unsigned int)captureResult.aeState, captureResult.awbState,
|
|
|
|
|
captureResult.sceneMode, GpioControl::getLightAdc(), ldr, captureResult.zoomRatio,
|
|
|
|
|
duration, captureResult.frameDuration);
|
|
|
|
|
cameraInfo = str;
|
|
|
|
|
cameraInfo = BuildCaptureResultInfo(results[0].get(), ldr, duration, true);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -3176,6 +3148,25 @@ bool CPhoneDevice::onBurstCapture(std::shared_ptr<ACameraMetadata> characteristi
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
std::string CPhoneDevice::BuildCaptureResultInfo(ACameraMetadata* result, uint32_t ldr, uint32_t duration, bool burst)
|
|
|
|
|
{
|
|
|
|
|
NdkCamera::CAPTURE_RESULT captureResult = { 0 };
|
|
|
|
|
NdkCamera::EnumCameraResult(result, captureResult);
|
|
|
|
|
|
|
|
|
|
char extimeunit[4] = { 0 };
|
|
|
|
|
unsigned int extime = (captureResult.exposureTime >= 1000000) ? ((unsigned int)(captureResult.exposureTime / 1000000)) : ((captureResult.exposureTime >= 1000) ? ((unsigned int)(captureResult.exposureTime / 1000)) : captureResult.exposureTime);
|
|
|
|
|
strcpy(extimeunit, (captureResult.exposureTime >= 1000000) ? "ms" : ((captureResult.exposureTime > 1000) ? "μs" : "ns"));
|
|
|
|
|
char str[128] = { 0 };
|
|
|
|
|
snprintf(str, sizeof(str), "AE=%u AF=%u EXPS=%u%s(%d) ISO=%d AFS=%u AES=%u AWBS=%u SCENE=%d LDR=%d(%u) %0.1fx T=%u FD=%lld %s",
|
|
|
|
|
captureResult.autoExposure, captureResult.autoFocus,
|
|
|
|
|
extime, extimeunit, captureResult.compensation, captureResult.sensitivity,
|
|
|
|
|
// isnan(captureResult.FocusDistance) ? 0 : captureResult.FocusDistance,
|
|
|
|
|
(unsigned int)captureResult.afState, (unsigned int)captureResult.aeState, captureResult.awbState,
|
|
|
|
|
captureResult.sceneMode, GpioControl::getLightAdc(), ldr, captureResult.zoomRatio,
|
|
|
|
|
duration, captureResult.frameDuration, burst ? "BURST" : "");
|
|
|
|
|
return std::string(str);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool CPhoneDevice::onBurstCapture(std::shared_ptr<ACameraMetadata> characteristics,
|
|
|
|
|
std::vector<std::shared_ptr<ACameraMetadata> >& results,
|
|
|
|
|
uint32_t ldr, uint32_t duration, std::vector<std::shared_ptr<AImage> >& frames)
|
|
|
|
@ -3365,21 +3356,7 @@ bool CPhoneDevice::onBurstCapture(std::shared_ptr<ACameraMetadata> characteristi
|
|
|
|
|
{
|
|
|
|
|
if (!results.empty())
|
|
|
|
|
{
|
|
|
|
|
NdkCamera::CAPTURE_RESULT captureResult = { 0 };
|
|
|
|
|
NdkCamera::EnumCameraResult(results[0].get(), captureResult);
|
|
|
|
|
|
|
|
|
|
char extimeunit[4] = { 0 };
|
|
|
|
|
unsigned int extime = (captureResult.exposureTime >= 1000000) ? ((unsigned int)(captureResult.exposureTime / 1000000)) : ((unsigned int)(captureResult.exposureTime / 1000));
|
|
|
|
|
strcpy(extimeunit, (captureResult.exposureTime >= 1000000) ? "ms" : "μs");
|
|
|
|
|
char str[128] = { 0 };
|
|
|
|
|
snprintf(str, sizeof(str), "AE=%u AF=%u EXPS=%u%s(%d) ISO=%d AFS=%u AES=%u AWBS=%u SCENE=%d LDR=%d(%u) %0.1fx T=%u FD=%lld",
|
|
|
|
|
captureResult.autoExposure, captureResult.autoFocus,
|
|
|
|
|
extime, extimeunit, captureResult.compensation, captureResult.sensitivity,
|
|
|
|
|
// isnan(captureResult.FocusDistance) ? 0 : captureResult.FocusDistance,
|
|
|
|
|
(unsigned int)captureResult.afState, (unsigned int)captureResult.aeState, captureResult.awbState,
|
|
|
|
|
captureResult.sceneMode, GpioControl::getLightAdc(), ldr, captureResult.zoomRatio,
|
|
|
|
|
duration, captureResult.frameDuration);
|
|
|
|
|
cameraInfo = str;
|
|
|
|
|
cameraInfo = BuildCaptureResultInfo(results[0].get(), ldr, duration, false);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|