summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJun Tian <jun.j.tian@intel.com>2013-04-22 13:08:21 +0800
committerJun Tian <jun.j.tian@intel.com>2013-04-22 13:25:43 +0800
commit6e5b6ef15bb39cc0aa3d8fb7d4f75d44e5aadd92 (patch)
tree160dfb7ad0336370175220e53b7ebadd2e3c9303
parent66abe3ae38665256c8fe97770f046bf9c68625aa (diff)
Fixed the wrong timestamps issue about camera recording
On emulator, the camera video recording crashes randomly. It's caused by wrong timestamp when encoding the video frame. The element of the vector is erased before accessing it. Therefore, when reading the timestamp from the element, the memory of the element has been changed. Change-Id: I9750417fbb9dc4697ccae1e78e286b23925d3764 Signed-off-by: Panfeng Chang <panfengx.chang@intel.com> Signed-off-by: Jun Tian <jun.j.tian@intel.com>
-rw-r--r--media/libstagefright/codecs/m4v_h263/enc/SoftMPEG4Encoder.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/media/libstagefright/codecs/m4v_h263/enc/SoftMPEG4Encoder.cpp b/media/libstagefright/codecs/m4v_h263/enc/SoftMPEG4Encoder.cpp
index 8bc0275a..e02af90e 100644
--- a/media/libstagefright/codecs/m4v_h263/enc/SoftMPEG4Encoder.cpp
+++ b/media/libstagefright/codecs/m4v_h263/enc/SoftMPEG4Encoder.cpp
@@ -748,10 +748,10 @@ void SoftMPEG4Encoder::onQueueFilled(OMX_U32 portIndex) {
outQueue.erase(outQueue.begin());
CHECK(!mInputBufferInfoVec.empty());
InputBufferInfo *inputBufInfo = mInputBufferInfoVec.begin();
- mInputBufferInfoVec.erase(mInputBufferInfoVec.begin());
outHeader->nTimeStamp = inputBufInfo->mTimeUs;
outHeader->nFlags |= (inputBufInfo->mFlags | OMX_BUFFERFLAG_ENDOFFRAME);
outHeader->nFilledLen = dataLength;
+ mInputBufferInfoVec.erase(mInputBufferInfoVec.begin());
outInfo->mOwnedByUs = false;
notifyFillBufferDone(outHeader);
}