diff options
author | Jun Tian <jun.j.tian@intel.com> | 2013-04-22 13:08:21 +0800 |
---|---|---|
committer | Jun Tian <jun.j.tian@intel.com> | 2013-04-22 13:25:43 +0800 |
commit | 6e5b6ef15bb39cc0aa3d8fb7d4f75d44e5aadd92 (patch) | |
tree | 160dfb7ad0336370175220e53b7ebadd2e3c9303 /media | |
parent | 66abe3ae38665256c8fe97770f046bf9c68625aa (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>
Diffstat (limited to 'media')
-rw-r--r-- | media/libstagefright/codecs/m4v_h263/enc/SoftMPEG4Encoder.cpp | 2 |
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); } |