summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorMartin Storsjo <martin@martin.st>2012-08-29 15:22:18 +0300
committerMartin Storsjo <martin@martin.st>2012-08-29 15:40:14 +0300
commite61f13d2c710918f5267b3c835fcc20447b4e4d6 (patch)
treed824b4000e4e12bd596975441d7c74af60b3357e /media
parent4b60ac04a878eaf8344b56189509ccd6925855c2 (diff)
downloadframeworks_av-e61f13d2c710918f5267b3c835fcc20447b4e4d6.zip
frameworks_av-e61f13d2c710918f5267b3c835fcc20447b4e4d6.tar.gz
frameworks_av-e61f13d2c710918f5267b3c835fcc20447b4e4d6.tar.bz2
avcenc: Don't erase the InputBufferInfo before reading info from it
Previously, the timestamp and flags were read from the InputBufferInfo struct after it had been erased. This fixes cases where the output timestamp from the avc encoder could spuriously be garbage every now and then. Change-Id: I21acf23cfac93bcc201a603feace6499ec6d8e76
Diffstat (limited to 'media')
-rw-r--r--media/libstagefright/codecs/avc/enc/SoftAVCEncoder.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/media/libstagefright/codecs/avc/enc/SoftAVCEncoder.cpp b/media/libstagefright/codecs/avc/enc/SoftAVCEncoder.cpp
index 259562b..e46463c 100644
--- a/media/libstagefright/codecs/avc/enc/SoftAVCEncoder.cpp
+++ b/media/libstagefright/codecs/avc/enc/SoftAVCEncoder.cpp
@@ -846,12 +846,12 @@ void SoftAVCEncoder::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;
outInfo->mOwnedByUs = false;
notifyFillBufferDone(outHeader);
+ mInputBufferInfoVec.erase(mInputBufferInfoVec.begin());
}
}