summaryrefslogtreecommitdiffstats
path: root/camera/BufferSourceAdapter.cpp
diff options
context:
space:
mode:
authorEmilian Peev <epeev@mm-sol.com>2012-10-30 14:17:23 +0200
committerDaniel Levin <dendy@ti.com>2012-11-26 20:18:39 +0200
commit9010f9444a792b248e6082007061b0c930248cea (patch)
tree765680002f9da36029a00b7a5a412bb60935a730 /camera/BufferSourceAdapter.cpp
parent6b2c36552251da51b7899b56d030015474580e4b (diff)
downloadhardware_ti_omap4-9010f9444a792b248e6082007061b0c930248cea.tar.gz
hardware_ti_omap4-9010f9444a792b248e6082007061b0c930248cea.tar.bz2
hardware_ti_omap4-9010f9444a792b248e6082007061b0c930248cea.zip
CameraHal: Release reprocess input buffers
- Currently reprocess buffers are getting acquired from a 'BufferQueue' via calls to 'update_and_get_current()'. Those buffers are not getting properly released though. Depends on frameworks/av I050800fa: http://review.omapzoom.org/#/c/30198/ Change-Id: I841a78063bcf18f7ecf3882311ecc9dee3be6745 Signed-off-by: Emilian Peev <epeev@mm-sol.com>
Diffstat (limited to 'camera/BufferSourceAdapter.cpp')
-rw-r--r--camera/BufferSourceAdapter.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/camera/BufferSourceAdapter.cpp b/camera/BufferSourceAdapter.cpp
index 01aa284..3c4e698 100644
--- a/camera/BufferSourceAdapter.cpp
+++ b/camera/BufferSourceAdapter.cpp
@@ -632,6 +632,7 @@ CameraBuffer* BufferSourceAdapter::getBufferList(int *num) {
// TODO(XXX): Only supporting one input buffer at a time right now
*num = 1;
+ mBufferCount = *num;
mBuffers = new CameraBuffer [lnumBufs];
memset (mBuffers, 0, sizeof(CameraBuffer) * lnumBufs);
@@ -639,7 +640,10 @@ CameraBuffer* BufferSourceAdapter::getBufferList(int *num) {
return NULL;
}
- err = extendedOps()->update_and_get_buffer(mBufferSource, &handle, &mBuffers[0].stride);
+ err = extendedOps()->update_and_get_buffer(mBufferSource,
+ &handle,
+ &mBuffers[0].stride,
+ &mBuffers[0].privateData);
if (err != 0) {
CAMHAL_LOGEB("update and get buffer failed: %s (%d)", strerror(-err), -err);
if ( ENODEV == err ) {
@@ -877,6 +881,7 @@ void BufferSourceAdapter::handleFrameCallback(CameraFrame* frame)
if (frame->mFrameType == CameraFrame::REPROCESS_INPUT_FRAME) {
CAMHAL_LOGD("Unlock %p (buffer #%d)", handle, i);
mapper.unlock(*handle);
+ extendedOps()->release_buffer(mBufferSource, mBuffers[i].privateData);
return;
}