diff options
author | Tyler Luu <tluu@ti.com> | 2011-10-14 15:54:23 +0530 |
---|---|---|
committer | Iliyan Malchev <malchev@google.com> | 2011-10-19 13:02:48 -0700 |
commit | 4f29332694e8222b3f1fae39d40edcdec1dec1bd (patch) | |
tree | 027c6988004b1fe39671ba4c4df7bb8329a1e480 | |
parent | 9743353b9dd1da8d1755218a7b961400ce825bd1 (diff) | |
download | omap4xxx-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.cpp | 12 | ||||
-rwxr-xr-x | camera/OMXCameraAdapter/OMXCameraAdapter.cpp | 15 |
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++; |