QCamera2: fix bug for noDisplay mode stream buf allocation
NoDisplay mode preview stream buffers should be allocated from
ION heap instead of from Gralloc.
Change-Id: I7bfa7bc13a025b53936ef91cdf00e18e0b223eed
diff --git a/camera/QCamera2/HAL/QCamera2HWI.cpp b/camera/QCamera2/HAL/QCamera2HWI.cpp
index e84b47f..42e508e 100644
--- a/camera/QCamera2/HAL/QCamera2HWI.cpp
+++ b/camera/QCamera2/HAL/QCamera2HWI.cpp
@@ -1344,15 +1344,31 @@
// Allocate stream buffer memory object
switch (stream_type) {
case CAM_STREAM_TYPE_PREVIEW:
- case CAM_STREAM_TYPE_POSTVIEW: {
- cam_dimension_t dim;
- QCameraGrallocMemory *grallocMemory = new QCameraGrallocMemory(mGetMemory);
+ {
+ if (isNoDisplayMode()) {
+ mem = new QCameraStreamMemory(mGetMemory);
+ } else {
+ cam_dimension_t dim;
+ QCameraGrallocMemory *grallocMemory = new QCameraGrallocMemory(mGetMemory);
- mParameters.getStreamDimension(stream_type, dim);
- if (grallocMemory)
- grallocMemory->setWindowInfo(mPreviewWindow, dim.width, dim.height,
- mParameters.getPreviewHalPixelFormat());
- mem = grallocMemory;
+ mParameters.getStreamDimension(stream_type, dim);
+ if (grallocMemory)
+ grallocMemory->setWindowInfo(mPreviewWindow, dim.width, dim.height,
+ mParameters.getPreviewHalPixelFormat());
+ mem = grallocMemory;
+ }
+ }
+ break;
+ case CAM_STREAM_TYPE_POSTVIEW:
+ {
+ cam_dimension_t dim;
+ QCameraGrallocMemory *grallocMemory = new QCameraGrallocMemory(mGetMemory);
+
+ mParameters.getStreamDimension(stream_type, dim);
+ if (grallocMemory)
+ grallocMemory->setWindowInfo(mPreviewWindow, dim.width, dim.height,
+ mParameters.getPreviewHalPixelFormat());
+ mem = grallocMemory;
}
break;
case CAM_STREAM_TYPE_SNAPSHOT:
@@ -1439,8 +1455,10 @@
//set flip mode based on Stream type;
int flipMode = mParameters.getFlipMode(stream_type);
- streamInfo->pp_config.feature_mask |= CAM_QCOM_FEATURE_FLIP;
- streamInfo->pp_config.flip = flipMode;
+ if (flipMode > 0) {
+ streamInfo->pp_config.feature_mask |= CAM_QCOM_FEATURE_FLIP;
+ streamInfo->pp_config.flip = flipMode;
+ }
// set Rotation if need online rotation per stream in CPP
if (needOnlineRotation()) {