summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTyler Luu <tluu@ti.com>2011-10-14 15:54:23 +0530
committerIliyan Malchev <malchev@google.com>2011-10-19 13:02:48 -0700
commit4f29332694e8222b3f1fae39d40edcdec1dec1bd (patch)
tree027c6988004b1fe39671ba4c4df7bb8329a1e480
parent9743353b9dd1da8d1755218a7b961400ce825bd1 (diff)
downloadomap4xxx-omapzoom-4f29332694e8222b3f1fae39d40edcdec1dec1bd.tar.gz
CameraHAL: Recorded video has jerks with video snapshot
Avoid video frame drops during video snapshot. We were previously not sending the video frame to AppCallbackNotifier because the first frame after video snapshot was considered a snapshot (postview) frame. This patch sets the video frame mask regardless of preview or snapshot frame during recording b/5449158 Change-Id: Idaecbaa53686b81428a3d63ea95481f5b6eff23d Signed-off-by: Raji Reddy Kandi <rajireddy.k@samsung.com> Signed-off-by: Tyler Luu <tluu@ti.com> Signed-off-by: Iliyan Malchev <malchev@google.com>
-rw-r--r--camera/BaseCameraAdapter.cpp12
-rwxr-xr-xcamera/OMXCameraAdapter/OMXCameraAdapter.cpp15
2 files changed, 12 insertions, 15 deletions
diff --git a/camera/BaseCameraAdapter.cpp b/camera/BaseCameraAdapter.cpp
index 28dc5e55..789682ea 100644
--- a/camera/BaseCameraAdapter.cpp
+++ b/camera/BaseCameraAdapter.cpp
@@ -287,14 +287,14 @@ void BaseCameraAdapter::returnFrame(void* frameBuf, CameraFrame::FrameType frame
setFrameRefCount(frameBuf, frameType, refCount);
- if ( ( mRecording ) && ( CameraFrame::VIDEO_FRAME_SYNC == frameType ) )
- {
+ if ( mRecording && (CameraFrame::VIDEO_FRAME_SYNC == frameType) ) {
refCount += getFrameRefCount(frameBuf, CameraFrame::PREVIEW_FRAME_SYNC);
- }
- else if ( ( mRecording ) && ( CameraFrame::PREVIEW_FRAME_SYNC == frameType ) )
- {
+ } else if ( mRecording && (CameraFrame::PREVIEW_FRAME_SYNC == frameType) ) {
refCount += getFrameRefCount(frameBuf, CameraFrame::VIDEO_FRAME_SYNC);
- }
+ } else if ( mRecording && (CameraFrame::SNAPSHOT_FRAME == frameType) ) {
+ refCount += getFrameRefCount(frameBuf, CameraFrame::VIDEO_FRAME_SYNC);
+ }
+
}
else
diff --git a/camera/OMXCameraAdapter/OMXCameraAdapter.cpp b/camera/OMXCameraAdapter/OMXCameraAdapter.cpp
index 9ee33be2..ee13a30e 100755
--- a/camera/OMXCameraAdapter/OMXCameraAdapter.cpp
+++ b/camera/OMXCameraAdapter/OMXCameraAdapter.cpp
@@ -2835,10 +2835,12 @@ OMX_ERRORTYPE OMXCameraAdapter::OMXCameraAdapterFillBufferDone(OMX_IN OMX_HANDLE
{
typeOfFrame = CameraFrame::PREVIEW_FRAME_SYNC;
mask = (unsigned int)CameraFrame::PREVIEW_FRAME_SYNC;
- if (mRecording)
- {
- mask |= (unsigned int)CameraFrame::VIDEO_FRAME_SYNC;
- }
+ }
+
+ if (mRecording)
+ {
+ mask |= (unsigned int)CameraFrame::VIDEO_FRAME_SYNC;
+ mFramesWithEncoder++;
}
//LOGV("FBD pBuffer = 0x%x", pBuffHeader->pBuffer);
@@ -2854,11 +2856,6 @@ OMX_ERRORTYPE OMXCameraAdapter::OMXCameraAdapterFillBufferDone(OMX_IN OMX_HANDLE
}
}
- if ( mRecording )
- {
- mFramesWithEncoder++;
- }
-
stat = sendCallBacks(cameraFrame, pBuffHeader, mask, pPortParam);
mFramesWithDisplay++;