summaryrefslogtreecommitdiffstats
path: root/domx
diff options
context:
space:
mode:
authorAbhishek Ranka <asranka@ti.com>2011-11-18 02:56:21 -0800
committerPradeep Venkatasubbarao <pradeepv@ti.com>2011-11-18 17:36:28 +0530
commit8c9677bb1e2d68b775a07d6ca0ec4850934b5939 (patch)
tree1572153b83f30bc44399919d2706c0829d71a90a /domx
parent841639ed21957d67420d4bd9a24c62ee607d5610 (diff)
downloadhardware_ti_omap4-8c9677bb1e2d68b775a07d6ca0ec4850934b5939.zip
hardware_ti_omap4-8c9677bb1e2d68b775a07d6ca0ec4850934b5939.tar.gz
hardware_ti_omap4-8c9677bb1e2d68b775a07d6ca0ec4850934b5939.tar.bz2
DOMX: Extend support for mapping two buffers to remote core in SetParamter
This patch enables to map an array of 2 buffers instead of a single buffer in SetParameter() by indicating the number of "local" buffers that need to be mapped to remote core. These 2 buffers must be an array. Exiting camera proxy is updated to reflect this extension. Change-Id: Id939dc8a69e693d1ff7c627771960f1bb3ffc946 Signed-off-by: Abhishek Ranka <asranka@ti.com>
Diffstat (limited to 'domx')
-rw-r--r--domx/omx_proxy_common/src/omx_proxy_common.c6
-rwxr-xr-xdomx/omx_rpc/inc/omx_rpc_stub.h2
-rwxr-xr-xdomx/omx_rpc/src/omx_rpc_stub.c12
3 files changed, 13 insertions, 7 deletions
diff --git a/domx/omx_proxy_common/src/omx_proxy_common.c b/domx/omx_proxy_common/src/omx_proxy_common.c
index a38f1aa..65f5e7f 100644
--- a/domx/omx_proxy_common/src/omx_proxy_common.c
+++ b/domx/omx_proxy_common/src/omx_proxy_common.c
@@ -1335,7 +1335,7 @@ OMX_ERRORTYPE PROXY_FreeBuffer(OMX_IN OMX_HANDLETYPE hComponent,
/* ===========================================================================*/
OMX_ERRORTYPE __PROXY_SetParameter(OMX_IN OMX_HANDLETYPE hComponent,
OMX_IN OMX_INDEXTYPE nParamIndex, OMX_IN OMX_PTR pParamStruct,
- OMX_PTR pLocBufNeedMap)
+ OMX_PTR pLocBufNeedMap, OMX_U32 nNumOfLocalBuf)
{
OMX_ERRORTYPE eError = OMX_ErrorNone, eCompReturn = OMX_ErrorNone;
RPC_OMX_ERRORTYPE eRPCError = RPC_OMX_ErrorNone;
@@ -1391,7 +1391,7 @@ OMX_ERRORTYPE __PROXY_SetParameter(OMX_IN OMX_HANDLETYPE hComponent,
default:
eRPCError =
RPC_SetParameter(pCompPrv->hRemoteComp, nParamIndex, pParamStruct,
- pLocBufNeedMap, &eCompReturn);
+ pLocBufNeedMap, nNumOfLocalBuf, &eCompReturn);
}
PROXY_checkRpcError();
@@ -1414,7 +1414,7 @@ OMX_ERRORTYPE __PROXY_SetParameter(OMX_IN OMX_HANDLETYPE hComponent,
OMX_ERRORTYPE PROXY_SetParameter(OMX_IN OMX_HANDLETYPE hComponent,
OMX_IN OMX_INDEXTYPE nParamIndex, OMX_IN OMX_PTR pParamStruct)
{
- return __PROXY_SetParameter(hComponent, nParamIndex, pParamStruct, NULL);
+ return __PROXY_SetParameter(hComponent, nParamIndex, pParamStruct, NULL, 0);
}
diff --git a/domx/omx_rpc/inc/omx_rpc_stub.h b/domx/omx_rpc/inc/omx_rpc_stub.h
index 5e3837f..fd06506 100755
--- a/domx/omx_rpc/inc/omx_rpc_stub.h
+++ b/domx/omx_rpc/inc/omx_rpc_stub.h
@@ -76,7 +76,7 @@ extern "C"
RPC_OMX_ERRORTYPE RPC_SetParameter(OMX_HANDLETYPE hRPCCtx,
OMX_INDEXTYPE nParamIndex, OMX_PTR pCompParam,
- OMX_PTR pLocBufNeedMap, OMX_ERRORTYPE * nCmdStatus);
+ OMX_PTR pLocBufNeedMap, OMX_U32 nNumOfLocalBuf, OMX_ERRORTYPE * nCmdStatus);
RPC_OMX_ERRORTYPE RPC_GetParameter(OMX_HANDLETYPE hRPCCtx,
OMX_INDEXTYPE nParamIndex, OMX_PTR pCompParam,
diff --git a/domx/omx_rpc/src/omx_rpc_stub.c b/domx/omx_rpc/src/omx_rpc_stub.c
index d9c7baa..bd64a4a 100755
--- a/domx/omx_rpc/src/omx_rpc_stub.c
+++ b/domx/omx_rpc/src/omx_rpc_stub.c
@@ -302,7 +302,7 @@ RPC_OMX_ERRORTYPE RPC_FreeHandle(OMX_HANDLETYPE hRPCCtx,
/* ===========================================================================*/
RPC_OMX_ERRORTYPE RPC_SetParameter(OMX_HANDLETYPE hRPCCtx,
OMX_INDEXTYPE nParamIndex, OMX_PTR pCompParam,
- OMX_PTR pLocBufNeedMap, OMX_ERRORTYPE * eCompReturn)
+ OMX_PTR pLocBufNeedMap, OMX_U32 nNumOfLocalBuf, OMX_ERRORTYPE * eCompReturn)
{
RPC_OMX_ERRORTYPE eRPCError = RPC_OMX_ErrorNone;
@@ -322,8 +322,14 @@ RPC_OMX_ERRORTYPE RPC_SetParameter(OMX_HANDLETYPE hRPCCtx,
RPC_initPacket(pPacket, pOmxPacket, pData, nFxnIdx, nPacketSize);
if (pLocBufNeedMap != NULL && (pLocBufNeedMap - pCompParam) >= 0 ) {
- RPC_SETFIELDVALUE(pData, nPos, RPC_OMX_MAP_INFO_ONE_BUF,
- RPC_OMX_MAP_INFO_TYPE);
+ if (nNumOfLocalBuf == 1) {
+ RPC_SETFIELDVALUE(pData, nPos, RPC_OMX_MAP_INFO_ONE_BUF,
+ RPC_OMX_MAP_INFO_TYPE);
+ }
+ else if (nNumOfLocalBuf == 2) {
+ RPC_SETFIELDVALUE(pData, nPos, RPC_OMX_MAP_INFO_TWO_BUF,
+ RPC_OMX_MAP_INFO_TYPE);
+ }
nOffset = (pLocBufNeedMap - pCompParam) +
sizeof(RPC_OMX_MAP_INFO_TYPE) + sizeof(OMX_U32) +
sizeof(OMX_HANDLETYPE) + sizeof(OMX_INDEXTYPE);