khronosfws/openmax_al/src/mediarecorder/xamediarecorder.c
changeset 31 8dfd592727cb
parent 16 43d09473c595
child 42 1fa3fb47b1e3
--- a/khronosfws/openmax_al/src/mediarecorder/xamediarecorder.c	Thu May 27 13:20:50 2010 +0300
+++ b/khronosfws/openmax_al/src/mediarecorder/xamediarecorder.c	Wed Jun 23 18:47:10 2010 +0300
@@ -1,19 +1,19 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: 
-*
-*/
+ * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: MediaRecoder Object Impl
+ *
+ */
 
 #include <stdio.h>
 #include <stdlib.h>
@@ -40,25 +40,25 @@
 #include "xamediarecorderadaptctxmmf.h"
 #include "xamediarecorderadaptctx.h"
 /* Static mapping of enumeration XAMediaRecorderInterfaces to interface iids */
-static const XAInterfaceID* xaMediaRecorderItfIIDs[MR_ITFCOUNT]=
-{
-    &XA_IID_OBJECT,
-    &XA_IID_AUDIOENCODER,
-    &XA_IID_CONFIGEXTENSION,
-    &XA_IID_DYNAMICINTERFACEMANAGEMENT,
-    &XA_IID_EQUALIZER,
-    &XA_IID_IMAGECONTROLS,
-    &XA_IID_IMAGEEFFECTS,
-    &XA_IID_IMAGEENCODER,
-    &XA_IID_METADATAINSERTION,
-    &XA_IID_RECORD,
-    &XA_IID_SNAPSHOT,
-    &XA_IID_VIDEOENCODER,
-    &XA_IID_VIDEOPOSTPROCESSING,
-    &XA_IID_VOLUME,
-    &XA_IID_METADATAEXTRACTION,
-    &XA_IID_METADATATRAVERSAL
-};
+static const XAInterfaceID* xaMediaRecorderItfIIDs[MR_ITFCOUNT] =
+    {
+            &XA_IID_OBJECT,
+            &XA_IID_AUDIOENCODER,
+            &XA_IID_CONFIGEXTENSION,
+            &XA_IID_DYNAMICINTERFACEMANAGEMENT,
+            &XA_IID_EQUALIZER,
+            &XA_IID_IMAGECONTROLS,
+            &XA_IID_IMAGEEFFECTS,
+            &XA_IID_IMAGEENCODER,
+            &XA_IID_METADATAINSERTION,
+            &XA_IID_RECORD,
+            &XA_IID_SNAPSHOT,
+            &XA_IID_VIDEOENCODER,
+            &XA_IID_VIDEOPOSTPROCESSING,
+            &XA_IID_VOLUME,
+            &XA_IID_METADATAEXTRACTION,
+            &XA_IID_METADATATRAVERSAL
+    };
 
 /* Global methods */
 
@@ -66,230 +66,222 @@
  * Create object
  */
 XAresult XAMediaRecorderImpl_CreateMediaRecorder(FrameworkMap* mapper,
-                                                 XACapabilities* capabilities,
-                                                 XAObjectItf* pRecorder,
-                                                 XADataSource* pAudioSrc,
-                                                 XADataSource* pImageVideoSrc,
-                                                 XADataSink* pDataSnk,
-                                                 XAuint32 numInterfaces,
-                                                 const XAInterfaceID *pInterfaceIds,
-                                                 const XAboolean *pInterfaceRequired)
-{
+        XACapabilities* capabilities, XAObjectItf* pRecorder,
+        XADataSource* pAudioSrc, XADataSource* pImageVideoSrc,
+        XADataSink* pDataSnk, XAuint32 numInterfaces,
+        const XAInterfaceID *pInterfaceIds,
+        const XAboolean *pInterfaceRequired)
+    {
     XAMediaRecorderImpl* pImpl = NULL;
     XAObjectItfImpl* pBaseObj = NULL;
     FWMgrFwType fwType;
     XAuint8 itfIdx;
     XAMediaType mediaType = XA_MEDIATYPE_UNKNOWN;
-    XAresult ret=XA_RESULT_SUCCESS;
+    XAresult ret = XA_RESULT_SUCCESS;
     const char *uri = NULL;
-    
+
     DEBUG_API("->XAMediaRecorderImpl_CreateMediaRecorder");
     XA_IMPL_THREAD_SAFETY_ENTRY( XATSMediaRecorder );
 
-    if( !pRecorder )
-    {
+    if (!pRecorder)
+        {
         /* invalid parameter */
         XA_IMPL_THREAD_SAFETY_EXIT( XATSMediaRecorder );
         DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
         DEBUG_API("<-XAMediaRecorderImpl_CreateMediaRecorder");
         return XA_RESULT_PARAMETER_INVALID;
-    }
+        }
 
     /* check sink&source parameters */
-    ret = XACommon_ValidateDataLocator(3, pAudioSrc, pImageVideoSrc, pDataSnk);
-    if(ret!=XA_RESULT_SUCCESS)
-    {
+    ret
+            = XACommon_ValidateDataLocator(3, pAudioSrc, pImageVideoSrc,
+                    pDataSnk);
+    if (ret != XA_RESULT_SUCCESS)
+        {
         XA_IMPL_THREAD_SAFETY_EXIT( XATSMediaRecorder );
         DEBUG_API("<-XAMediaRecorderImpl_CreateMediaRecorder");
         return ret;
-    }
+        }
 
     /* instantiate object implementation */
-    pImpl = (XAMediaRecorderImpl*)calloc(1,sizeof(XAMediaRecorderImpl));
-    if( !pImpl )
-    {
+    pImpl = (XAMediaRecorderImpl*) calloc(1, sizeof(XAMediaRecorderImpl));
+    if (!pImpl)
+        {
 
         /* memory allocation failed */
         XA_IMPL_THREAD_SAFETY_EXIT( XATSMediaRecorder );
         DEBUG_ERR("XA_RESULT_MEMORY_FAILURE");
         DEBUG_API("<-XAMediaRecorderImpl_CreateMediaRecorder");
         return XA_RESULT_MEMORY_FAILURE;
-    }
+        }
     pBaseObj = &pImpl->baseObj;
 
     /* Initialize base object default implementation */
-    XAObjectItfImpl_Init(pBaseObj,
-                         MR_ITFCOUNT,
-                         xaMediaRecorderItfIIDs,
-                         XAMediaRecorderImpl_DoRealize,
-                         XAMediaRecorderImpl_DoResume,
-                         XAMediaRecorderImpl_FreeResources);
+    XAObjectItfImpl_Init(pBaseObj, MR_ITFCOUNT, xaMediaRecorderItfIIDs,
+            XAMediaRecorderImpl_DoRealize, XAMediaRecorderImpl_DoResume,
+            XAMediaRecorderImpl_FreeResources);
 
     /* Mark interfaces that need to be exposed */
     /* Implicit and mandated interfaces */
     pBaseObj->interfaceMap[MR_RECORDITF].required = XA_BOOLEAN_TRUE;
-    if(pAudioSrc && mediaType!=XA_MEDIATYPE_IMAGE)
-    {
+    if (pAudioSrc && mediaType != XA_MEDIATYPE_IMAGE)
+        {
         pBaseObj->interfaceMap[MR_AUDIOENCODERITF].required = XA_BOOLEAN_TRUE;
-    }
-    if(pImageVideoSrc && mediaType!=XA_MEDIATYPE_AUDIO)
-    {
+        }
+    if (pImageVideoSrc && mediaType != XA_MEDIATYPE_AUDIO)
+        {
         pBaseObj->interfaceMap[MR_VIDEOENCODER].required = XA_BOOLEAN_TRUE;
         pBaseObj->interfaceMap[MR_IMAGEENCODERITF].required = XA_BOOLEAN_TRUE;
         pBaseObj->interfaceMap[MR_SNAPSHOTITF].required = XA_BOOLEAN_TRUE;
-    }
+        }
     pBaseObj->interfaceMap[MR_DIMITF].required = XA_BOOLEAN_TRUE;
 
     /* Explicit interfaces */
-    if((numInterfaces != 0) && pInterfaceIds && pInterfaceRequired)
-    {
-        /* check only sink media type, do not care about return value (availability) */
-        XACommon_CheckDataSource((XADataSource*)pDataSnk,&mediaType);
-        /* Check required interfaces */
-        for( itfIdx = 0; itfIdx < numInterfaces; itfIdx++)
+    if ((numInterfaces != 0) && pInterfaceIds && pInterfaceRequired)
         {
+        /* check only sink media type, do not care about return value (availability) */
+        XACommon_CheckDataSource((XADataSource*) pDataSnk, &mediaType);
+        /* Check required interfaces */
+        for (itfIdx = 0; itfIdx < numInterfaces; itfIdx++)
+            {
             /* If mapEntry is null then required interface is not supported.*/
-            XAObjItfMapEntry *entry =
-                XAObjectItfImpl_GetItfEntry((XAObjectItf)&(pBaseObj), pInterfaceIds[itfIdx]);
-            if( !entry  )
-            {
-                if( pInterfaceRequired[itfIdx] )
+            XAObjItfMapEntry *entry = XAObjectItfImpl_GetItfEntry(
+                    (XAObjectItf) &(pBaseObj), pInterfaceIds[itfIdx]);
+            if (!entry)
                 {
+                if (pInterfaceRequired[itfIdx])
+                    {
                     /* required interface cannot be accommodated - fail creation */
                     DEBUG_ERR("Required interface not found - abort creation!");
                     ret = XA_RESULT_FEATURE_UNSUPPORTED;
                     break;
-                }
+                    }
                 else
-                {
+                    {
                     DEBUG_INFO("Requested (not required) interface not found - continue creation");
+                    }
                 }
-            }
             else
-            {   /* weed out unsupported content-aware itf's */
-                if( ( (mediaType==XA_MEDIATYPE_IMAGE || !pAudioSrc) &&
-                             (entry->mapIdx==MR_EQUALIZERITF ||
-                              entry->mapIdx==MR_VOLUMEITF ||
-                              entry->mapIdx==MR_AUDIOENCODERITF))
-                        ||
-                    ( (mediaType==XA_MEDIATYPE_AUDIO || !pImageVideoSrc) &&
-                             (entry->mapIdx==MR_IMAGECONTROLSITF ||
-                              entry->mapIdx==MR_IMAGEEFFECTSITF ||
-                              entry->mapIdx==MR_VIDEOPOSTPROCESSINGITF ||
-                              entry->mapIdx==MR_VIDEOENCODER ||
-                              entry->mapIdx==MR_IMAGEENCODERITF ||
-                              entry->mapIdx==MR_SNAPSHOTITF)) )
-                {
+                { /* weed out unsupported content-aware itf's */
+                if (((mediaType == XA_MEDIATYPE_IMAGE || !pAudioSrc)
+                        && (entry->mapIdx == MR_EQUALIZERITF || entry->mapIdx
+                                == MR_VOLUMEITF || entry->mapIdx
+                                == MR_AUDIOENCODERITF)) || ((mediaType
+                        == XA_MEDIATYPE_AUDIO || !pImageVideoSrc)
+                        && (entry->mapIdx == MR_IMAGECONTROLSITF
+                                || entry->mapIdx == MR_IMAGEEFFECTSITF
+                                || entry->mapIdx == MR_VIDEOPOSTPROCESSINGITF
+                                || entry->mapIdx == MR_VIDEOENCODER
+                                || entry->mapIdx == MR_IMAGEENCODERITF
+                                || entry->mapIdx == MR_SNAPSHOTITF)))
+                    {
                     entry->required = XA_BOOLEAN_FALSE;
-                    if( pInterfaceRequired[itfIdx] )
-                    {
+                    if (pInterfaceRequired[itfIdx])
+                        {
                         DEBUG_ERR("Required interface not supported for given media - abort creation!");
                         ret = XA_RESULT_FEATURE_UNSUPPORTED;
                         break;
+                        }
                     }
-                }
                 else
-                {
+                    {
                     entry->required = XA_BOOLEAN_TRUE;
-                }
+                    }
 
-                if(entry->mapIdx==MR_SNAPSHOTITF)
-                {
+                if (entry->mapIdx == MR_SNAPSHOTITF)
+                    {
                     DEBUG_ERR("SnapshotItf requested - support still mode");
                     pImpl->recModes |= XA_RECMODE_STILL;
-                }
-                if(entry->mapIdx==MR_RECORDITF)
-                {
+                    }
+                if (entry->mapIdx == MR_RECORDITF)
+                    {
                     DEBUG_ERR("RecordItf requested - support stream mode");
                     pImpl->recModes |= XA_RECMODE_STREAM;
+                    }
                 }
             }
         }
-    }
-    if( pImpl->recModes ==0 )
-    {
+    if (pImpl->recModes == 0)
+        {
         DEBUG_ERR("Warning!!! No recording interfaces requested - unable to record!!");
-    }
+        }
     /*check sink and src parameters*/
-    if(ret==XA_RESULT_SUCCESS)
-    {
-        ret = XACommon_ValidateDataLocator(3, pDataSnk, pAudioSrc, pImageVideoSrc);
+    if (ret == XA_RESULT_SUCCESS)
+        {
+        ret = XACommon_ValidateDataLocator(3, pDataSnk, pAudioSrc,
+                pImageVideoSrc);
         /*datasink ignored if only snapshotitf is used*/
-        if(!pDataSnk && (pImpl->recModes & XA_RECMODE_STREAM))
-        {
+        if (!pDataSnk && (pImpl->recModes & XA_RECMODE_STREAM))
+            {
             DEBUG_ERR("No datasink to record to!");
             ret = XA_RESULT_PARAMETER_INVALID;
-        }
-        if(!pAudioSrc && !pImageVideoSrc)
-        {
+            }
+        if (!pAudioSrc && !pImageVideoSrc)
+            {
             DEBUG_ERR("No data sources set!");
             ret = XA_RESULT_PARAMETER_INVALID;
+            }
         }
-    }
 
-    if(ret!=XA_RESULT_SUCCESS)
-    {   /* creation fails */
-        XAObjectItfImpl_Destroy((XAObjectItf)&(pBaseObj));
+    if (ret != XA_RESULT_SUCCESS)
+        { /* creation fails */
+        XAObjectItfImpl_Destroy((XAObjectItf) &(pBaseObj));
         XA_IMPL_THREAD_SAFETY_EXIT( XATSMediaRecorder );
         DEBUG_API("<-XAMediaRecorderImpl_CreateMediaRecorder");
         return ret;
-    }
+        }
 
     /* Mark interfaces that can be handled dynamically */
     /* Mandated dynamic itfs */
-    pBaseObj->interfaceMap[MR_METADATAINSERTIONITF].isDynamic = XA_BOOLEAN_TRUE;
+    pBaseObj->interfaceMap[MR_METADATAINSERTIONITF].isDynamic
+            = XA_BOOLEAN_TRUE;
     pBaseObj->interfaceMap[MR_EQUALIZERITF].isDynamic = XA_BOOLEAN_TRUE;
     pBaseObj->interfaceMap[MR_IMAGEEFFECTSITF].isDynamic = XA_BOOLEAN_TRUE;
 
-
     /* Initialize XAMediaRecorderImpl variables */
     pImpl->audioSrc = pAudioSrc;
     pImpl->dataSnk = pDataSnk;
     pImpl->imageVideoSrc = pImageVideoSrc;
     /* Determine framework type that can handle recording */
-    fwType = (FWMgrFwType)FWMgrMOUnknown;
+    fwType = (FWMgrFwType) FWMgrMOUnknown;
     /**/
     if (pDataSnk->pLocator)
-    {
-        XADataLocator_URI* dataLoc = (XADataLocator_URI*)pDataSnk->pLocator;
+        {
+        XADataLocator_URI* dataLoc = (XADataLocator_URI*) pDataSnk->pLocator;
         if (dataLoc->locatorType == XA_DATALOCATOR_URI)
             {
-            uri = (char*)dataLoc->URI;
+            uri = (char*) dataLoc->URI;
             }
-    }
-    fwType = XAFrameworkMgr_GetFramework(
-                        mapper,
-                        uri,
-                        FWMgrMORecorder);
+        }
+    fwType = XAFrameworkMgr_GetFramework(mapper, uri, FWMgrMORecorder);
 
     if (fwType == FWMgrMOUnknown)
         {
         ret = XA_RESULT_CONTENT_UNSUPPORTED;
-        XAObjectItfImpl_Destroy((XAObjectItf)&(pBaseObj));
+        XAObjectItfImpl_Destroy((XAObjectItf) &(pBaseObj));
         XA_IMPL_THREAD_SAFETY_EXIT( XATSMediaRecorder );
         DEBUG_API("<-XAMediaRecorderImpl_CreateMediaRecorder");
         return ret;
         }
-    
+
     /* Set ObjectItf to point to newly created object */
-    *pRecorder = (XAObjectItf)&(pBaseObj->self);    
-    
-    if(fwType == FWMgrFWMMF)
-    {    
-        
-       pImpl->adaptationCtx = XAMediaRecorderAdaptMMF_Create(pImpl->audioSrc,
-               pImpl->imageVideoSrc, pImpl->dataSnk, pImpl->recModes);
-    }
+    *pRecorder = (XAObjectItf) &(pBaseObj->self);
+
+    if (fwType == FWMgrFWMMF)
+        {
+
+        pImpl->adaptationCtx = XAMediaRecorderAdaptMMF_Create(
+                pImpl->audioSrc, pImpl->imageVideoSrc, pImpl->dataSnk,
+                pImpl->recModes);
+        }
     else
-    {
+        {
 
         pImpl->adaptationCtx = XAMediaRecorderAdapt_Create(pImpl->audioSrc,
-                                                           pImpl->imageVideoSrc,
-                                                           pImpl->dataSnk,
-                                                           pImpl->recModes);
-    }
+                pImpl->imageVideoSrc, pImpl->dataSnk, pImpl->recModes);
+        }
 
-    if(pImpl->adaptationCtx)
+    if (pImpl->adaptationCtx)
         {
         pImpl->adaptationCtx->capslist = capabilities;
         pImpl->adaptationCtx->fwtype = fwType;
@@ -297,56 +289,57 @@
     else
         {
         ret = XA_RESULT_MEMORY_FAILURE;
-        XAObjectItfImpl_Destroy((XAObjectItf)&(pBaseObj));
+        XAObjectItfImpl_Destroy((XAObjectItf) &(pBaseObj));
         XA_IMPL_THREAD_SAFETY_EXIT( XATSMediaRecorder );
         DEBUG_API("<-XAMediaRecorderImpl_CreateMediaRecorder");
         return ret;
         }
-    
+
     XA_IMPL_THREAD_SAFETY_EXIT( XATSMediaRecorder );
     DEBUG_API("<-XAMediaRecorderImpl_CreateMediaRecorder");
     return XA_RESULT_SUCCESS;
-}
+    }
 
 /* XAResult XAMediaRecorderImpl_QueryNumSupportedInterfaces
  * Statically query supported interfaces
  */
-XAresult XAMediaRecorderImpl_QueryNumSupportedInterfaces(XAuint32 *pNumSupportedInterfaces)
-{
+XAresult XAMediaRecorderImpl_QueryNumSupportedInterfaces(
+        XAuint32 *pNumSupportedInterfaces)
+    {
     DEBUG_API("->XAMediaRecorderImpl_QueryNumSupportedInterfaces");
-    if( pNumSupportedInterfaces )
-    {
+    if (pNumSupportedInterfaces)
+        {
         *pNumSupportedInterfaces = MR_ITFCOUNT;
 
         DEBUG_API("<-XAMediaRecorderImpl_QueryNumSupportedInterfaces");
         return XA_RESULT_SUCCESS;
-    }
+        }
     else
-    {
+        {
         DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
         return XA_RESULT_PARAMETER_INVALID;
+        }
     }
-}
 /* XAResult XAMediaRecorderImpl_QuerySupportedInterfaces
  * Statically query supported interfaces
  */
 XAresult XAMediaRecorderImpl_QuerySupportedInterfaces(XAuint32 index,
-                                                      XAInterfaceID *pInterfaceId)
-{
+        XAInterfaceID *pInterfaceId)
+    {
     DEBUG_API("->XAMediaRecorderImpl_QuerySupportedInterfaces");
-    if( index >= MR_ITFCOUNT || !pInterfaceId )
-    {
+    if (index >= MR_ITFCOUNT || !pInterfaceId)
+        {
         DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
         return XA_RESULT_PARAMETER_INVALID;
-    }
+        }
     else
-    {
+        {
         *pInterfaceId = *(xaMediaRecorderItfIIDs[index]);
 
         DEBUG_API("<-XAMediaRecorderImpl_QuerySupportedInterfaces");
         return XA_RESULT_SUCCESS;
+        }
     }
-}
 
 /*****************************************************************************
  * base object XAObjectItfImpl methods
@@ -357,161 +350,169 @@
  * Create and initialize implementation-specific variables.
  * Called from base object XAObjectItfImpl
  */
-XAresult XAMediaRecorderImpl_DoRealize( XAObjectItf self )
-{
+XAresult XAMediaRecorderImpl_DoRealize(XAObjectItf self)
+    {
     XAuint8 itfIdx;
-    XAObjectItfImpl* pObj = (XAObjectItfImpl*)(*self);
-    XAMediaRecorderImpl* pObjImpl = (XAMediaRecorderImpl*)(pObj);
+    XAObjectItfImpl* pObj = (XAObjectItfImpl*) (*self);
+    XAMediaRecorderImpl* pObjImpl = (XAMediaRecorderImpl*) (pObj);
     XAresult ret = XA_RESULT_SUCCESS;
-    
 
     DEBUG_API("->XAMediaRecorderImpl_DoRealize");
     XA_IMPL_THREAD_SAFETY_ENTRY( XATSMediaRecorder );
 
     /* check casting from correct pointer type */
-    if( !pObjImpl || pObj != pObjImpl->baseObj.self )
-    {
+    if (!pObjImpl || pObj != pObjImpl->baseObj.self)
+        {
         DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
         /* invalid parameter */
         XA_IMPL_THREAD_SAFETY_EXIT( XATSMediaRecorder );
         return XA_RESULT_PARAMETER_INVALID;
-    }
+        }
 
     /* init adaptation */
-    if(pObjImpl->adaptationCtx->fwtype == FWMgrFWMMF)
-    {
-       ret = XAMediaRecorderAdaptMMF_PostInit( (XAAdaptationMMFCtx*)pObjImpl->adaptationCtx );
-    }
+    if (pObjImpl->adaptationCtx->fwtype == FWMgrFWMMF)
+        {
+        ret = XAMediaRecorderAdaptMMF_PostInit(
+                (XAAdaptationMMFCtx*) pObjImpl->adaptationCtx);
+        }
     else
-    {
-       ret = XAMediaRecorderAdapt_PostInit( (XAAdaptationGstCtx*)pObjImpl->adaptationCtx );
-    }
+        {
+        ret = XAMediaRecorderAdapt_PostInit(
+                (XAAdaptationGstCtx*) pObjImpl->adaptationCtx);
+        }
 
-    if( ret != XA_RESULT_SUCCESS )
-    {
+    if (ret != XA_RESULT_SUCCESS)
+        {
         XA_IMPL_THREAD_SAFETY_EXIT( XATSMediaRecorder );
         return ret;
-    }
+        }
 
     /* Realize all implicit and explicitly wanted interfaces */
-    for( itfIdx = 0; itfIdx < MR_ITFCOUNT; itfIdx++ )
-    {
-        if( !(pObj->interfaceMap[itfIdx].pItf) &&
-            pObj->interfaceMap[itfIdx].required )
+    for (itfIdx = 0; itfIdx < MR_ITFCOUNT; itfIdx++)
         {
+        if (!(pObj->interfaceMap[itfIdx].pItf)
+                && pObj->interfaceMap[itfIdx].required)
+            {
             void *pItf = NULL;
-            switch( itfIdx )
-            {
+            switch (itfIdx)
+                {
                 case MR_DIMITF:
                     pItf = XADIMItfImpl_Create();
-                    if(pItf)
-                    {
+                    if (pItf)
+                        {
                         XADIMItfImpl_Init(pItf, self,
                                 XAMediaRecorderImpl_DoAddItf,
                                 XAMediaRecorderImpl_DoResumeItf,
                                 XAMediaRecorderImpl_DoRemoveItf);
-                    }
+                        }
                     break;
                 case MR_RECORDITF:
-                    pItf = XARecordItfImpl_Create( pObjImpl );
+                    pItf = XARecordItfImpl_Create(pObjImpl);
                     break;
                 case MR_AUDIOENCODERITF:
                     pItf = XAAudioEncoderItfImpl_Create(pObjImpl);
                     break;
-                case MR_SNAPSHOTITF:
+#ifdef OMAX_CAMERABIN
+                    case MR_SNAPSHOTITF:
                     pItf = XASnapshotItfImpl_Create(pObjImpl);
                     break;
-                case MR_VIDEOENCODER:
+                    case MR_VIDEOENCODER:
                     pItf = XAVideoEncoderItfImpl_Create(pObjImpl);
-                    break;  
-                case MR_IMAGEENCODERITF:
+                    break;
+                    case MR_IMAGEENCODERITF:
                     pItf = XAImageEncoderItfImpl_Create(pObjImpl);
-                    break; 
+                    break;
+#endif
                 case MR_METADATAINSERTIONITF:
                     pItf = XAMetadataInsertionItfImpl_Create(pObjImpl);
-                    break;                    
+                    break;
 
-                    case MR_CONFIGEXTENSIONITF:
+                case MR_CONFIGEXTENSIONITF:
                     pItf = XAConfigExtensionsItfImpl_Create();
-                    XAConfigExtensionsItfImpl_SetContext( pItf, pObjImpl->adaptationCtx);
+                    XAConfigExtensionsItfImpl_SetContext(pItf,
+                            pObjImpl->adaptationCtx);
                     break;
                 case MR_EQUALIZERITF:
-                    pItf = XAEqualizerItfImpl_Create( pObjImpl->adaptationCtx );
+                    pItf = XAEqualizerItfImpl_Create(pObjImpl->adaptationCtx);
                     break;
-                case MR_IMAGECONTROLSITF:
+#ifdef OMAX_CAMERABIN
+                    case MR_IMAGECONTROLSITF:
                     pItf = XAImageControlsItfImpl_Create( pObjImpl->adaptationCtx );
                     break;
-                case MR_IMAGEEFFECTSITF:
+                    case MR_IMAGEEFFECTSITF:
                     pItf = XAImageEffectsItfImpl_Create( pObjImpl->adaptationCtx );
                     break;
-                case MR_VIDEOPOSTPROCESSINGITF:
+                    case MR_VIDEOPOSTPROCESSINGITF:
                     pItf = XAVideoPostProcessingItfImpl_Create( pObjImpl->adaptationCtx );
                     break;
+#endif
                 case MR_VOLUMEITF:
-                    pItf = XAVolumeItfImpl_Create( pObjImpl->adaptationCtx );
+                    pItf = XAVolumeItfImpl_Create(pObjImpl->adaptationCtx);
                     break;
                 case MR_METADATAEXTRACTIONITF:
-                    pItf = XAMetadataExtractionItfImpl_Create( pObjImpl->adaptationCtx );
+                    pItf = XAMetadataExtractionItfImpl_Create(
+                            pObjImpl->adaptationCtx);
                     break;
                 case MR_METADATATRAVERSALITF:
-                    pItf = XAMetadataTraversalItfImpl_Create( pObjImpl->adaptationCtx );
+                    pItf = XAMetadataTraversalItfImpl_Create(
+                            pObjImpl->adaptationCtx);
                     break;
-                    
+
                 default:
                     break;
-            }
-            if( !pItf )
-            {
+                }
+            if (!pItf)
+                {
                 DEBUG_ERR("XA_RESULT_MEMORY_FAILURE");
                 /* memory allocation failed */
                 XA_IMPL_THREAD_SAFETY_EXIT( XATSMediaRecorder );
                 return XA_RESULT_MEMORY_FAILURE;
-            }
+                }
             else
-            {
+                {
                 pObj->interfaceMap[itfIdx].pItf = pItf;
+                }
             }
         }
-    }
 
     pObj->state = XA_OBJECT_STATE_REALIZED;
     DEBUG_API("<-XAMediaRecorderImpl_DoRealize");
     XA_IMPL_THREAD_SAFETY_EXIT( XATSMediaRecorder );
     return XA_RESULT_SUCCESS;
-}
+    }
 
 /* XAresult XAMediaRecorderImpl_DoResume
  * Description: Resume object from suspended state
  */
 XAresult XAMediaRecorderImpl_DoResume(XAObjectItf self)
-{
+    {
     DEBUG_API("->XAMediaRecorderImpl_DoResume");
     DEBUG_API("<-XAMediaRecorderImpl_DoResume");
     /* This implementation does not support suspended state */
     return XA_RESULT_PRECONDITIONS_VIOLATED;
-}
+    }
 
 /* void XAMediaRecorderImpl_FreeResources
  * Description: Free all resources reserved at XAMediaRecorderImpl_DoRealize()
  */
 void XAMediaRecorderImpl_FreeResources(XAObjectItf self)
-{
-    XAObjectItfImpl* pObj = (XAObjectItfImpl*)(*self);
-    XAMediaRecorderImpl* pObjImpl = (XAMediaRecorderImpl*)(pObj);
+    {
+    XAObjectItfImpl* pObj = (XAObjectItfImpl*) (*self);
+    XAMediaRecorderImpl* pObjImpl = (XAMediaRecorderImpl*) (pObj);
     XAuint8 itfIdx;
-    XAMediaRecorderImpl* pImpl = (XAMediaRecorderImpl*)(*self);
+    XAMediaRecorderImpl* pImpl = (XAMediaRecorderImpl*) (*self);
     DEBUG_API("->XAMediaRecorderImpl_FreeResources");
     XA_IMPL_THREAD_SAFETY_ENTRY_FOR_VOID_FUNCTIONS( XATSMediaRecorder );
     assert( pObj && pImpl && pObj == pObj->self );
 
     /* free all allocated interfaces */
-    for(itfIdx = 0; itfIdx < MR_ITFCOUNT; itfIdx++)
-    {
+    for (itfIdx = 0; itfIdx < MR_ITFCOUNT; itfIdx++)
+        {
         void *pItf = pObj->interfaceMap[itfIdx].pItf;
-        if(pItf)
-        {
-            switch(itfIdx)
+        if (pItf)
             {
+            switch (itfIdx)
+                {
                 case MR_AUDIOENCODERITF:
                     XAAudioEncoderItfImpl_Free(pItf);
                     break;
@@ -524,30 +525,34 @@
                 case MR_EQUALIZERITF:
                     XAEqualizerItfImpl_Free(pItf);
                     break;
-                case MR_IMAGECONTROLSITF:
+#ifdef OMAX_CAMERABIN
+                    case MR_IMAGECONTROLSITF:
                     XAImageControlsItfImpl_Free(pItf);
                     break;
-                case MR_IMAGEEFFECTSITF:
+                    case MR_IMAGEEFFECTSITF:
                     XAImageEffectsItfImpl_Free(pItf);
                     break;
-                case MR_IMAGEENCODERITF:
+                    case MR_IMAGEENCODERITF:
                     XAImageEncoderItfImpl_Free(pItf);
                     break;
+#endif
                 case MR_METADATAINSERTIONITF:
                     XAMetadataInsertionItfImpl_Free(pItf);
                     break;
                 case MR_RECORDITF:
                     XARecordItfImpl_Free(pItf);
                     break;
-                case MR_SNAPSHOTITF:
+#ifdef OMAX_CAMERABIN
+                    case MR_SNAPSHOTITF:
                     XASnapshotItfImpl_Free(pItf);
                     break;
-                case MR_VIDEOENCODER:
+                    case MR_VIDEOENCODER:
                     XAVideoEncoderItfImpl_Free(pItf);
                     break;
-                case MR_VIDEOPOSTPROCESSINGITF:
+                    case MR_VIDEOPOSTPROCESSINGITF:
                     XAVideoPostProcessingItfImpl_Free(pItf);
                     break;
+#endif
                 case MR_VOLUMEITF:
                     XAVolumeItfImpl_Free(pItf);
                     break;
@@ -559,30 +564,32 @@
                     break;
                 default:
                     break;
-            }
+                }
             pObj->interfaceMap[itfIdx].pItf = NULL;
+            }
         }
-    }
 
-    if ( pImpl->adaptationCtx != NULL )
-    {
-        if(pImpl->adaptationCtx->fwtype == FWMgrFWMMF)
+    if (pImpl->adaptationCtx != NULL)
+        {
+        if (pImpl->adaptationCtx->fwtype == FWMgrFWMMF)
             {
-            XAMediaRecorderAdaptMMF_Destroy( (XAAdaptationMMFCtx*)pObjImpl->adaptationCtx );
+            XAMediaRecorderAdaptMMF_Destroy(
+                    (XAAdaptationMMFCtx*) pObjImpl->adaptationCtx);
             }
         else
             {
-            XAMediaRecorderAdapt_Destroy( (XAAdaptationGstCtx*)pImpl->adaptationCtx );
+            XAMediaRecorderAdapt_Destroy(
+                    (XAAdaptationGstCtx*) pImpl->adaptationCtx);
             }
         pImpl->adaptationCtx = NULL;
-    }
+        }
 
     /* free all other allocated resources*/
 
     DEBUG_API("<-XAMediaRecorderImpl_FreeResources");
     XA_IMPL_THREAD_SAFETY_EXIT_FOR_VOID_FUNCTIONS( XATSMediaRecorder );
     return;
-}
+    }
 
 /*****************************************************************************
  * MediaRecorderImpl -specific methods
@@ -591,106 +598,114 @@
 /* XAMediaRecorderImpl_DoAddItf
  * Dynamically add an interface, object specific parts
  */
-XAresult XAMediaRecorderImpl_DoAddItf(XAObjectItf self, XAObjItfMapEntry *mapEntry  )
-{
+XAresult XAMediaRecorderImpl_DoAddItf(XAObjectItf self,
+        XAObjItfMapEntry *mapEntry)
+    {
 
-    XAObjectItfImpl* pObj = (XAObjectItfImpl*)(*self);
-    XAMediaRecorderImpl* pImpl = (XAMediaRecorderImpl*)(pObj);
+    XAObjectItfImpl* pObj = (XAObjectItfImpl*) (*self);
+    XAMediaRecorderImpl* pImpl = (XAMediaRecorderImpl*) (pObj);
 
     XAresult ret = XA_RESULT_SUCCESS;
 
     DEBUG_API("->XAMediaRecorderImpl_DoAddItf");
     XA_IMPL_THREAD_SAFETY_ENTRY( XATSMediaRecorder );
 
-    if(mapEntry)
-    {
-        switch( mapEntry->mapIdx )
+    if (mapEntry)
         {
+        switch (mapEntry->mapIdx)
+            {
 
-        case MR_METADATAINSERTIONITF:
-            mapEntry->pItf = XAMetadataInsertionItfImpl_Create(pImpl);
-            break;
-        case MR_EQUALIZERITF:
-            mapEntry->pItf = XAEqualizerItfImpl_Create( pImpl->adaptationCtx );
-            break;
-        case MR_IMAGEEFFECTSITF:
-            mapEntry->pItf = XAImageEffectsItfImpl_Create( pImpl->adaptationCtx );
-            break;
+            case MR_METADATAINSERTIONITF:
+                mapEntry->pItf = XAMetadataInsertionItfImpl_Create(pImpl);
+                break;
+            case MR_EQUALIZERITF:
+                mapEntry->pItf = XAEqualizerItfImpl_Create(
+                        pImpl->adaptationCtx);
+                break;
+#ifdef OMAX_CAMERABIN
+                case MR_IMAGEEFFECTSITF:
+                mapEntry->pItf = XAImageEffectsItfImpl_Create( pImpl->adaptationCtx );
+                break;
+#endif
+            default:
+                DEBUG_ERR("XAMediaRecorderImpl_DoAddItf unknown id")
+                ;
+                ret = XA_RESULT_FEATURE_UNSUPPORTED;
+                break;
+            }
 
-        default:
-            DEBUG_ERR("XAMediaRecorderImpl_DoAddItf unknown id");
-            ret = XA_RESULT_FEATURE_UNSUPPORTED;
-            break;
-        }
-        
-        if( !mapEntry->pItf && ret == XA_RESULT_SUCCESS)
-        {
+        if (!mapEntry->pItf && ret == XA_RESULT_SUCCESS)
+            {
             DEBUG_ERR("XAMediaRecorderImpl_DoAddItf itf creation failed");
             ret = XA_RESULT_MEMORY_FAILURE;
+            }
         }
-    }
     else
-    {
+        {
         ret = XA_RESULT_PARAMETER_INVALID;
-    }
+        }
 
     XA_IMPL_THREAD_SAFETY_EXIT( XATSMediaRecorder );
     DEBUG_API("<-XAMediaRecorderImpl_DoAddItf");
     return ret;
-}
+    }
 
 /* XAMediaRecorderImpl_DoResumeItf
  * Try to resume lost interface, object specific parts
  */
-XAresult XAMediaRecorderImpl_DoResumeItf(XAObjectItf self, XAObjItfMapEntry *mapEntry  )
-{
+XAresult XAMediaRecorderImpl_DoResumeItf(XAObjectItf self,
+        XAObjItfMapEntry *mapEntry)
+    {
     XAresult ret;
     /* For now, no difference between suspended and unrealised itfs */
     DEBUG_API("->XAMediaRecorderImpl_DoResumeItf");
     XA_IMPL_THREAD_SAFETY_ENTRY( XATSMediaRecorder );
-    ret = XAMediaRecorderImpl_DoAddItf(self,mapEntry);
+    ret = XAMediaRecorderImpl_DoAddItf(self, mapEntry);
     XA_IMPL_THREAD_SAFETY_EXIT( XATSMediaRecorder );
     DEBUG_API("<-XAMediaRecorderImpl_DoResumeItf");
     return ret;
-}
+    }
 
 /* XAMediaRecorderImpl_DoRemoveItf
  * Dynamically remove an interface, object specific parts
  */
-XAresult XAMediaRecorderImpl_DoRemoveItf(XAObjectItf self, XAObjItfMapEntry *mapEntry )
-{
+XAresult XAMediaRecorderImpl_DoRemoveItf(XAObjectItf self,
+        XAObjItfMapEntry *mapEntry)
+    {
     XAresult ret = XA_RESULT_SUCCESS;
     DEBUG_API("->XAMediaRecorderImpl_DoRemoveItf");
     XA_IMPL_THREAD_SAFETY_ENTRY( XATSMediaRecorder );
-    if(mapEntry)
-    {
-        switch( mapEntry->mapIdx )
+    if (mapEntry)
         {
-        case MR_METADATAINSERTIONITF:
-            XAMetadataInsertionItfImpl_Free( mapEntry->pItf );
-            break;
-        case MR_EQUALIZERITF:
-            XAEqualizerItfImpl_Free( mapEntry->pItf );
-            break;
-        case MR_IMAGEEFFECTSITF:
-            XAImageEffectsItfImpl_Free( mapEntry->pItf );
-            break;
-        default:
-            DEBUG_ERR("XAMediaRecorderImpl_DoRemoveItf unknown id");
-            ret = XA_RESULT_FEATURE_UNSUPPORTED;
-            break;
+        switch (mapEntry->mapIdx)
+            {
+            case MR_METADATAINSERTIONITF:
+                XAMetadataInsertionItfImpl_Free(mapEntry->pItf);
+                break;
+            case MR_EQUALIZERITF:
+                XAEqualizerItfImpl_Free(mapEntry->pItf);
+                break;
+#ifdef OMAX_CAMERABIN
+                case MR_IMAGEEFFECTSITF:
+                XAImageEffectsItfImpl_Free( mapEntry->pItf );
+                break;
+#endif
+            default:
+                DEBUG_ERR("XAMediaRecorderImpl_DoRemoveItf unknown id")
+                ;
+                ret = XA_RESULT_FEATURE_UNSUPPORTED;
+                break;
+            }
+        mapEntry->pItf = NULL;
         }
-        mapEntry->pItf = NULL;
-    }
     else
-    {
+        {
         ret = XA_RESULT_PARAMETER_INVALID;
-    }
+        }
 
     XA_IMPL_THREAD_SAFETY_EXIT( XATSMediaRecorder );
     DEBUG_API("<-XAMediaRecorderImpl_DoRemoveItf");
     return ret;
-}
-
+    }
 
 /* END OF FILE */