summaryrefslogtreecommitdiff
path: root/camera
diff options
context:
space:
mode:
authorShuzhen Wang <shuzhenw@codeaurora.org>2013-04-16 16:08:11 -0700
committerIliyan Malchev <malchev@google.com>2013-04-16 16:13:11 -0700
commitf5e6f16486b1d1f657f3d143fae49b71c176f608 (patch)
tree4ef1cc3c14859a5ccb203563d5c50a00efb85594 /camera
parent94c83ab70adbfd954c10c26bf96d646b98e301ed (diff)
downloadmako-f5e6f16486b1d1f657f3d143fae49b71c176f608.tar.gz
Camera: Call cancel_buffers on min undequeued buffers
Call cancel_buffers on min undequeued buffers after dequeuing all buffers before stating prewview. Bug: 8371899 Change-Id: I9cf911f57044b034f77e185a827953d260ac1786 Signed-off-by: Iliyan Malchev <malchev@google.com>
Diffstat (limited to 'camera')
-rw-r--r--camera/QCameraHWI_Preview.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/camera/QCameraHWI_Preview.cpp b/camera/QCameraHWI_Preview.cpp
index 302afac..cc85c3d 100644
--- a/camera/QCameraHWI_Preview.cpp
+++ b/camera/QCameraHWI_Preview.cpp
@@ -232,6 +232,13 @@ status_t QCameraStream_preview::getBufferFromSurface()
mHalCamCtrl->mPreviewMemory.private_buffer_handle[cnt]->offset);
}
+ //Cancel min_undequeued_buffer buffers back to the window
+ for (int i = 0; i < numMinUndequeuedBufs; i ++) {
+ if( mHalCamCtrl->mPreviewMemory.local_flag[i] != BUFFER_NOT_OWNED) {
+ err = mPreviewWindow->cancel_buffer(mPreviewWindow, mHalCamCtrl->mPreviewMemory.buffer_handle[i]);
+ }
+ mHalCamCtrl->mPreviewMemory.local_flag[i] = BUFFER_NOT_OWNED;
+ }
memset(&mHalCamCtrl->mMetadata, 0, sizeof(mHalCamCtrl->mMetadata));
memset(mHalCamCtrl->mFace, 0, sizeof(mHalCamCtrl->mFace));
@@ -920,8 +927,8 @@ status_t QCameraStream_preview::processPreviewFrameWithDisplay(
}
} else {
ALOGE("%s: buffer to be enqueued is not locked", __FUNCTION__);
- //mHalCamCtrl->mPreviewMemoryLock.unlock();
- //return -EINVAL;
+ mHalCamCtrl->mPreviewMemoryLock.unlock();
+ return -EINVAL;
}
#ifdef USE_ION