diff options
| author | xli111 <xiaowei.a.li@intel.com> | 2011-05-18 12:00:00 +0800 |
|---|---|---|
| committer | Patrick Tjin <pattjin@google.com> | 2014-07-21 22:02:44 -0700 |
| commit | 400e7d9fa626119ba86f54a02431361fc57fb69a (patch) | |
| tree | 206417394782499923a22e26b7728eb2ce19e165 | |
| parent | f7643f957a994665b01e6533f7b9d9f38f610132 (diff) | |
| download | android_hardware_intel_common_omx-components-400e7d9fa626119ba86f54a02431361fc57fb69a.tar.gz android_hardware_intel_common_omx-components-400e7d9fa626119ba86f54a02431361fc57fb69a.tar.bz2 android_hardware_intel_common_omx-components-400e7d9fa626119ba86f54a02431361fc57fb69a.zip | |
omx-components: Fill in output buffer length for delayed output buffers.
BZ: 1960
video playback frame rate is low,the performance is evaluated by frame render rate which is calculated by dividing rendered video frame count by total playback time,
when playbacking 1080p 30fps clips, decoder frequently hands in empty buffer which will be dropped later by framework without rendering. In decoder,
some delayed output frame buffers' length are not filled and these buffers will be considered as empty frames and will be dropped. So calculated
performance is much lower than originally expected.
Fill in nFilledLen for delayed output buffer, and no empty buffer send to framework.
Change-Id: I2f5ceb7d00999508286c457423910670ca25a34e
Signed-off-by: xli111 <xiaowei.a.li@intel.com>
| -rw-r--r-- | psb-dec/psb.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/psb-dec/psb.cpp b/psb-dec/psb.cpp index 7390f58..1fb31ae 100644 --- a/psb-dec/psb.cpp +++ b/psb-dec/psb.cpp @@ -2191,8 +2191,6 @@ OMX_ERRORTYPE MrstPsbComponent::ProcessorProcess( VABuffer *vaBuf; int retry_decode_count; - LOGE("%s(): <**************> enter decode\n", __func__); - LOGV_IF(buffers[INPORT_INDEX]->nFlags & OMX_BUFFERFLAG_EOS, "%s(),%d: got OMX_BUFFERFLAG_EOS\n", __func__, __LINE__); @@ -2278,6 +2276,10 @@ OMX_ERRORTYPE MrstPsbComponent::ProcessorProcess( outflags |= OMX_BUFFERFLAG_ENDOFFRAME; retain[INPORT_INDEX] = BUFFER_RETAIN_GETAGAIN; + buffers[OUTPORT_INDEX]->nFilledLen = outfilledlen; + buffers[OUTPORT_INDEX]->nTimeStamp = outtimestamp; + buffers[OUTPORT_INDEX]->nFlags = outflags; + outframe_counter++; local_cleanup: |
