aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbolunliu <bolun.liu@intel.com>2014-05-14 14:51:32 +0800
committerPatrick Tjin <pattjin@google.com>2014-07-21 22:02:59 -0700
commitd06de36eb079130c029eb590dd56d600266cb7f2 (patch)
treee32f8657f33c6e16be720a27831e21684cdfc76a
parent6b334fd4175f234d24739f75330c50549fb6bed0 (diff)
downloadandroid_hardware_intel_common_omx-components-d06de36eb079130c029eb590dd56d600266cb7f2.tar.gz
android_hardware_intel_common_omx-components-d06de36eb079130c029eb590dd56d600266cb7f2.tar.bz2
android_hardware_intel_common_omx-components-d06de36eb079130c029eb590dd56d600266cb7f2.zip
[PORT FROM MAIN]Set OMX_BUFFERFLAG_EOS on output buffe when EOS reached.
Set Sync encode mode for VP8 to avoid GTS failed cases. BZ: 194532 Set OMX_BUFFERFLAG_EOS on output buffe when EOS reached. Set Sync encode mode for VP8 to avoid GTS failed cases. Change-Id: Ib79eae7255ac6c0e27909733ec7ca8646ab0b962 Signed-off-by: bolunliu <bolun.liu@intel.com>
-rw-r--r--videocodec/OMXVideoEncoderVP8.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/videocodec/OMXVideoEncoderVP8.cpp b/videocodec/OMXVideoEncoderVP8.cpp
index 67bbfb5..e071ac0 100644
--- a/videocodec/OMXVideoEncoderVP8.cpp
+++ b/videocodec/OMXVideoEncoderVP8.cpp
@@ -83,8 +83,10 @@ OMX_ERRORTYPE OMXVideoEncoderVP8::ProcessorProcess(OMX_BUFFERHEADERTYPE **buffer
OMX_U32 outflags = 0;
OMX_ERRORTYPE oret = OMX_ErrorNone;
- LOGV_IF(buffers[INPORT_INDEX]->nFlags & OMX_BUFFERFLAG_EOS,
- "%s(),%d: got OMX_BUFFERFLAG_EOS\n", __func__, __LINE__);
+ if(buffers[INPORT_INDEX]->nFlags & OMX_BUFFERFLAG_EOS) {
+ LOGV("%s(),%d: got OMX_BUFFERFLAG_EOS\n", __func__, __LINE__);
+ outflags |= OMX_BUFFERFLAG_EOS;
+ }
if (!buffers[INPORT_INDEX]->nFilledLen) {
LOGV("%s(),%d: input buffer's nFilledLen is zero\n", __func__, __LINE__);
@@ -93,6 +95,8 @@ OMX_ERRORTYPE OMXVideoEncoderVP8::ProcessorProcess(OMX_BUFFERHEADERTYPE **buffer
inBuf.data = buffers[INPORT_INDEX]->pBuffer + buffers[INPORT_INDEX]->nOffset;
inBuf.size = buffers[INPORT_INDEX]->nFilledLen;
+ inBuf.type = FTYPE_UNKNOWN;
+ inBuf.timeStamp = buffers[INPORT_INDEX]->nTimeStamp;
outBuf.data =
buffers[OUTPORT_INDEX]->pBuffer + buffers[OUTPORT_INDEX]->nOffset;
@@ -123,7 +127,7 @@ OMX_ERRORTYPE OMXVideoEncoderVP8::ProcessorProcess(OMX_BUFFERHEADERTYPE **buffer
if (mSyncEncoding)
retains[INPORT_INDEX] = BUFFER_RETAIN_NOT_RETAIN;
else
- retains[INPORT_INDEX] = BUFFER_RETAIN_ACCUMULATE;
+ retains[INPORT_INDEX] = BUFFER_RETAIN_NOT_RETAIN;
goto out;
}
@@ -145,7 +149,7 @@ OMX_ERRORTYPE OMXVideoEncoderVP8::ProcessorProcess(OMX_BUFFERHEADERTYPE **buffer
if (mSyncEncoding)
retains[INPORT_INDEX] = BUFFER_RETAIN_NOT_RETAIN;
else
- retains[INPORT_INDEX] = BUFFER_RETAIN_ACCUMULATE;
+ retains[INPORT_INDEX] = BUFFER_RETAIN_NOT_RETAIN;
} else {
retains[INPORT_INDEX] = BUFFER_RETAIN_GETAGAIN; //get again