diff options
author | Vladimir Petrov <vppetrov@mm-sol.com> | 2012-10-10 20:48:46 +0300 |
---|---|---|
committer | Daniel Levin <dendy@ti.com> | 2012-11-26 20:03:35 +0200 |
commit | f350ca59ece4cf7985c70b2f12e49cc3d5516801 (patch) | |
tree | d28f25009e83ae69edddc8ece330017eb90de610 /camera/BufferSourceAdapter.cpp | |
parent | 2ba749abd94d03c004fb4ec2986edb7f29c4fe03 (diff) | |
download | hardware_ti_omap4-f350ca59ece4cf7985c70b2f12e49cc3d5516801.tar.gz hardware_ti_omap4-f350ca59ece4cf7985c70b2f12e49cc3d5516801.tar.bz2 hardware_ti_omap4-f350ca59ece4cf7985c70b2f12e49cc3d5516801.zip |
CameraHal: Check if BS buffer is not in list
- Check that passed buffer is in current buffer
source list. If no, return the buffer to caller
instead of getting out of range.
Change-Id: I3acef6514049d1e1009f91ec4ec62688974223a1
Signed-off-by: Vladimir Petrov <vppetrov@mm-sol.com>
Diffstat (limited to 'camera/BufferSourceAdapter.cpp')
-rw-r--r-- | camera/BufferSourceAdapter.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/camera/BufferSourceAdapter.cpp b/camera/BufferSourceAdapter.cpp index b92f46e..3b0d480 100644 --- a/camera/BufferSourceAdapter.cpp +++ b/camera/BufferSourceAdapter.cpp @@ -705,6 +705,15 @@ void BufferSourceAdapter::handleFrameCallback(CameraFrame* frame) } } + if (i >= mBufferCount) { + CAMHAL_LOGD("Can't find frame in buffer list"); + if (frame->mFrameType != CameraFrame::REPROCESS_INPUT_FRAME) { + mFrameProvider->returnFrame(frame->mBuffer, + static_cast<CameraFrame::FrameType>(frame->mFrameType)); + } + return; + } + handle = (buffer_handle_t *) mBuffers[i].opaque; // Handle input buffers |