diff options
author | Shuzhen Wang <shuzhenw@codeaurora.org> | 2013-04-16 16:08:11 -0700 |
---|---|---|
committer | Iliyan Malchev <malchev@google.com> | 2013-04-16 16:13:11 -0700 |
commit | f5e6f16486b1d1f657f3d143fae49b71c176f608 (patch) | |
tree | 4ef1cc3c14859a5ccb203563d5c50a00efb85594 /camera | |
parent | 94c83ab70adbfd954c10c26bf96d646b98e301ed (diff) | |
download | mako-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.cpp | 11 |
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 |