|
|
@ -282,6 +282,7 @@ NdkCamera::NdkCamera(int32_t width, int32_t height, const NdkCamera::CAMERA_PARA
|
|
|
|
mLdr = ~0;
|
|
|
|
mLdr = ~0;
|
|
|
|
mFinalLdr = 0;
|
|
|
|
mFinalLdr = 0;
|
|
|
|
mFinalOutputFormat = AIMAGE_FORMAT_YUV_420_888;
|
|
|
|
mFinalOutputFormat = AIMAGE_FORMAT_YUV_420_888;
|
|
|
|
|
|
|
|
m_delayFrames = 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
NdkCamera::~NdkCamera()
|
|
|
|
NdkCamera::~NdkCamera()
|
|
|
@ -813,7 +814,8 @@ NdkCamera::CaptureRequest* NdkCamera::CreateRequest(bool isPreviewRequest)
|
|
|
|
uint8_t ctrlMode = ACAMERA_CONTROL_MODE_AUTO;
|
|
|
|
uint8_t ctrlMode = ACAMERA_CONTROL_MODE_AUTO;
|
|
|
|
status = ACaptureRequest_setEntry_u8(request->request, ACAMERA_CONTROL_MODE, 1, &ctrlMode);
|
|
|
|
status = ACaptureRequest_setEntry_u8(request->request, ACAMERA_CONTROL_MODE, 1, &ctrlMode);
|
|
|
|
|
|
|
|
|
|
|
|
uint8_t captureIntent = GetCaptureIntent((ACameraDevice_request_template)m_params.requestTemplate);
|
|
|
|
// uint8_t captureIntent = GetCaptureIntent((ACameraDevice_request_template)m_params.requestTemplate);
|
|
|
|
|
|
|
|
uint8_t captureIntent = ACAMERA_CONTROL_CAPTURE_INTENT_PREVIEW;
|
|
|
|
status = ACaptureRequest_setEntry_u8(request->request, ACAMERA_CONTROL_CAPTURE_INTENT, 1, &captureIntent);
|
|
|
|
status = ACaptureRequest_setEntry_u8(request->request, ACAMERA_CONTROL_CAPTURE_INTENT, 1, &captureIntent);
|
|
|
|
|
|
|
|
|
|
|
|
uint8_t flashMode = ACAMERA_FLASH_MODE_OFF;
|
|
|
|
uint8_t flashMode = ACAMERA_FLASH_MODE_OFF;
|
|
|
@ -1468,6 +1470,29 @@ void NdkCamera::onCaptureProgressed(ACameraCaptureSession* session, ACaptureRequ
|
|
|
|
|
|
|
|
|
|
|
|
void NdkCamera::onCaptureCompleted(ACameraCaptureSession* session, ACaptureRequest* request, const ACameraMetadata* result)
|
|
|
|
void NdkCamera::onCaptureCompleted(ACameraCaptureSession* session, ACaptureRequest* request, const ACameraMetadata* result)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
|
|
|
|
camera_status_t status = ACAMERA_ERROR_BASE;
|
|
|
|
|
|
|
|
m_delayFrames++;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (m_delayFrames <= 4)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
if (m_delayFrames == 4)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
uint8_t captureIntent = GetCaptureIntent((ACameraDevice_request_template)m_params.requestTemplate);
|
|
|
|
|
|
|
|
if (captureIntent != ACAMERA_CONTROL_CAPTURE_INTENT_PREVIEW)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
status = ACaptureRequest_setEntry_u8(request, ACAMERA_CONTROL_CAPTURE_INTENT, 1, &captureIntent);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (m_params.burstRawCapture == 2 || m_params.burstRawCapture == 3)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
int32_t stillCaptureHint = 1;
|
|
|
|
|
|
|
|
status = ACaptureRequest_setEntry_i32(request, MTK_CONTROL_CAPTURE_HINT_FOR_ISP_TUNING, 1, &stillCaptureHint);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
mCaptureTriggered = true;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_locker.lock();
|
|
|
|
m_locker.lock();
|
|
|
|
int64_t minTs = m_minTimestamp;
|
|
|
|
int64_t minTs = m_minTimestamp;
|
|
|
|
m_locker.unlock();
|
|
|
|
m_locker.unlock();
|
|
|
@ -1488,7 +1513,7 @@ void NdkCamera::onCaptureCompleted(ACameraCaptureSession* session, ACaptureReque
|
|
|
|
CaptureRequest* pCaptureRequest = reinterpret_cast<CaptureRequest *>(context);
|
|
|
|
CaptureRequest* pCaptureRequest = reinterpret_cast<CaptureRequest *>(context);
|
|
|
|
|
|
|
|
|
|
|
|
bool readyForCapture = true;
|
|
|
|
bool readyForCapture = true;
|
|
|
|
camera_status_t status = ACAMERA_ERROR_BASE;
|
|
|
|
|
|
|
|
uint64_t ts = GetMicroTimeStamp();
|
|
|
|
uint64_t ts = GetMicroTimeStamp();
|
|
|
|
|
|
|
|
|
|
|
|
uint8_t aeState = ACAMERA_CONTROL_AE_STATE_INACTIVE;
|
|
|
|
uint8_t aeState = ACAMERA_CONTROL_AE_STATE_INACTIVE;
|
|
|
@ -1688,7 +1713,6 @@ void NdkCamera::onCaptureCompleted(ACameraCaptureSession* session, ACaptureReque
|
|
|
|
}
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
mCaptureTriggered = true;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -2264,6 +2288,4 @@ void NdkCamera::SetupMFNR(ACameraMetadata* characteristics, ACaptureRequest* req
|
|
|
|
ALOGE("Failed to set MTK_CONTROL_AE_EXPOSURE_COMPENSATION, status: %d", status);
|
|
|
|
ALOGE("Failed to set MTK_CONTROL_AE_EXPOSURE_COMPENSATION, status: %d", status);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|