aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZhao Liang <leo.zhao@intel.com>2012-09-24 14:56:31 +0800
committerPatrick Tjin <pattjin@google.com>2014-07-21 22:03:40 -0700
commit85d33bdb86649f8daa474948f3224cc0a6c160ce (patch)
treecbf6a92281602d8a38ab9c06e1e9f53f5ba238fc
parentdca324a94d747c08021432fa26aea605372a8a88 (diff)
downloadwrs_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.h2
-rw-r--r--base/src/componentbase.cpp10
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)