Merge "camera: Change HDR+ shot hint to 2s" into oc-dr1-dev
diff --git a/msm8998/QCamera2/HAL3/QCamera3HWI.cpp b/msm8998/QCamera2/HAL3/QCamera3HWI.cpp
index 498f3a2..d4060de 100644
--- a/msm8998/QCamera2/HAL3/QCamera3HWI.cpp
+++ b/msm8998/QCamera2/HAL3/QCamera3HWI.cpp
@@ -3505,6 +3505,9 @@
* which the partial result is being sen
* @lastUrgentMetadataInBatch: Boolean to indicate whether this is the
* last urgent metadata in a batch. Always true for non-batch mode
+ * @isJumpstartMetadata: Whether this is a partial metadata for
+ * jumpstart, i.e. even though it doesn't map to a valid partial
+ * frame number, its metadata entries should be kept.
*
* RETURN :
*
@@ -3513,7 +3516,8 @@
void QCamera3HardwareInterface::sendPartialMetadataWithLock(
metadata_buffer_t *metadata,
const pendingRequestIterator requestIter,
- bool lastUrgentMetadataInBatch)
+ bool lastUrgentMetadataInBatch,
+ bool isJumpstartMetadata)
{
camera3_capture_result_t result;
memset(&result, 0, sizeof(camera3_capture_result_t));
@@ -3522,7 +3526,8 @@
// Extract 3A metadata
result.result = translateCbUrgentMetadataToResultMetadata(
- metadata, lastUrgentMetadataInBatch, requestIter->frame_number);
+ metadata, lastUrgentMetadataInBatch, requestIter->frame_number,
+ isJumpstartMetadata);
// Populate metadata result
result.frame_number = requestIter->frame_number;
result.num_output_buffers = 0;
@@ -3671,7 +3676,8 @@
for (pendingRequestIterator i =
mPendingRequestsList.begin(); i != mPendingRequestsList.end(); i++) {
if (i->bUseFirstPartial) {
- sendPartialMetadataWithLock(metadata, i, lastUrgentMetadataInBatch);
+ sendPartialMetadataWithLock(metadata, i, lastUrgentMetadataInBatch,
+ true /*isJumpstartMetadata*/);
}
}
mFirstMetadataCallback = false;
@@ -3697,7 +3703,8 @@
if (i->frame_number == urgent_frame_number &&
i->partial_result_cnt == 0) {
- sendPartialMetadataWithLock(metadata, i, lastUrgentMetadataInBatch);
+ sendPartialMetadataWithLock(metadata, i, lastUrgentMetadataInBatch,
+ false /*isJumpstartMetadata*/);
if (mResetInstantAEC && mInstantAECSettledFrameNumber == 0) {
// Instant AEC settled for this frame.
LOGH("instant AEC settled for frame number %d", urgent_frame_number);
@@ -6904,6 +6911,25 @@
float fwk_DevCamDebug_aec_gamma_ratio = *DevCamDebug_aec_gamma_ratio;
camMetadata.update(DEVCAMDEBUG_AEC_GAMMA_RATIO, &fwk_DevCamDebug_aec_gamma_ratio, 1);
}
+ // DevCamDebug metadata translateFromHalMetadata AEC MOTION
+ IF_META_AVAILABLE(float, DevCamDebug_aec_camera_motion_dx,
+ CAM_INTF_META_DEV_CAM_AEC_CAMERA_MOTION_DX, metadata) {
+ float fwk_DevCamDebug_aec_camera_motion_dx = *DevCamDebug_aec_camera_motion_dx;
+ camMetadata.update(DEVCAMDEBUG_AEC_CAMERA_MOTION_DX,
+ &fwk_DevCamDebug_aec_camera_motion_dx, 1);
+ }
+ IF_META_AVAILABLE(float, DevCamDebug_aec_camera_motion_dy,
+ CAM_INTF_META_DEV_CAM_AEC_CAMERA_MOTION_DY, metadata) {
+ float fwk_DevCamDebug_aec_camera_motion_dy = *DevCamDebug_aec_camera_motion_dy;
+ camMetadata.update(DEVCAMDEBUG_AEC_CAMERA_MOTION_DY,
+ &fwk_DevCamDebug_aec_camera_motion_dy, 1);
+ }
+ IF_META_AVAILABLE(float, DevCamDebug_aec_subject_motion,
+ CAM_INTF_META_DEV_CAM_AEC_SUBJECT_MOTION, metadata) {
+ float fwk_DevCamDebug_aec_subject_motion = *DevCamDebug_aec_subject_motion;
+ camMetadata.update(DEVCAMDEBUG_AEC_SUBJECT_MOTION,
+ &fwk_DevCamDebug_aec_subject_motion, 1);
+ }
// DevCamDebug metadata translateFromHalMetadata AWB
IF_META_AVAILABLE(float, DevCamDebug_awb_r_gain,
CAM_INTF_META_DEV_CAM_AWB_R_GAIN, metadata) {
@@ -8136,19 +8162,21 @@
* urgent metadata in a batch. Always true for
* non-batch mode.
* @frame_number : frame number for this urgent metadata
- *
+ * @isJumpstartMetadata: Whether this is a partial metadata for jumpstart,
+ * i.e. even though it doesn't map to a valid partial
+ * frame number, its metadata entries should be kept.
* RETURN : camera_metadata_t*
* metadata in a format specified by fwk
*==========================================================================*/
camera_metadata_t*
QCamera3HardwareInterface::translateCbUrgentMetadataToResultMetadata
(metadata_buffer_t *metadata, bool lastUrgentMetadataInBatch,
- uint32_t frame_number)
+ uint32_t frame_number, bool isJumpstartMetadata)
{
CameraMetadata camMetadata;
camera_metadata_t *resultMetadata;
- if (!lastUrgentMetadataInBatch) {
+ if (!lastUrgentMetadataInBatch && !isJumpstartMetadata) {
/* In batch mode, use empty metadata if this is not the last in batch
*/
resultMetadata = allocate_camera_metadata(0, 0);
@@ -10211,6 +10239,10 @@
DEVCAMDEBUG_AEC_LTM_RATIO,
DEVCAMDEBUG_AEC_LA_RATIO,
DEVCAMDEBUG_AEC_GAMMA_RATIO,
+ // DevCamDebug metadata result_keys AEC MOTION
+ DEVCAMDEBUG_AEC_CAMERA_MOTION_DX,
+ DEVCAMDEBUG_AEC_CAMERA_MOTION_DY,
+ DEVCAMDEBUG_AEC_SUBJECT_MOTION,
// DevCamDebug metadata result_keys AWB
DEVCAMDEBUG_AWB_R_GAIN,
DEVCAMDEBUG_AWB_G_GAIN,
diff --git a/msm8998/QCamera2/HAL3/QCamera3HWI.h b/msm8998/QCamera2/HAL3/QCamera3HWI.h
index 1044612..2638edf 100644
--- a/msm8998/QCamera2/HAL3/QCamera3HWI.h
+++ b/msm8998/QCamera2/HAL3/QCamera3HWI.h
@@ -315,7 +315,7 @@
metadata_buffer_t *hal_metadata, uint32_t snapshotStreamId, int64_t minFrameDuration);
camera_metadata_t* translateCbUrgentMetadataToResultMetadata (
metadata_buffer_t *metadata, bool lastUrgentMetadataInBatch,
- uint32_t frame_number);
+ uint32_t frame_number, bool isJumpstartMetadata);
camera_metadata_t* saveRequestSettings(const CameraMetadata& jpegMetadata,
camera3_capture_request_t *request);
int initParameters();
@@ -740,7 +740,7 @@
bool mFirstMetadataCallback;
void sendPartialMetadataWithLock(metadata_buffer_t *metadata,
const pendingRequestIterator requestIter,
- bool lastUrgentMetadataInBatch);
+ bool lastUrgentMetadataInBatch, bool isJumpstartMetadata);
camera_metadata_t* translateFromHalMetadata(metadata_buffer_t *metadata,
const PendingRequestInfo& pendingRequest,
diff --git a/msm8998/QCamera2/HAL3/QCamera3VendorTags.cpp b/msm8998/QCamera2/HAL3/QCamera3VendorTags.cpp
index 07915ed..72366c1 100644
--- a/msm8998/QCamera2/HAL3/QCamera3VendorTags.cpp
+++ b/msm8998/QCamera2/HAL3/QCamera3VendorTags.cpp
@@ -295,6 +295,10 @@
{ "devcamdebug_aec_ltm_ratio", TYPE_FLOAT },
{ "devcamdebug_aec_la_ratio", TYPE_FLOAT },
{ "devcamdebug_aec_gamma_ratio", TYPE_FLOAT },
+ // DevCamDebug vendor AEC MOTION
+ { "devcamdebug_aec_camera_motion_dx", TYPE_FLOAT },
+ { "devcamdebug_aec_camera_motion_dy", TYPE_FLOAT },
+ { "devcamdebug_aec_subject_motion", TYPE_FLOAT },
// DevCamDebug vendor tag AWB
{ "devcamdebug_awb_r_gain", TYPE_FLOAT },
{ "devcamdebug_awb_g_gain", TYPE_FLOAT },
@@ -498,6 +502,10 @@
(uint32_t)DEVCAMDEBUG_AEC_LTM_RATIO,
(uint32_t)DEVCAMDEBUG_AEC_LA_RATIO,
(uint32_t)DEVCAMDEBUG_AEC_GAMMA_RATIO,
+ // DEVCAMDEBUG AEC MOTION
+ (uint32_t)DEVCAMDEBUG_AEC_CAMERA_MOTION_DX,
+ (uint32_t)DEVCAMDEBUG_AEC_CAMERA_MOTION_DY,
+ (uint32_t)DEVCAMDEBUG_AEC_SUBJECT_MOTION,
// DEVCAMDEBUG AWB
(uint32_t)DEVCAMDEBUG_AWB_R_GAIN,
(uint32_t)DEVCAMDEBUG_AWB_G_GAIN,
diff --git a/msm8998/QCamera2/HAL3/QCamera3VendorTags.h b/msm8998/QCamera2/HAL3/QCamera3VendorTags.h
index cbc57df..f505d20 100644
--- a/msm8998/QCamera2/HAL3/QCamera3VendorTags.h
+++ b/msm8998/QCamera2/HAL3/QCamera3VendorTags.h
@@ -346,6 +346,10 @@
DEVCAMDEBUG_AEC_LTM_RATIO,
DEVCAMDEBUG_AEC_LA_RATIO,
DEVCAMDEBUG_AEC_GAMMA_RATIO,
+ // DEVCAMDEBUG AEC MOTION
+ DEVCAMDEBUG_AEC_CAMERA_MOTION_DX,
+ DEVCAMDEBUG_AEC_CAMERA_MOTION_DY,
+ DEVCAMDEBUG_AEC_SUBJECT_MOTION,
// DEVCAMDEBUG AWB
DEVCAMDEBUG_AWB_R_GAIN,
DEVCAMDEBUG_AWB_G_GAIN,
diff --git a/msm8998/QCamera2/stack/common/cam_intf.h b/msm8998/QCamera2/stack/common/cam_intf.h
index 02448b3..aa12488 100644
--- a/msm8998/QCamera2/stack/common/cam_intf.h
+++ b/msm8998/QCamera2/stack/common/cam_intf.h
@@ -1197,6 +1197,10 @@
INCLUDE(CAM_INTF_META_DEV_CAM_AEC_LTM_RATIO, float, 1);
INCLUDE(CAM_INTF_META_DEV_CAM_AEC_LA_RATIO, float, 1);
INCLUDE(CAM_INTF_META_DEV_CAM_AEC_GAMMA_RATIO, float, 1);
+ /* DevCamDebug metadata CAM_INTF.H AEC MOTION */
+ INCLUDE(CAM_INTF_META_DEV_CAM_AEC_CAMERA_MOTION_DX, float, 1);
+ INCLUDE(CAM_INTF_META_DEV_CAM_AEC_CAMERA_MOTION_DY, float, 1);
+ INCLUDE(CAM_INTF_META_DEV_CAM_AEC_SUBJECT_MOTION, float, 1);
/* DevCamDebug metadata CAM_INTF.H AWB */
INCLUDE(CAM_INTF_META_DEV_CAM_AWB_R_GAIN, float, 1);
INCLUDE(CAM_INTF_META_DEV_CAM_AWB_G_GAIN, float, 1);
diff --git a/msm8998/QCamera2/stack/common/cam_types.h b/msm8998/QCamera2/stack/common/cam_types.h
index 83142b7..a567f59 100644
--- a/msm8998/QCamera2/stack/common/cam_types.h
+++ b/msm8998/QCamera2/stack/common/cam_types.h
@@ -2507,6 +2507,10 @@
CAM_INTF_META_DEV_CAM_AEC_LTM_RATIO,
CAM_INTF_META_DEV_CAM_AEC_LA_RATIO,
CAM_INTF_META_DEV_CAM_AEC_GAMMA_RATIO,
+ /* DevCamDebug metadata CAM_INTF.H AEC MOTION */
+ CAM_INTF_META_DEV_CAM_AEC_CAMERA_MOTION_DX,
+ CAM_INTF_META_DEV_CAM_AEC_CAMERA_MOTION_DY,
+ CAM_INTF_META_DEV_CAM_AEC_SUBJECT_MOTION,
/* DevCamDebug metadata CAM_TYPES.h AWB */
CAM_INTF_META_DEV_CAM_AWB_R_GAIN,
CAM_INTF_META_DEV_CAM_AWB_G_GAIN,