aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorxli111 <xiaowei.a.li@intel.com>2011-05-18 12:00:00 +0800
committerPatrick Tjin <pattjin@google.com>2014-07-21 22:02:44 -0700
commit400e7d9fa626119ba86f54a02431361fc57fb69a (patch)
tree206417394782499923a22e26b7728eb2ce19e165
parentf7643f957a994665b01e6533f7b9d9f38f610132 (diff)
downloadandroid_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.cpp6
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: