summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/codecs
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 /media/libstagefright/codecs
parent66abe3ae38665256c8fe97770f046bf9c68625aa (diff)
downloadframeworks_av-6e5b6ef15bb39cc0aa3d8fb7d4f75d44e5aadd92.zip
frameworks_av-6e5b6ef15bb39cc0aa3d8fb7d4f75d44e5aadd92.tar.gz
frameworks_av-6e5b6ef15bb39cc0aa3d8fb7d4f75d44e5aadd92.tar.bz2
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>
Diffstat (limited to 'media/libstagefright/codecs')
-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 8bc0275..e02af90 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);
}