diff options
| author | bolunliu <bolun.liu@intel.com> | 2014-04-22 16:03:56 +0800 |
|---|---|---|
| committer | Patrick Tjin <pattjin@google.com> | 2014-07-21 22:02:59 -0700 |
| commit | dc6587395a102b4d59af5010adf5a6507b1f6556 (patch) | |
| tree | 08c7843d90dd30b94affe6fe11480be2c2761771 /videocodec/OMXVideoEncoderVP8.cpp | |
| parent | c7c62e049c2339d74164c393ee637890cf00454b (diff) | |
| download | android_hardware_intel_common_omx-components-dc6587395a102b4d59af5010adf5a6507b1f6556.tar.gz android_hardware_intel_common_omx-components-dc6587395a102b4d59af5010adf5a6507b1f6556.tar.bz2 android_hardware_intel_common_omx-components-dc6587395a102b4d59af5010adf5a6507b1f6556.zip | |
Add NO_Request_Data error processing for VP8 encode.
BZ: 189358
FW may output empty buffer when bitrate is low.
OMX Component will process this kind of error.
Just hold output buffer and get again not return
error value to application.
Change-Id: Ib3f4e06b034fb3dabe5288f747f862ec99b22e52
Signed-off-by: bolunliu <bolun.liu@intel.com>
Diffstat (limited to 'videocodec/OMXVideoEncoderVP8.cpp')
| -rw-r--r-- | videocodec/OMXVideoEncoderVP8.cpp | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/videocodec/OMXVideoEncoderVP8.cpp b/videocodec/OMXVideoEncoderVP8.cpp index 2866ba1..d952913 100644 --- a/videocodec/OMXVideoEncoderVP8.cpp +++ b/videocodec/OMXVideoEncoderVP8.cpp @@ -115,8 +115,18 @@ OMX_ERRORTYPE OMXVideoEncoderVP8::ProcessorProcess(OMX_BUFFERHEADERTYPE **buffer { outBuf.format = OUTPUT_EVERYTHING; - mVideoEncoder->getOutput(&outBuf); - CHECK_ENCODE_STATUS("getOutput"); + ret = mVideoEncoder->getOutput(&outBuf); + //CHECK_ENCODE_STATUS("getOutput"); + if(ret == ENCODE_NO_REQUEST_DATA) { + mFrameRetrieved = OMX_TRUE; + retains[OUTPORT_INDEX] = BUFFER_RETAIN_GETAGAIN; + if (mSyncEncoding) + retains[INPORT_INDEX] = BUFFER_RETAIN_NOT_RETAIN; + else + retains[INPORT_INDEX] = BUFFER_RETAIN_ACCUMULATE; + + goto out; + } LOGV("VP8 encode output data size = %d", outBuf.dataSize); |
