msm8998: Update to 07.00.00.253.056
msm8998: from hardware/qcom/camera
1aea8ff Merge AU_LINUX_ANDROID_LA.UM.5.7.R1.07.00.00.253.052 on remote branch
85b8e0c Promotion of camera.lnx.1.0-00163.
2c15d07 Merge "Camera: Fix KW issue in OMX components" into camera.lnx.1.0-dev.1.0
cb2be77 Merge "QCamera2: HAL changes to enable LED calibration interface" into camera.lnx.1.0-dev.1.0
6e41742 Promotion of camera.lnx.1.0-00162.
665b32a Merge "HAL1: secure camera support" into camera.lnx.1.0-dev.1.0
b9320cd Merge "QCamera2: HAL1: Avoid preview stream for snapshot superbuf bundle" into camera.lnx.1.0-dev.1.0
611667a Merge "QCamera2: oemfeat1 changes cleanup" into camera.lnx.1.0-dev.1.0
23d90b4 Merge "QCamera2: add setprop for frameskip for oemfeat1" into camera.lnx.1.0-dev.1.0
ceb43cd Merge "QCamera2: HAL3: kpi markers" into camera.lnx.1.0-dev.1.0
141be77 Merge "QCamera2: HAL3: Update ZSL and 4K video check" into camera.lnx.1.0-dev.1.0
c1c1445 Merge "QCamera2:test: New Test Cases added in mm-qcamera-app" into camera.lnx.1.0-dev.1.0
d0ca453 Promotion of camera.lnx.1.0-00158.
1befa65 QCamera2: HAL changes to enable LED calibration interface
12876bf HAL1: secure camera support
23bce9b Merge "QCamera2: Use deferred allocation for raw stream in Quadcfa." into camera.lnx.1.0-dev.1.0
a2a9622 Merge "QCamera2: HAL1.0: Enable defer camera open interface in dual camera." into camera.lnx.1.0-dev.1.0
6359341 Camera: Fix KW issue in OMX components
f9a79de Promotion of camera.lnx.1.0-00157.
a819234 QCamera2: oemfeat1 changes cleanup
4f4250b QCamera2: HAL1: Avoid preview stream for snapshot superbuf bundle
d23c3f9 QCamera2: HAL3: kpi markers
ad4181c QCamera2: HAL1: Link CPP if JPEG sizes greater than VFE downscale limit
5e075e9 Merge "QCamera2:HAL1: Fix KW errors" into camera.lnx.1.0-dev.1.0
c123a36 Merge "QCamera2: Add feature mask for CPP downscaler only feature" into camera.lnx.1.0-dev.1.0
cc935e0 Merge "Qcamera2:test: fix error log" into camera.lnx.1.0-dev.1.0
4f08e46 Merge "QCamera2: Dual camera: Add setprop to disable low power mode" into camera.lnx.1.0-dev.1.0
51a7c88 Merge "QCamera2: Add dual camera parameters for bokeh and snapshot postprocessing" into camera.lnx.1.0-dev.1.0
b7feae0 Merge "QCamera2: Add STATS tuning parameters" into camera.lnx.1.0-dev.1.0
0733be5 Promotion of camera.lnx.1.0-00155.
f057c23 Merge "QCamera2: HAL1: Increase private meta data size" into camera.lnx.1.0-dev.1.0
0457abb QCamera2: Use deferred allocation for raw stream in Quadcfa.
095f69e Merge "Qcamera2:Test:jpeg: mm-jpeg-interface-test app compatible with encoder pipline" into camera.lnx.1.0-dev.1.0
9731038 Merge "QCamera2: Use unified logic to compute analysis dimensions in HAL1 & HAL3." into camera.lnx.1.0-dev.1.0
3ad9065 Merge "QCamera2: mm-camera-test: Fix failure of preview in mmi mode" into camera.lnx.1.0-dev.1.0
d7b161c Merge "QCamera2: Add CAM_INTF_PARM_FOV_COMP_ENABLE set parameter." into camera.lnx.1.0-dev.1.0
27d1151 QCamera2: Add dual camera parameters for bokeh and snapshot postprocessing
f03c287 QCamera2:test: New Test Cases added in mm-qcamera-app
6f39911 QCamera2:HAL1: Fix KW errors
e3bf5bf QCamera2: HAL3: Update ZSL and 4K video check
0403285 Qcamera2:test: fix error log
55b2e6c QCamera2: HAL1.0: Enable defer camera open interface in dual camera.
2596349 Merge "HAL-1: Set the HAL state appropriately when backend notifies error" into camera.lnx.1.0-dev.1.0
81ac162 QCamera2: Add feature mask for CPP downscaler only feature
518f313 QCamera2: Add CAM_INTF_PARM_FOV_COMP_ENABLE set parameter.
1436a36 Qcamera2:Test:jpeg: mm-jpeg-interface-test app compatible with encoder pipline
7ead4a7 QCamera2: Dual camera: Add setprop to disable low power mode
62d6c41 QCamera2: Add STATS tuning parameters
3807724 QCamera2: mm-camera-test: Fix failure of preview in mmi mode
2a576f9 QCamera2: Use unified logic to compute analysis dimensions in HAL1 & HAL3.
5661850 HAL-1: Set the HAL state appropriately when backend notifies error
7b467cd QCamera2: HAL1: Increase private meta data size
4b4288f QCamera2: add setprop for frameskip for oemfeat1
Change-Id: Ib9162b86d39bd0a5e337dfe0bf253e95f492e7ce
Signed-off-by: Thierry Strudel <tstrudel@google.com>
diff --git a/msm8998/QCamera2/HAL3/QCamera3HWI.cpp b/msm8998/QCamera2/HAL3/QCamera3HWI.cpp
index 471fb5f..9892265 100644
--- a/msm8998/QCamera2/HAL3/QCamera3HWI.cpp
+++ b/msm8998/QCamera2/HAL3/QCamera3HWI.cpp
@@ -1506,6 +1506,7 @@
camera3_stream_t *inputStream = NULL;
bool isJpeg = false;
cam_dimension_t jpegSize = {0, 0};
+ cam_dimension_t previewSize = {0, 0};
cam_padding_info_t padding_info = gCamCapability[mCameraId]->padding_info;
@@ -1687,8 +1688,8 @@
return -EINVAL;
}
/* Check whether we have zsl stream or 4k video case */
- if (isZsl && m_bIsVideo) {
- LOGE("Currently invalid configuration ZSL&Video!");
+ if (isZsl && m_bIs4KVideo) {
+ LOGE("Currently invalid configuration ZSL & 4K Video!");
pthread_mutex_unlock(&mMutex);
return -EINVAL;
}
@@ -1876,42 +1877,6 @@
return rc;
}
- // Create analysis stream all the time, even when h/w support is not available
- {
- cam_feature_mask_t analysisFeatureMask = CAM_QCOM_FEATURE_PP_SUPERSET_HAL3;
- setPAAFSupport(analysisFeatureMask, CAM_STREAM_TYPE_ANALYSIS,
- gCamCapability[mCameraId]->color_arrangement);
- cam_analysis_info_t analysisInfo;
- int32_t ret = NO_ERROR;
- ret = mCommon.getAnalysisInfo(
- FALSE,
- TRUE,
- analysisFeatureMask,
- &analysisInfo);
- if (ret == NO_ERROR) {
- mAnalysisChannel = new QCamera3SupportChannel(
- mCameraHandle->camera_handle,
- mChannelHandle,
- mCameraHandle->ops,
- &analysisInfo.analysis_padding_info,
- analysisFeatureMask,
- CAM_STREAM_TYPE_ANALYSIS,
- &analysisInfo.analysis_max_res,
- (analysisInfo.analysis_format
- == CAM_FORMAT_Y_ONLY ? CAM_FORMAT_Y_ONLY
- : CAM_FORMAT_YUV_420_NV21),
- analysisInfo.hw_analysis_supported,
- gCamCapability[mCameraId]->color_arrangement,
- this,
- 0); // force buffer count to 0
- } else {
- LOGW("getAnalysisInfo failed, ret = %d", ret);
- }
- if (!mAnalysisChannel) {
- LOGW("Analysis channel cannot be created");
- }
- }
-
bool isRawStreamRequested = false;
memset(&mStreamConfigInfo, 0, sizeof(cam_stream_size_info_t));
/* Allocate channel objects for the requested streams */
@@ -1975,6 +1940,8 @@
}
padding_info.width_padding = mSurfaceStridePadding;
padding_info.height_padding = CAM_PAD_TO_2;
+ previewSize.width = (int32_t)newStream->width;
+ previewSize.height = (int32_t)newStream->height;
}
if ((newStream->rotation == CAMERA3_STREAM_ROTATION_90) ||
(newStream->rotation == CAMERA3_STREAM_ROTATION_270)) {
@@ -2249,6 +2216,45 @@
mStreamConfigInfo.num_streams++;
}
+ // Create analysis stream all the time, even when h/w support is not available
+ {
+ cam_feature_mask_t analysisFeatureMask = CAM_QCOM_FEATURE_PP_SUPERSET_HAL3;
+ setPAAFSupport(analysisFeatureMask, CAM_STREAM_TYPE_ANALYSIS,
+ gCamCapability[mCameraId]->color_arrangement);
+ cam_analysis_info_t analysisInfo;
+ int32_t ret = NO_ERROR;
+ ret = mCommon.getAnalysisInfo(
+ FALSE,
+ analysisFeatureMask,
+ &analysisInfo);
+ if (ret == NO_ERROR) {
+ cam_dimension_t analysisDim;
+ analysisDim = mCommon.getMatchingDimension(previewSize,
+ analysisInfo.analysis_recommended_res);
+
+ mAnalysisChannel = new QCamera3SupportChannel(
+ mCameraHandle->camera_handle,
+ mChannelHandle,
+ mCameraHandle->ops,
+ &analysisInfo.analysis_padding_info,
+ analysisFeatureMask,
+ CAM_STREAM_TYPE_ANALYSIS,
+ &analysisDim,
+ (analysisInfo.analysis_format
+ == CAM_FORMAT_Y_ONLY ? CAM_FORMAT_Y_ONLY
+ : CAM_FORMAT_YUV_420_NV21),
+ analysisInfo.hw_analysis_supported,
+ gCamCapability[mCameraId]->color_arrangement,
+ this,
+ 0); // force buffer count to 0
+ } else {
+ LOGW("getAnalysisInfo failed, ret = %d", ret);
+ }
+ if (!mAnalysisChannel) {
+ LOGW("Analysis channel cannot be created");
+ }
+ }
+
//RAW DUMP channel
if (mEnableRawDump && isRawStreamRequested == false){
cam_dimension_t rawDumpSize;
@@ -2281,7 +2287,7 @@
setPAAFSupport(mStreamConfigInfo.postprocess_mask[mStreamConfigInfo.num_streams],
mStreamConfigInfo.type[mStreamConfigInfo.num_streams],
gCamCapability[mCameraId]->color_arrangement);
- rc = mCommon.getAnalysisInfo(FALSE, TRUE,
+ rc = mCommon.getAnalysisInfo(FALSE,
mStreamConfigInfo.postprocess_mask[mStreamConfigInfo.num_streams],
&analysisInfo);
if (rc != NO_ERROR) {
@@ -2290,7 +2296,8 @@
return rc;
}
mStreamConfigInfo.stream_sizes[mStreamConfigInfo.num_streams] =
- analysisInfo.analysis_max_res;
+ mCommon.getMatchingDimension(previewSize,
+ analysisInfo.analysis_recommended_res);
mStreamConfigInfo.num_streams++;
}
@@ -2302,7 +2309,7 @@
CAM_STREAM_TYPE_CALLBACK,
gCamCapability[mCameraId]->color_arrangement);
int32_t ret = NO_ERROR;
- ret = mCommon.getAnalysisInfo(FALSE, TRUE, callbackFeatureMask, &supportInfo);
+ ret = mCommon.getAnalysisInfo(FALSE, callbackFeatureMask, &supportInfo);
if (ret != NO_ERROR) {
/* Ignore the error for Mono camera
* because the PAAF bit mask is only set
@@ -5126,7 +5133,7 @@
*==========================================================================*/
int QCamera3HardwareInterface::flush(bool restartChannels)
{
- KPI_ATRACE_CAMSCOPE_CALL(CAMSCOPE_HAL3_FLUSH);
+ KPI_ATRACE_CAMSCOPE_CALL(CAMSCOPE_HAL3_STOP_PREVIEW);
int32_t rc = NO_ERROR;
LOGD("Unblocking Process Capture Request");
@@ -5236,7 +5243,7 @@
*==========================================================================*/
int QCamera3HardwareInterface::flushPerf()
{
- ATRACE_CAMSCOPE_CALL(CAMSCOPE_HAL3_FLUSH_PREF);
+ KPI_ATRACE_CAMSCOPE_CALL(CAMSCOPE_HAL3_STOP_PREVIEW);
int32_t rc = 0;
struct timespec timeout;
bool timed_wait = false;
@@ -11855,7 +11862,7 @@
gCamHal3LogLevel = (uint32_t)val;
}
- property_get("persist.camera.kpi.debug", prop, "1");
+ property_get("persist.camera.kpi.debug", prop, "0");
gKpiDebugLevel = atoi(prop);
property_get("persist.camera.global.debug", prop, "0");