diff options
author | Emilian Peev <epeev@mm-sol.com> | 2012-10-30 14:17:23 +0200 |
---|---|---|
committer | Daniel Levin <dendy@ti.com> | 2012-11-26 20:18:39 +0200 |
commit | 9010f9444a792b248e6082007061b0c930248cea (patch) | |
tree | 765680002f9da36029a00b7a5a412bb60935a730 /camera/BufferSourceAdapter.cpp | |
parent | 6b2c36552251da51b7899b56d030015474580e4b (diff) | |
download | hardware_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.cpp | 7 |
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; } |