From 571a8aa6df812fc3f46d9ec6815634b3fbdce048 Mon Sep 17 00:00:00 2001 From: Matthew Date: Tue, 9 Jul 2024 23:07:50 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=8B=8D=E7=85=A7=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF=E6=8E=A7=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/cpp/PhoneDevice.cpp | 1 + app/src/main/cpp/camera2/ndkcamera.cpp | 11 +++++------ app/src/main/cpp/camera2/ndkcamera.h | 1 + 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/app/src/main/cpp/PhoneDevice.cpp b/app/src/main/cpp/PhoneDevice.cpp index daaa2d0d..a85224a4 100644 --- a/app/src/main/cpp/PhoneDevice.cpp +++ b/app/src/main/cpp/PhoneDevice.cpp @@ -1171,6 +1171,7 @@ bool CPhoneDevice::TakePhoto(const IDevice::PHOTO_INFO& photoInfo, const vector< params.orientation = mPhotoInfo.orientation; params.zoom = mPhotoInfo.zoom; params.zoomRatio = mPhotoInfo.zoomRatio; + params.requestTemplate; = mPhotoInfo.requestTemplate; if (photoInfo.ldrEnabled) { diff --git a/app/src/main/cpp/camera2/ndkcamera.cpp b/app/src/main/cpp/camera2/ndkcamera.cpp index 13fd48d9..f98bd097 100644 --- a/app/src/main/cpp/camera2/ndkcamera.cpp +++ b/app/src/main/cpp/camera2/ndkcamera.cpp @@ -554,7 +554,7 @@ int NdkCamera::open(const std::string& cameraId) { m_params.autoExposure) ? TEMPLATE_PREVIEW : TEMPLATE_STILL_CAPTURE; - templateId = TEMPLATE_STILL_CAPTURE; + templateId = m_param.requestTemplate; status = ACameraDevice_createCaptureRequest(camera_device, templateId, &capture_request); int32_t fpsRange[2] = {1,10}; @@ -1255,7 +1255,6 @@ void NdkCamera::onCaptureCompleted(ACameraCaptureSession* session, ACaptureReque } } - if (m_imagesCaptured != 0 || camera_facing == 2) { return; @@ -1305,19 +1304,19 @@ void NdkCamera::onCaptureCompleted(ACameraCaptureSession* session, ACaptureReque val = {0}; status = ACameraMetadata_getConstEntry(result, ACAMERA_SENSOR_SENSITIVITY, &val); - mResult.sensitivity = *(val.data.i32); + mResult.sensitivity = (status == ACAMERA_OK) ? *(val.data.i32) : 0; val = {0}; status = ACameraMetadata_getConstEntry(result, ACAMERA_CONTROL_SCENE_MODE, &val); - mResult.sceneMode = status == ACAMERA_OK ? *(val.data.u8) : 0; + mResult.sceneMode = (status == ACAMERA_OK) ? *(val.data.u8) : 0; val = {0}; status = ACameraMetadata_getConstEntry(result, ACAMERA_CONTROL_AF_MODE, &val); - mResult.autoFocus = *(val.data.u8); + mResult.autoFocus = (status == ACAMERA_OK) ? *(val.data.u8) : 0; val = {0}; status = ACameraMetadata_getConstEntry(result, ACAMERA_CONTROL_AE_EXPOSURE_COMPENSATION, &val); - mResult.compensation = *(val.data.i32); + mResult.compensation = (status == ACAMERA_OK) ? *(val.data.i32) : 0; ALOGD("onCaptureCompleted EXPO=%lld, FD=%f camera id=%s, AE=%s AFS=%u AES=%u", exTime, focusDistance, mCameraId.c_str(), ((aeMode == 1) ? "ON" : "OFF"), mResult.afState, mResult.aeState); diff --git a/app/src/main/cpp/camera2/ndkcamera.h b/app/src/main/cpp/camera2/ndkcamera.h index 24b73da2..48524cc5 100644 --- a/app/src/main/cpp/camera2/ndkcamera.h +++ b/app/src/main/cpp/camera2/ndkcamera.h @@ -81,6 +81,7 @@ public: unsigned int sensitivity; int compensation; float zoomRatio; + uint8_t requestTemplate; }; struct CAPTURE_RESULT