summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorLajos Molnar <lajos@google.com>2013-10-29 15:41:50 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2013-10-29 15:41:50 -0700
commiteb76f318e9daf91dbf195bcb74852b3bd736a32a (patch)
tree1be0c9cf2c498e2f0ee9a04551d017473086369e /media
parente7329bd564e7c5f671b786dc7d0cc684d6d11fca (diff)
parent96aed4fb18e5303b039cc7e5dc252e0827491d09 (diff)
downloadframeworks_av-eb76f318e9daf91dbf195bcb74852b3bd736a32a.zip
frameworks_av-eb76f318e9daf91dbf195bcb74852b3bd736a32a.tar.gz
frameworks_av-eb76f318e9daf91dbf195bcb74852b3bd736a32a.tar.bz2
am 96aed4fb: Merge "avcenc: Prepend startcodes to output buffers"
* commit '96aed4fb18e5303b039cc7e5dc252e0827491d09': avcenc: Prepend startcodes to output buffers
Diffstat (limited to 'media')
-rw-r--r--media/libstagefright/codecs/avc/enc/SoftAVCEncoder.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/media/libstagefright/codecs/avc/enc/SoftAVCEncoder.cpp b/media/libstagefright/codecs/avc/enc/SoftAVCEncoder.cpp
index 1d66120..4a21a3e 100644
--- a/media/libstagefright/codecs/avc/enc/SoftAVCEncoder.cpp
+++ b/media/libstagefright/codecs/avc/enc/SoftAVCEncoder.cpp
@@ -871,7 +871,13 @@ void SoftAVCEncoder::onQueueFilled(OMX_U32 portIndex) {
CHECK(encoderStatus == AVCENC_SUCCESS || encoderStatus == AVCENC_NEW_IDR);
dataLength = outHeader->nAllocLen; // Reset the output buffer length
if (inHeader->nFilledLen > 0) {
+ if (outHeader->nAllocLen >= 4) {
+ memcpy(outPtr, "\x00\x00\x00\x01", 4);
+ outPtr += 4;
+ dataLength -= 4;
+ }
encoderStatus = PVAVCEncodeNAL(mHandle, outPtr, &dataLength, &type);
+ dataLength = outPtr + dataLength - outHeader->pBuffer;
if (encoderStatus == AVCENC_SUCCESS) {
CHECK(NULL == PVAVCEncGetOverrunBuffer(mHandle));
} else if (encoderStatus == AVCENC_PICTURE_READY) {