From a9535f2df783569cda25192b5925fb8582276a02 Mon Sep 17 00:00:00 2001 From: Matthew Date: Tue, 15 Apr 2025 18:32:58 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=AF=B9AIS=E7=9A=84?= =?UTF-8?q?=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/cpp/camera2/ndkcamera.cpp | 10 +++++++--- app/src/main/cpp/camera2/ndkcamera.h | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/app/src/main/cpp/camera2/ndkcamera.cpp b/app/src/main/cpp/camera2/ndkcamera.cpp index 20eebf68..cfc6ef02 100644 --- a/app/src/main/cpp/camera2/ndkcamera.cpp +++ b/app/src/main/cpp/camera2/ndkcamera.cpp @@ -750,7 +750,11 @@ int NdkCamera::open(const std::string& cameraId) { if (m_params.burstRawCapture == 2) { - SetupMFNR(mCharacteristics.get(), request->request); + SetupMFNR(mCharacteristics.get(), request->request, false); + } + else if (m_params.burstRawCapture == 3) + { + SetupMFNR(mCharacteristics.get(), request->request, true); } mCaptureRequests.push_back(request); @@ -2194,7 +2198,7 @@ void NdkCamera::EnumCameraResult(ACameraMetadata* result, CAPTURE_RESULT& captur captureResult.compensation = (status == ACAMERA_OK) ? *(val.data.i32) : 0; } -void NdkCamera::SetupMFNR(ACameraMetadata* characteristics, ACaptureRequest* request) +void NdkCamera::SetupMFNR(ACameraMetadata* characteristics, ACaptureRequest* request, bool ais) { // 1. 设置基础的相机参数 // ACaptureRequest_setEntry_i32(request, ACAMERA_CONTROL_MODE, 1, ACAMERA_CONTROL_MODE_AUTO); @@ -2244,7 +2248,7 @@ void NdkCamera::SetupMFNR(ACameraMetadata* characteristics, ACaptureRequest* req // 2. 设置 MediaTek 特定的 MFNR 参数 // 使用 vendor tag 描述符 // int32_t mfbMode = MTK_MFNR_FEATURE_MFB_AUTO; // 1 Enable MFNR - int32_t mfbMode = 1; // 1 Enable MFNR + int32_t mfbMode = ais ? 2 : 1; // 1 Enable MFNR status = ACaptureRequest_setEntry_i32(request, MTK_MFNR_FEATURE_MFB_MODE, 1, &mfbMode); if (status != ACAMERA_OK) { diff --git a/app/src/main/cpp/camera2/ndkcamera.h b/app/src/main/cpp/camera2/ndkcamera.h index 99cfd891..fb1aaa8a 100644 --- a/app/src/main/cpp/camera2/ndkcamera.h +++ b/app/src/main/cpp/camera2/ndkcamera.h @@ -203,7 +203,7 @@ public: static void EnumCameraResult(ACameraMetadata* result, CAPTURE_RESULT& captureResult); protected: - void SetupMFNR(ACameraMetadata* characteristics, ACaptureRequest* request); + void SetupMFNR(ACameraMetadata* characteristics, ACaptureRequest* request, bool ais); protected: std::mutex m_locker;