diff options
author | Abhishek Ranka <asranka@ti.com> | 2011-11-18 02:56:21 -0800 |
---|---|---|
committer | Pradeep Venkatasubbarao <pradeepv@ti.com> | 2011-11-18 17:36:28 +0530 |
commit | 8c9677bb1e2d68b775a07d6ca0ec4850934b5939 (patch) | |
tree | 1572153b83f30bc44399919d2706c0829d71a90a /domx | |
parent | 841639ed21957d67420d4bd9a24c62ee607d5610 (diff) | |
download | hardware_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.c | 6 | ||||
-rwxr-xr-x | domx/omx_rpc/inc/omx_rpc_stub.h | 2 | ||||
-rwxr-xr-x | domx/omx_rpc/src/omx_rpc_stub.c | 12 |
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); |