QCamera2: HAL3: Link EIS module if video stabilization tag is set
This reverts commit 277412e7bd9e2ad75e931f1768a3ccacc6fcc809.
Bug: 67821724
Test: Camera CTS
Change-Id: I0da586a671c74247c1974cf8b6da1d8d44cd291e
diff --git a/camera/QCamera2/HAL3/QCamera3HWI.cpp b/camera/QCamera2/HAL3/QCamera3HWI.cpp
index 3b49d5e..c8b5d45 100644
--- a/camera/QCamera2/HAL3/QCamera3HWI.cpp
+++ b/camera/QCamera2/HAL3/QCamera3HWI.cpp
@@ -1528,7 +1528,7 @@
/* Check whether we have video stream */
m_bIs4KVideo = false;
m_bIsVideo = false;
- m_bEisSupportedSize = false;
+ m_bEisSupportedSize = true;
m_bTnrEnabled = false;
bool isZsl = false;
bool isPreview = false;
@@ -1598,7 +1598,8 @@
eis_prop_set = (uint8_t)atoi(eis_prop);
m_bEisEnable = eis_prop_set && (!oisSupported && eisSupported) &&
- (mOpMode != CAMERA3_STREAM_CONFIGURATION_CONSTRAINED_HIGH_SPEED_MODE);
+ (mOpMode != CAMERA3_STREAM_CONFIGURATION_CONSTRAINED_HIGH_SPEED_MODE) &&
+ (gCamCapability[mCameraId]->position != CAM_POSITION_FRONT);
/* stream configurations */
for (size_t i = 0; i < streamList->num_streams; i++) {
@@ -1631,17 +1632,18 @@
}
if ((HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED == newStream->format) &&
- (newStream->usage & private_handle_t::PRIV_FLAGS_VIDEO_ENCODER)) {
- m_bIsVideo = true;
- videoWidth = newStream->width;
- videoHeight = newStream->height;
- if ((VIDEO_4K_WIDTH <= newStream->width) &&
- (VIDEO_4K_HEIGHT <= newStream->height)) {
- m_bIs4KVideo = true;
+ (IS_USAGE_PREVIEW(newStream->usage) || IS_USAGE_VIDEO(newStream->usage))) {
+ if (IS_USAGE_VIDEO(newStream->usage)) {
+ videoWidth = newStream->width;
+ videoHeight = newStream->height;
+ m_bIsVideo = true;
+ if ((VIDEO_4K_WIDTH <= newStream->width) &&
+ (VIDEO_4K_HEIGHT <= newStream->height)) {
+ m_bIs4KVideo = true;
+ }
}
- m_bEisSupportedSize = (newStream->width <= maxEisWidth) &&
+ m_bEisSupportedSize &= (newStream->width <= maxEisWidth) &&
(newStream->height <= maxEisHeight);
-
}
if (newStream->stream_type == CAMERA3_STREAM_BIDIRECTIONAL ||
newStream->stream_type == CAMERA3_STREAM_OUTPUT) {
@@ -1711,11 +1713,6 @@
}
}
- if (gCamCapability[mCameraId]->position == CAM_POSITION_FRONT ||
- !m_bIsVideo) {
- m_bEisEnable = false;
- }
-
if (validateUsageFlagsForEis(streamList) != NO_ERROR) {
pthread_mutex_unlock(&mMutex);
return -EINVAL;
@@ -3716,8 +3713,13 @@
ADD_SET_PARAM_ENTRY_TO_BATCH(mParameters, CAM_INTF_META_CAPTURE_INTENT, captureIntent);
}
+ uint8_t fwkVideoStabMode=0;
+ if (meta.exists(ANDROID_CONTROL_VIDEO_STABILIZATION_MODE)) {
+ fwkVideoStabMode = meta.find(ANDROID_CONTROL_VIDEO_STABILIZATION_MODE).data.u8[0];
+ }
//If EIS is enabled, turn it on for video
- bool setEis = m_bEisEnable && m_bEisSupportedSize && !meta.exists(QCAMERA3_USE_AV_TIMER);
+ bool setEis = m_bEisEnable && (m_bIsVideo || fwkVideoStabMode) && m_bEisSupportedSize &&
+ !meta.exists(QCAMERA3_USE_AV_TIMER);
int32_t vsMode;
vsMode = (setEis)? DIS_ENABLE: DIS_DISABLE;
if (ADD_SET_PARAM_ENTRY_TO_BATCH(mParameters, CAM_INTF_PARM_DIS_ENABLE, vsMode)) {