diff --git a/app/src/main/cpp/camera2/ndkcamera.cpp b/app/src/main/cpp/camera2/ndkcamera.cpp index 1b5be850..d301e48a 100644 --- a/app/src/main/cpp/camera2/ndkcamera.cpp +++ b/app/src/main/cpp/camera2/ndkcamera.cpp @@ -18,6 +18,7 @@ #include #include #include +#include #include #include #include @@ -53,6 +54,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; @@ -77,6 +81,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); @@ -89,11 +97,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); } } @@ -803,6 +812,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