|
|
@ -19,6 +19,7 @@
|
|
|
|
#include <numeric>
|
|
|
|
#include <numeric>
|
|
|
|
#include <fstream>
|
|
|
|
#include <fstream>
|
|
|
|
#include <android/log.h>
|
|
|
|
#include <android/log.h>
|
|
|
|
|
|
|
|
#include <sys/system_properties.h>
|
|
|
|
#include <opencv2/opencv.hpp>
|
|
|
|
#include <opencv2/opencv.hpp>
|
|
|
|
#include <opencv2/core/core.hpp>
|
|
|
|
#include <opencv2/core/core.hpp>
|
|
|
|
#include <opencv2/highgui.hpp>
|
|
|
|
#include <opencv2/highgui.hpp>
|
|
|
@ -54,6 +55,9 @@ void SetupMFNR(ACameraMetadata* characteristics, ACaptureRequest* request) {
|
|
|
|
// ACaptureRequest_setEntry_i32(request, ACAMERA_CONTROL_MODE, 1, ACAMERA_CONTROL_MODE_AUTO);
|
|
|
|
// ACaptureRequest_setEntry_i32(request, ACAMERA_CONTROL_MODE, 1, ACAMERA_CONTROL_MODE_AUTO);
|
|
|
|
camera_status_t status;
|
|
|
|
camera_status_t status;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
__system_property_set("vendor.mfll.force", "1");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#if 0
|
|
|
|
#if 0
|
|
|
|
int32_t tagCount = 0;
|
|
|
|
int32_t tagCount = 0;
|
|
|
|
const uint32_t* tags = nullptr;
|
|
|
|
const uint32_t* tags = nullptr;
|
|
|
@ -78,6 +82,10 @@ void SetupMFNR(ACameraMetadata* characteristics, ACaptureRequest* request) {
|
|
|
|
|
|
|
|
|
|
|
|
uint8_t nrMode = ACAMERA_NOISE_REDUCTION_MODE_HIGH_QUALITY;
|
|
|
|
uint8_t nrMode = ACAMERA_NOISE_REDUCTION_MODE_HIGH_QUALITY;
|
|
|
|
status = ACaptureRequest_setEntry_u8(request, ACAMERA_NOISE_REDUCTION_MODE, 1, &nrMode);
|
|
|
|
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;
|
|
|
|
uint8_t reqRemosaicEnable = 1;
|
|
|
|
status = ACaptureRequest_setEntry_u8(request, MTK_HAL_REQUEST_REMOSAIC_ENABLE, 1, &reqRemosaicEnable);
|
|
|
|
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 参数
|
|
|
|
// 2. 设置 MediaTek 特定的 MFNR 参数
|
|
|
|
// 使用 vendor tag 描述符
|
|
|
|
// 使用 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);
|
|
|
|
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);
|
|
|
|
CaptureRequest *request = CreateRequest(true);
|
|
|
|
|
|
|
|
if (m_params.burstRawCapture == 0 && m_params.customHdr != 0)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
// SetupMFNR(mCharacteristics.get(), request->request);
|
|
|
|
|
|
|
|
}
|
|
|
|
mCaptureRequests.push_back(request);
|
|
|
|
mCaptureRequests.push_back(request);
|
|
|
|
|
|
|
|
|
|
|
|
// capture session
|
|
|
|
// capture session
|
|
|
|