|
|
|
@ -119,9 +119,7 @@ NdkCamera::NdkCamera(int32_t width, int32_t height, const NdkCamera::CAMERA_PARA
|
|
|
|
|
aeLockAvailable = false;
|
|
|
|
|
awbLockAvailable = false;
|
|
|
|
|
|
|
|
|
|
hdrSupported = false;
|
|
|
|
|
nightModeSupported = false;
|
|
|
|
|
nightPortraitModeSupported = false;
|
|
|
|
|
sceneModeSupported = false;
|
|
|
|
|
|
|
|
|
|
camera_manager_cb.context = this;
|
|
|
|
|
camera_manager_cb.onCameraAvailable = ::onAvailabilityCallback;
|
|
|
|
@ -212,7 +210,7 @@ int NdkCamera::open(const std::string& cameraId) {
|
|
|
|
|
int32_t format = e.data.i32[i + 0];
|
|
|
|
|
if (input) continue;
|
|
|
|
|
|
|
|
|
|
if (format == AIMAGE_FORMAT_YUV_420_888 || format == AIMAGE_FORMAT_JPEG)
|
|
|
|
|
// if (format == AIMAGE_FORMAT_YUV_420_888 || format == AIMAGE_FORMAT_JPEG)
|
|
|
|
|
{
|
|
|
|
|
DisplayDimension res(e.data.i32[i + 1], e.data.i32[i + 2]);
|
|
|
|
|
if (!disp.IsSameRatio(res))
|
|
|
|
@ -224,7 +222,7 @@ int NdkCamera::open(const std::string& cameraId) {
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (format == AIMAGE_FORMAT_YUV_420_888 && res > disp)
|
|
|
|
|
if (/*format == AIMAGE_FORMAT_YUV_420_888 && */res > disp)
|
|
|
|
|
{
|
|
|
|
|
foundIt = true;
|
|
|
|
|
foundRes = res;
|
|
|
|
@ -362,19 +360,11 @@ int NdkCamera::open(const std::string& cameraId) {
|
|
|
|
|
{
|
|
|
|
|
for (int i = 0; i < e.count; i++)
|
|
|
|
|
{
|
|
|
|
|
if (ACAMERA_CONTROL_SCENE_MODE_HDR == e.data.u8[i])
|
|
|
|
|
if (m_params.sceneMode == e.data.u8[i])
|
|
|
|
|
{
|
|
|
|
|
hdrSupported = true;
|
|
|
|
|
sceneModeSupported = true;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
else if (ACAMERA_CONTROL_SCENE_MODE_NIGHT == e.data.u8[i])
|
|
|
|
|
{
|
|
|
|
|
nightModeSupported = true;
|
|
|
|
|
}
|
|
|
|
|
else if (ACAMERA_CONTROL_SCENE_MODE_NIGHT_PORTRAIT == e.data.u8[i])
|
|
|
|
|
{
|
|
|
|
|
nightPortraitModeSupported = true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -479,20 +469,9 @@ int NdkCamera::open(const std::string& cameraId) {
|
|
|
|
|
uint8_t awbMode = ACAMERA_CONTROL_AWB_MODE_AUTO;
|
|
|
|
|
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;
|
|
|
|
|
status = ACaptureRequest_setEntry_u8(capture_request, ACAMERA_CONTROL_SCENE_MODE, 1,&hdrMode);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (m_params.nightMode) {
|
|
|
|
|
if (nightModeSupported) {
|
|
|
|
|
uint8_t sceneMode = ACAMERA_CONTROL_SCENE_MODE_NIGHT;
|
|
|
|
|
status = ACaptureRequest_setEntry_u8(capture_request, ACAMERA_CONTROL_SCENE_MODE, 1, &sceneMode);
|
|
|
|
|
}
|
|
|
|
|
if (nightPortraitModeSupported) {
|
|
|
|
|
uint8_t modeEnabled = 1; // ACAMERA_CONTROL_SCENE_MODE_HDR
|
|
|
|
|
// res = ACaptureRequest_setEntry_u8(capture_request, ACAMERA_CONTROL_SCENE_MODE_NIGHT_PORTRAIT, 1, &modeEnabled);
|
|
|
|
|
}
|
|
|
|
|
if (m_params.sceneMode != 0) {
|
|
|
|
|
uint8_t sceneMode = m_params.sceneMode;
|
|
|
|
|
status = ACaptureRequest_setEntry_u8(capture_request, ACAMERA_CONTROL_SCENE_MODE, 1, &sceneMode);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
status = ACameraOutputTarget_create(image_reader_surface, &image_reader_target);
|
|
|
|
@ -1004,7 +983,7 @@ void NdkCamera::onCaptureCompleted(ACameraCaptureSession* session, ACaptureReque
|
|
|
|
|
|
|
|
|
|
val = {0};
|
|
|
|
|
status = ACameraMetadata_getConstEntry(result, ACAMERA_CONTROL_SCENE_MODE, &val);
|
|
|
|
|
mResult.hdrMode = (*(val.data.u8) == ACAMERA_CONTROL_SCENE_MODE_HDR) ? 1 : 0;
|
|
|
|
|
mResult.sceneMode = status == ACAMERA_OK ? *(val.data.u8) : 0;
|
|
|
|
|
|
|
|
|
|
val = {0};
|
|
|
|
|
status = ACameraMetadata_getConstEntry(result, ACAMERA_CONTROL_AF_MODE, &val);
|
|
|
|
|