summaryrefslogtreecommitdiffstats
path: root/camera/BufferSourceAdapter.cpp
diff options
context:
space:
mode:
authorVladimir Petrov <vppetrov@mm-sol.com>2012-10-10 20:48:46 +0300
committerDaniel Levin <dendy@ti.com>2012-11-26 20:03:35 +0200
commitf350ca59ece4cf7985c70b2f12e49cc3d5516801 (patch)
treed28f25009e83ae69edddc8ece330017eb90de610 /camera/BufferSourceAdapter.cpp
parent2ba749abd94d03c004fb4ec2986edb7f29c4fe03 (diff)
downloadhardware_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.cpp9
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