diff options
author | bolunliu <bolun.liu@intel.com> | 2014-05-14 14:51:32 +0800 |
---|---|---|
committer | Patrick Tjin <pattjin@google.com> | 2014-07-21 22:02:59 -0700 |
commit | d06de36eb079130c029eb590dd56d600266cb7f2 (patch) | |
tree | e32f8657f33c6e16be720a27831e21684cdfc76a | |
parent | 6b334fd4175f234d24739f75330c50549fb6bed0 (diff) | |
download | android_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.cpp | 12 |
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 |