diff options
-rw-r--r-- | camera/BufferSourceAdapter.cpp | 7 | ||||
-rw-r--r-- | camera/CameraHal.cpp | 7 | ||||
-rw-r--r-- | camera/inc/CameraHal.h | 1 |
3 files changed, 13 insertions, 2 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; } diff --git a/camera/CameraHal.cpp b/camera/CameraHal.cpp index e3bee43..37baec8 100644 --- a/camera/CameraHal.cpp +++ b/camera/CameraHal.cpp @@ -68,7 +68,11 @@ extern const char * const kYuvImagesOutputDirPath = "/data/misc/camera/YuV_PiCtU #ifdef OMAP_ENHANCEMENT_CPCAM -static int dummy_update_and_get_buffer(preview_stream_ops_t*, buffer_handle_t**, int*) { +static int dummy_update_and_get_buffer(preview_stream_ops_t*, buffer_handle_t**, int*,int*) { + return INVALID_OPERATION; +} + +static int dummy_release_buffer(preview_stream_ops_t*, int slot) { return INVALID_OPERATION; } @@ -107,6 +111,7 @@ static int dummy_get_current_size(preview_stream_ops_t*, static preview_stream_extended_ops_t dummyPreviewStreamExtendedOps = { #ifdef OMAP_ENHANCEMENT_CPCAM dummy_update_and_get_buffer, + dummy_release_buffer, dummy_get_buffer_dimension, dummy_get_buffer_format, dummy_set_metadata, diff --git a/camera/inc/CameraHal.h b/camera/inc/CameraHal.h index e5e6fdf..c4140e8 100644 --- a/camera/inc/CameraHal.h +++ b/camera/inc/CameraHal.h @@ -359,6 +359,7 @@ typedef struct _CameraBuffer { /* These are for buffers which include borders */ int offset; // where valid data starts int actual_size; // size of the entire buffer with borders + int privateData; } CameraBuffer; void * camera_buffer_get_omx_ptr (CameraBuffer *buffer); |