summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTyler Luu <tluu@ti.com>2012-06-25 12:19:57 -0500
committerJason Simmons <jsimmons@google.com>2012-11-07 14:36:33 -0800
commit87b9b837adecda80c89d6184cfaa085e8dbbc4d6 (patch)
tree14d3e75f92ab0ea2c8c6bb4303e463f461defc6e
parent60c916ae7e31dbff92c1c39385a87cf216fc34d9 (diff)
downloadomap4-aah-87b9b837adecda80c89d6184cfaa085e8dbbc4d6.tar.gz
CameraHal: Fix back to back normal capture
- With new logic in startImageCapture we have to set the buffer as IDLE before signaling end image capture. Change-Id: Ica4d1c222f9ce5f3bef8ada7c3cb8e6ca306d8d5 Signed-off-by: Tyler Luu <tluu@ti.com> Signed-off-by: Vladimir Petrov <vppetrov@mm-sol.com>
-rw-r--r--camera/OMXCameraAdapter/OMXCameraAdapter.cpp20
-rw-r--r--camera/OMXCameraAdapter/OMXCapture.cpp9
2 files changed, 16 insertions, 13 deletions
diff --git a/camera/OMXCameraAdapter/OMXCameraAdapter.cpp b/camera/OMXCameraAdapter/OMXCameraAdapter.cpp
index a763f66..2fbae19 100644
--- a/camera/OMXCameraAdapter/OMXCameraAdapter.cpp
+++ b/camera/OMXCameraAdapter/OMXCameraAdapter.cpp
@@ -464,17 +464,6 @@ status_t OMXCameraAdapter::fillThisBuffer(CameraBuffer * frameBuf, CameraFrame::
isCaptureFrame = (CameraFrame::IMAGE_FRAME == frameType) ||
(CameraFrame::RAW_FRAME == frameType);
- if ( isCaptureFrame && (NO_ERROR == ret) ) {
- // In CP_CAM mode, end image capture will be signalled when application starts preview
- if ((1 > mCapturedFrames) && !mBracketingEnabled && (mCapMode != CP_CAM)) {
- // Signal end of image capture
- if ( NULL != mEndImageCaptureCallback) {
- mEndImageCaptureCallback(mEndCaptureData);
- }
- return NO_ERROR;
- }
- }
-
if ( NO_ERROR == ret )
{
port = getPortParams(frameType);
@@ -490,7 +479,14 @@ status_t OMXCameraAdapter::fillThisBuffer(CameraBuffer * frameBuf, CameraFrame::
if ((CameraBuffer *) port->mBufferHeader[i]->pAppPrivate == frameBuf) {
if ( isCaptureFrame && !mBracketingEnabled ) {
android::AutoMutex lock(mBurstLock);
- if (mBurstFramesQueued >= mBurstFramesAccum) {
+ if ((1 > mCapturedFrames) && !mBracketingEnabled && (mCapMode != CP_CAM)) {
+ // Signal end of image capture
+ if ( NULL != mEndImageCaptureCallback) {
+ mEndImageCaptureCallback(mEndCaptureData);
+ }
+ port->mStatus[i] = OMXCameraPortParameters::IDLE;
+ return NO_ERROR;
+ } else if (mBurstFramesQueued >= mBurstFramesAccum) {
port->mStatus[i] = OMXCameraPortParameters::IDLE;
return NO_ERROR;
}
diff --git a/camera/OMXCameraAdapter/OMXCapture.cpp b/camera/OMXCameraAdapter/OMXCapture.cpp
index 0a62006..292eea5 100644
--- a/camera/OMXCameraAdapter/OMXCapture.cpp
+++ b/camera/OMXCameraAdapter/OMXCapture.cpp
@@ -1236,7 +1236,13 @@ status_t OMXCameraAdapter::startImageCapture(bool bracketing, CachedCaptureParam
}
}
}
-
+ CAMHAL_LOGD("mBurstFramesQueued = %d mBurstFramesAccum = %d index = %d "
+ "capData->mNumBufs = %d queued = %d capData->mMaxQueueable = %d",
+ mBurstFramesQueued,mBurstFramesAccum,index,
+ capData->mNumBufs,queued,capData->mMaxQueueable);
+ CAMHAL_LOGD("%d", (mBurstFramesQueued < mBurstFramesAccum)
+ && (index < capData->mNumBufs)
+ && (queued < capData->mMaxQueueable));
while ((mBurstFramesQueued < mBurstFramesAccum) &&
(index < capData->mNumBufs) &&
(queued < capData->mMaxQueueable)) {
@@ -1250,6 +1256,7 @@ status_t OMXCameraAdapter::startImageCapture(bool bracketing, CachedCaptureParam
mBurstFramesQueued++;
queued++;
} else if (OMXCameraPortParameters::FILL == capData->mStatus[index]) {
+ CAMHAL_LOGE("Not queueing index = %d", index);
queued++;
}
index++;