Merge "Add libhardware_headers to various modules" into oc-dr1-dev
diff --git a/media/libstagefright/codecs/on2/enc/SoftVPXEncoder.cpp b/media/libstagefright/codecs/on2/enc/SoftVPXEncoder.cpp
index 8d69bd5..a5666da 100644
--- a/media/libstagefright/codecs/on2/enc/SoftVPXEncoder.cpp
+++ b/media/libstagefright/codecs/on2/enc/SoftVPXEncoder.cpp
@@ -137,6 +137,8 @@
mCodecConfiguration->rc_end_usage = mBitrateControlMode;
// Disable frame drop - not allowed in MediaCodec now.
mCodecConfiguration->rc_dropframe_thresh = 0;
+ // Disable lagged encoding.
+ mCodecConfiguration->g_lag_in_frames = 0;
if (mBitrateControlMode == VPX_CBR) {
// Disable spatial resizing.
mCodecConfiguration->rc_resize_allowed = 0;
@@ -157,8 +159,6 @@
mCodecConfiguration->rc_buf_sz = 1000;
// Enable error resilience - needed for packet loss.
mCodecConfiguration->g_error_resilient = 1;
- // Disable lagged encoding.
- mCodecConfiguration->g_lag_in_frames = 0;
// Maximum key frame interval - for CBR boost to 3000
mCodecConfiguration->kf_max_dist = 3000;
// Encoder determines optimal key frame placement automatically.
diff --git a/media/libstagefright/codecs/opus/dec/SoftOpus.cpp b/media/libstagefright/codecs/opus/dec/SoftOpus.cpp
index e8e88ef..2ac6ce0 100644
--- a/media/libstagefright/codecs/opus/dec/SoftOpus.cpp
+++ b/media/libstagefright/codecs/opus/dec/SoftOpus.cpp
@@ -350,11 +350,6 @@
const uint8_t *data = header->pBuffer + header->nOffset;
size_t size = header->nFilledLen;
- if ((header->nFlags & OMX_BUFFERFLAG_EOS) && size == 0) {
- header->nFlags &= ~OMX_BUFFERFLAG_CODECCONFIG;
- goto L_eos;
- }
-
if (mInputBufferCount == 0) {
CHECK(mHeader == NULL);
mHeader = new OpusHeader();
@@ -413,11 +408,6 @@
mOutputPortSettingsChange = AWAITING_DISABLED;
}
- if (header->nFlags & OMX_BUFFERFLAG_EOS) {
- header->nFilledLen = 0;
- header->nFlags &= ~OMX_BUFFERFLAG_CODECCONFIG;
- goto L_eos;
- }
inQueue.erase(inQueue.begin());
info->mOwnedByUs = false;
notifyEmptyBufferDone(header);
@@ -425,7 +415,6 @@
return;
}
-L_eos:
while (!inQueue.empty() && !outQueue.empty()) {
BufferInfo *inInfo = *inQueue.begin();
OMX_BUFFERHEADERTYPE *inHeader = inInfo->mHeader;
diff --git a/media/libstagefright/codecs/vorbis/dec/SoftVorbis.cpp b/media/libstagefright/codecs/vorbis/dec/SoftVorbis.cpp
index 9175714..14dd250 100644
--- a/media/libstagefright/codecs/vorbis/dec/SoftVorbis.cpp
+++ b/media/libstagefright/codecs/vorbis/dec/SoftVorbis.cpp
@@ -276,11 +276,6 @@
const uint8_t *data = header->pBuffer + header->nOffset;
size_t size = header->nFilledLen;
-
- if ((header->nFlags & OMX_BUFFERFLAG_EOS) && size == 0) {
- goto L_eos;
- }
-
if (size < 7) {
ALOGE("Too small input buffer: %zu bytes", size);
android_errorWriteLog(0x534e4554, "27833616");
@@ -328,11 +323,6 @@
}
}
- if (header->nFlags & OMX_BUFFERFLAG_EOS) {
- header->nFilledLen = 0;
- goto L_eos;
- }
-
inQueue.erase(inQueue.begin());
info->mOwnedByUs = false;
notifyEmptyBufferDone(header);
@@ -342,7 +332,6 @@
return;
}
-L_eos:
while ((!inQueue.empty() || (mSawInputEos && !mSignalledOutputEos)) && !outQueue.empty()) {
BufferInfo *inInfo = NULL;
OMX_BUFFERHEADERTYPE *inHeader = NULL;
diff --git a/media/libstagefright/omx/GraphicBufferSource.cpp b/media/libstagefright/omx/GraphicBufferSource.cpp
index 8d272dd..2f6fec8 100644
--- a/media/libstagefright/omx/GraphicBufferSource.cpp
+++ b/media/libstagefright/omx/GraphicBufferSource.cpp
@@ -829,6 +829,10 @@
ssize_t cbix = mSubmittedCodecBuffers.add(codecBufferId, nullptr);
ALOGV("submitEndOfInputStream_l: buffer submitted, bufferId=%u@%zd", codecBufferId, cbix);
mEndOfStreamSent = true;
+
+ // no need to hold onto any buffers for frame repeating
+ ++mRepeatLastFrameGeneration;
+ mLatestBuffer.mBuffer.reset();
}
}