QCamera2: HAL3: avtimer info is set to backend before stream on
- Currently HAL sends avtimer info after stream_off which is too
late
- Patch sends avtimer info as a set_param before stream_on when
avtimer is enabled
Ack-by: Elvice Wu
BUG=29834294
Change-Id: I331c2422a3febaf846085bc7180f27e3cedb54db
diff --git a/QCamera2/HAL3/QCamera3HWI.cpp b/QCamera2/HAL3/QCamera3HWI.cpp
index 6494dfe..4c5a754 100644
--- a/QCamera2/HAL3/QCamera3HWI.cpp
+++ b/QCamera2/HAL3/QCamera3HWI.cpp
@@ -3558,6 +3558,23 @@
LOGE("Failed to disable CDS for HFR mode");
}
+
+ if (m_debug_avtimer || meta.exists(QCAMERA3_USE_AV_TIMER)) {
+ uint8_t* use_av_timer = NULL;
+
+ if (m_debug_avtimer){
+ use_av_timer = &m_debug_avtimer;
+ }
+ else{
+ use_av_timer =
+ meta.find(QCAMERA3_USE_AV_TIMER).data.u8;
+ }
+
+ if (ADD_SET_PARAM_ENTRY_TO_BATCH(mParameters, CAM_INTF_META_USE_AV_TIMER, *use_av_timer)) {
+ rc = BAD_VALUE;
+ }
+ }
+
setMobicat();
/* Set fps and hfr mode while sending meta stream info so that sensor
@@ -3592,6 +3609,7 @@
}
memset(&mBatchedStreamsArray, 0, sizeof(cam_stream_ID_t));
+
//TODO: validate the arguments, HSV scenemode should have only the
//advertised fps ranges
@@ -3607,6 +3625,7 @@
mStreamConfigInfo.postprocess_mask[i],
mStreamConfigInfo.format[i]);
}
+
rc = mCameraHandle->ops->set_parms(mCameraHandle->camera_handle,
mParameters);
if (rc < 0) {
@@ -9843,22 +9862,6 @@
}
}
- if (m_debug_avtimer || frame_settings.exists(QCAMERA3_USE_AV_TIMER)) {
- uint8_t* use_av_timer = NULL;
-
- if (m_debug_avtimer){
- use_av_timer = &m_debug_avtimer;
- }
- else{
- use_av_timer =
- frame_settings.find(QCAMERA3_USE_AV_TIMER).data.u8;
- }
-
- if (ADD_SET_PARAM_ENTRY_TO_BATCH(hal_metadata, CAM_INTF_META_USE_AV_TIMER, *use_av_timer)) {
- rc = BAD_VALUE;
- }
- }
-
// EV step
if (ADD_SET_PARAM_ENTRY_TO_BATCH(hal_metadata, CAM_INTF_PARM_EV_STEP,
gCamCapability[mCameraId]->exp_compensation_step)) {