summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornaveen kumar penda <a0393443@ti.com>2011-10-25 23:04:21 +0530
committerPradeep Venkatasubbarao <pradeepv@ti.com>2011-11-03 13:21:24 +0530
commit6db0bb65f51641f3821a3e5b192504cf88199abf (patch)
treed426c5eafa91bfe4d8c65a27861cc858ceba2d99
parent85859770aad0bdb4c02521d1ce4019dbaad580f9 (diff)
downloadhardware_ti_omap4-6db0bb65f51641f3821a3e5b192504cf88199abf.zip
hardware_ti_omap4-6db0bb65f51641f3821a3e5b192504cf88199abf.tar.gz
hardware_ti_omap4-6db0bb65f51641f3821a3e5b192504cf88199abf.tar.bz2
now DCC loading happens during loaded->Idle
Signed-off-by: naveen kumar penda <a0393443@ti.com> This patch provides a. DCC loading happens during loaded -> Idle state transition b. For Mem-Mem, intelligence added on Ducati side so that no Sensor Detect and DCC loading will be executed. Ducati side patch: https://android.dal.design.ti.com/#change,4029 OMX interface changes are taken care: http://review.omapzoom.org/#change,15842 Change-Id: Icfd874b86993315648227efb67da34dd121c2699
-rwxr-xr-xomx_proxy_component/omx_camera/src/omx_proxy_camera.c90
1 files changed, 55 insertions, 35 deletions
diff --git a/omx_proxy_component/omx_camera/src/omx_proxy_camera.c b/omx_proxy_component/omx_camera/src/omx_proxy_camera.c
index 19d9533..911b589 100755
--- a/omx_proxy_component/omx_camera/src/omx_proxy_camera.c
+++ b/omx_proxy_component/omx_camera/src/omx_proxy_camera.c
@@ -136,6 +136,8 @@ OMX_ERRORTYPE __PROXY_SetParameter(OMX_IN OMX_HANDLETYPE, OMX_INDEXTYPE,
OMX_PTR, OMX_PTR);
OMX_ERRORTYPE __PROXY_GetParameter(OMX_IN OMX_HANDLETYPE, OMX_INDEXTYPE,
OMX_PTR, OMX_PTR);
+OMX_ERRORTYPE PROXY_SendCommand(OMX_HANDLETYPE, OMX_COMMANDTYPE,
+ OMX_U32,OMX_PTR);
OMX_ERRORTYPE CameraMaptoTilerDuc(OMX_TI_CONFIG_SHAREDBUFFER *, OMX_PTR *);
//COREID TARGET_CORE_ID = CORE_APPM3;
@@ -166,6 +168,58 @@ static OMX_ERRORTYPE ComponentPrivateDeInit(OMX_IN OMX_HANDLETYPE hComponent)
return eError;
}
+static OMX_ERRORTYPE Camera_SendCommand(OMX_IN OMX_HANDLETYPE hComponent,
+ OMX_IN OMX_COMMANDTYPE eCmd,
+ OMX_IN OMX_U32 nParam, OMX_IN OMX_PTR pCmdData)
+
+{
+ OMX_ERRORTYPE eError = OMX_ErrorNone, eCompReturn;
+ RPC_OMX_ERRORTYPE eRPCError = RPC_OMX_ErrorNone;
+ PROXY_COMPONENT_PRIVATE *pCompPrv;
+ OMX_COMPONENTTYPE *hComp = (OMX_COMPONENTTYPE *) hComponent;
+ static OMX_BOOL dcc_loaded = OMX_FALSE;
+
+ OMX_ERRORTYPE dcc_eError = OMX_ErrorNone;
+ TIMM_OSAL_ERRORTYPE eOsalError = TIMM_OSAL_ERR_NONE;
+ OMX_U32 i;
+
+ pCompPrv = (PROXY_COMPONENT_PRIVATE *) hComp->pComponentPrivate;
+
+ if ((eCmd == OMX_CommandStateSet) &&
+ (nParam == (OMX_STATETYPE) OMX_StateIdle))
+ {
+ if (!dcc_loaded)
+ {
+ dcc_eError = DCC_Init(hComponent);
+ if (dcc_eError != OMX_ErrorNone)
+ {
+ DOMX_ERROR(" Error in DCC Init");
+ }
+ /* Configure Ducati to use DCC buffer from A9 side
+ *ONLY* if DCC_Init is successful. */
+ if (dcc_eError == OMX_ErrorNone)
+ {
+ dcc_eError = send_DCCBufPtr(hComponent);
+ if (dcc_eError != OMX_ErrorNone)
+ {
+ DOMX_ERROR(" Error in Sending DCC Buf ptr");
+ }
+ DCC_DeInit();
+ }
+ dcc_loaded = OMX_TRUE;
+ }
+ }
+
+ eError =
+ PROXY_SendCommand(hComponent,eCmd,nParam,pCmdData);
+
+EXIT:
+
+ DOMX_EXIT("eError: %d", eError);
+ return eError;
+
+}
+
/* ===========================================================================*/
/**
* @name CameraGetConfig()
@@ -335,42 +389,8 @@ OMX_ERRORTYPE OMX_ComponentInit(OMX_HANDLETYPE hComponent)
pHandle->ComponentDeInit = ComponentPrivateDeInit;
pHandle->GetConfig = CameraGetConfig;
pHandle->SetConfig = CameraSetConfig;
- char *val = getenv("SET_DCC");
- dcc_flag = val ? strtol(val, NULL, 0) : DEFAULT_DCC;
- DOMX_DEBUG(" DCC: 0 - disabled 1 - enabled : val: %d", dcc_flag);
-
- if (dcc_flag)
- {
- eOsalError =
- TIMM_OSAL_MutexObtain(cam_mutex, TIMM_OSAL_SUSPEND);
- PROXY_assert(eOsalError == TIMM_OSAL_ERR_NONE,
- OMX_ErrorInsufficientResources, "Mutex lock failed");
-
- if (numofInstance == 0)
- {
- dcc_eError = DCC_Init(hComponent);
- if (dcc_eError != OMX_ErrorNone)
- {
- DOMX_DEBUG(" Error in DCC Init");
- }
+ pHandle->SendCommand = Camera_SendCommand;
- /* Configure Ducati to use DCC buffer from A9 side
- *ONLY* if DCC_Init is successful. */
- if (dcc_eError == OMX_ErrorNone)
- {
- dcc_eError = send_DCCBufPtr(hComponent);
- if (dcc_eError != OMX_ErrorNone)
- {
- DOMX_DEBUG(" Error in Sending DCC Buf ptr");
- }
- DCC_DeInit();
- }
- }
- numofInstance = numofInstance + 1;
- eOsalError = TIMM_OSAL_MutexRelease(cam_mutex);
- PROXY_assert(eOsalError == TIMM_OSAL_ERR_NONE,
- OMX_ErrorInsufficientResources, "Mutex release failed");
- }
EXIT:
return eError;
}