diff options
author | Zhao Liang <leo.zhao@intel.com> | 2012-09-24 14:56:31 +0800 |
---|---|---|
committer | Patrick Tjin <pattjin@google.com> | 2014-07-21 22:03:40 -0700 |
commit | 85d33bdb86649f8daa474948f3224cc0a6c160ce (patch) | |
tree | cbf6a92281602d8a38ab9c06e1e9f53f5ba238fc | |
parent | dca324a94d747c08021432fa26aea605372a8a88 (diff) | |
download | wrs_omxil_core-85d33bdb86649f8daa474948f3224cc0a6c160ce.tar.gz |
To support MRFLD highprofile encode
BZ: 76677
support MRFLD highprofile encode in omx-core
Change-Id: I3e03a6e161e6cf009c85d826614ad166bca875b9
Signed-off-by: Zhao Liang <leo.zhao@intel.com>
Reviewed-on: http://android.intel.com:8080/67475
Reviewed-by: Yuan, Shengquan <shengquan.yuan@intel.com>
Reviewed-by: Shi, PingX <pingx.shi@intel.com>
Tested-by: Shi, PingX <pingx.shi@intel.com>
Reviewed-by: cactus <cactus@intel.com>
Tested-by: cactus <cactus@intel.com>
-rw-r--r-- | base/inc/componentbase.h | 2 | ||||
-rw-r--r-- | base/src/componentbase.cpp | 10 |
2 files changed, 12 insertions, 0 deletions
diff --git a/base/inc/componentbase.h b/base/inc/componentbase.h index c568d86..945c91c 100644 --- a/base/inc/componentbase.h +++ b/base/inc/componentbase.h @@ -34,6 +34,7 @@ typedef enum buffer_retain_e { BUFFER_RETAIN_GETAGAIN, BUFFER_RETAIN_ACCUMULATE, BUFFER_RETAIN_OVERRIDDEN, + BUFFER_RETAIN_CACHE, } buffer_retain_t; /* ProcessCmdWork */ @@ -377,6 +378,7 @@ private: virtual OMX_ERRORTYPE ProcessorResume(void);/* Pause to Executing */ virtual OMX_ERRORTYPE ProcessorFlush(OMX_U32 port_index); /* Flush */ virtual OMX_ERRORTYPE ProcessorPreFillBuffer(OMX_BUFFERHEADERTYPE* buffer); + virtual OMX_ERRORTYPE ProcessorPreEmptyBuffer(OMX_BUFFERHEADERTYPE* buffer); /* invoked when buffer is to be freed */ virtual OMX_ERRORTYPE ProcessorPreFreeBuffer(OMX_U32 nPortIndex, OMX_BUFFERHEADERTYPE* pBuffer); diff --git a/base/src/componentbase.cpp b/base/src/componentbase.cpp index c37392e..81d7ae7 100644 --- a/base/src/componentbase.cpp +++ b/base/src/componentbase.cpp @@ -997,6 +997,8 @@ OMX_ERRORTYPE ComponentBase::CBaseEmptyThisBuffer( } } + ProcessorPreEmptyBuffer(pBuffer); + ret = port->PushThisBuffer(pBuffer); if (ret == OMX_ErrorNone) bufferwork->ScheduleWork(this); @@ -1795,6 +1797,9 @@ void ComponentBase::Work(void) } else if (retain[i] == BUFFER_RETAIN_OVERRIDDEN) { ports[i]->RetainAndReturnBuffer(buffers_org[i], *buffers[i]); + } + else if (retain[i] == BUFFER_RETAIN_CACHE) { + //nothing to do } else { ports[i]->ReturnThisBuffer(*buffers[i]); } @@ -2007,6 +2012,11 @@ OMX_ERRORTYPE ComponentBase::ProcessorPreFillBuffer(OMX_BUFFERHEADERTYPE* buffer return OMX_ErrorNone; } +OMX_ERRORTYPE ComponentBase::ProcessorPreEmptyBuffer(OMX_BUFFERHEADERTYPE* buffer) +{ + return OMX_ErrorNone; +} + OMX_ERRORTYPE ComponentBase::ProcessorProcess(OMX_BUFFERHEADERTYPE **pBuffers, buffer_retain_t *retain, OMX_U32 nr_buffers) |