From d35bf3d71c8e2fd89aca04830d5bbe16991dc28c Mon Sep 17 00:00:00 2001 From: Matthew Date: Fri, 11 Apr 2025 23:18:08 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/cpp/camera2/ndkcamera.cpp | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/app/src/main/cpp/camera2/ndkcamera.cpp b/app/src/main/cpp/camera2/ndkcamera.cpp index bed31299..c10907f9 100644 --- a/app/src/main/cpp/camera2/ndkcamera.cpp +++ b/app/src/main/cpp/camera2/ndkcamera.cpp @@ -19,6 +19,7 @@ #include #include #include +#include #include #include #include @@ -54,6 +55,9 @@ void SetupMFNR(ACameraMetadata* characteristics, ACaptureRequest* request) { // ACaptureRequest_setEntry_i32(request, ACAMERA_CONTROL_MODE, 1, ACAMERA_CONTROL_MODE_AUTO); camera_status_t status; + __system_property_set("vendor.mfll.force", "1"); + + #if 0 int32_t tagCount = 0; const uint32_t* tags = nullptr; @@ -78,6 +82,10 @@ void SetupMFNR(ACameraMetadata* characteristics, ACaptureRequest* request) { uint8_t nrMode = ACAMERA_NOISE_REDUCTION_MODE_HIGH_QUALITY; status = ACaptureRequest_setEntry_u8(request, ACAMERA_NOISE_REDUCTION_MODE, 1, &nrMode); + if (status != ACAMERA_OK) + { + ALOGE("Failed to set ACAMERA_NOISE_REDUCTION_MODE, status: %d", status); + } uint8_t reqRemosaicEnable = 1; status = ACaptureRequest_setEntry_u8(request, MTK_HAL_REQUEST_REMOSAIC_ENABLE, 1, &reqRemosaicEnable); @@ -90,11 +98,12 @@ void SetupMFNR(ACameraMetadata* characteristics, ACaptureRequest* request) { // 2. 设置 MediaTek 特定的 MFNR 参数 // 使用 vendor tag 描述符 - int32_t mfbMode = MTK_MFNR_FEATURE_MFB_AUTO; // 1 Enable MFNR + // int32_t mfbMode = MTK_MFNR_FEATURE_MFB_AUTO; // 1 Enable MFNR + int32_t mfbMode = 1; // 1 Enable MFNR status = ACaptureRequest_setEntry_i32(request, MTK_MFNR_FEATURE_MFB_MODE, 1, &mfbMode); - if (status == ACAMERA_OK) + if (status != ACAMERA_OK) { - + ALOGE("Failed to set MTK_MFNR_FEATURE_MFB_MODE, status: %d", status); } } @@ -844,6 +853,10 @@ int NdkCamera::open(const std::string& cameraId) { CaptureRequest *request = CreateRequest(true); + if (m_params.burstRawCapture == 0 && m_params.customHdr != 0) + { + // SetupMFNR(mCharacteristics.get(), request->request); + } mCaptureRequests.push_back(request); // capture session