diff -r 80975da52420 -r 43d09473c595 khronosfws/openmax_al/src/engine/xaengine.c --- a/khronosfws/openmax_al/src/engine/xaengine.c Mon May 03 12:59:52 2010 +0300 +++ b/khronosfws/openmax_al/src/engine/xaengine.c Fri May 14 16:22:35 2010 +0300 @@ -35,25 +35,28 @@ #include "xadevicevolumeitf.h" #include "xaconfigextensionsitf.h" #include "xathreadsafety.h" -#ifdef _GSTREAMER_BACKEND_ -#include "XAStaticCameraCapsAdaptation.h" -#endif +#include "xaframeworkmgr.h" +#include "xastaticcameracapsadaptation.h" + + /* Static mapping of enumeration XAEngineInterfaces to interface iids */ static const XAInterfaceID* xaEngineItfIIDs[ENGINE_ITFCOUNT]={ &XA_IID_OBJECT, &XA_IID_ENGINE, &XA_IID_DYNAMICINTERFACEMANAGEMENT, &XA_IID_THREADSYNC, - &XA_IID_CONFIGEXTENSION, - &XA_IID_DEVICEVOLUME, +/* &XA_IID_CONFIGEXTENSION,*/ +/* &XA_IID_DEVICEVOLUME,*/ &XA_IID_AUDIOIODEVICECAPABILITIES, - &XA_IID_AUDIODECODERCAPABILITIES, - &XA_IID_AUDIOENCODERCAPABILITIES, +/* &XA_IID_AUDIODECODERCAPABILITIES,*/ + &XA_IID_AUDIOENCODERCAPABILITIES +/* &XA_IID_CAMERACAPABILITIES, &XA_IID_IMAGEDECODERCAPABILITIES, &XA_IID_IMAGEENCODERCAPABILITIES, &XA_IID_VIDEODECODERCAPABILITIES, &XA_IID_VIDEOENCODERCAPABILITIES +*/ }; /***************************************************************************** @@ -173,9 +176,11 @@ } } -#ifdef _GSTREAMER_BACKEND_ +/* + pImpl->adaptationCtx = XAEngineAdapt_Create(); -#endif + +*/ /* Set ObjectItf to point to newly created object */ *pEngine = ((XAObjectItf)&(pBaseObj->self)); @@ -257,23 +262,26 @@ return XA_RESULT_PARAMETER_INVALID; } -#ifdef _GSTREAMER_BACKEND_ - ret = XAEngineAdapt_PostInit( pObjImpl->adaptationCtx ); -#endif - if( ret != XA_RESULT_SUCCESS ) + + /* Table containing use-case framework map */ + pObjImpl->frameworkMap = XAFrameworkMgr_CreateFrameworkMap(); + if (pObjImpl->frameworkMap == NULL) { - DEBUG_ERR_A1("Engine postinit failed - %d", ret); + DEBUG_ERR("XA_RESULT_MEMORY_FAILURE"); DEBUG_API("<-XAEngineImpl_DoRealize"); - return ret; + /* memory allocation failed */ + return XA_RESULT_MEMORY_FAILURE; } - ret = XAEngineAdaptMMF_PostInit( pObjImpl->adaptationMmfCtx ); - if( ret != XA_RESULT_SUCCESS ) - { - DEBUG_ERR_A1("Engine postinit failed (MMF) - %d", ret); - DEBUG_API("<-XAEngineImpl_DoRealize"); + + /* Create capabilities list */ + ret = XACapabilitiesMgr_CreateCapabilitieList(pObjImpl->frameworkMap, &(pObjImpl->capabilities)); + if (ret != XA_RESULT_SUCCESS) + { return ret; - } + } + + /* Realize all implicit and explicitly wanted interfaces */ for(itfIdx=0; itfIdxframeworkMap, pObjImpl->capabilities); break; case ENGINE_THREADSYNCITF: pItf = XAThreadSyncItfImpl_Create(); @@ -293,11 +301,12 @@ pItf = XADIMItfImpl_Create(); break; case ENGINE_AUDIOIODEVICECAPAITF: - pItf = XAAudIODevCapaItfImpl_Create(); + pItf = XAAudIODevCapaItfImpl_Create(pObjImpl->capabilities); break; case ENGINE_AUDIOENCODERCAPAITF: - pItf = XAAudioEncoderCapabilitiesItfImpl_Create(); + pItf = XAAudioEncoderCapabilitiesItfImpl_Create(pObjImpl->capabilities); break; +/* case ENGINE_AUDIODECODERCAPAITF: pItf = XAAudioDecoderCapabilitiesItfImpl_Create(); break; @@ -305,15 +314,13 @@ pItf = XAConfigExtensionsItfImpl_Create(); break; case ENGINE_DEVICEVOLUMEITF: -#ifdef _GSTREAMER_BACKEND_ pItf = XADeviceVolumeItfImpl_Create(pObjImpl->adaptationCtx); -#endif break; case ENGINE_CAMERACAPAITF: -#ifdef _GSTREAMER_BACKEND_ + XAStaticCameraCaps_Init(); pItf = XACameraCapabilitiesItfImpl_Create(); -#endif + break; case ENGINE_IMAGEDECODERCAPAITF: pItf = XAImageDecoderCapabilitiesItfImpl_Create(); @@ -327,6 +334,7 @@ case ENGINE_VIDEOENCODERCAPAITF: pItf = XAVideoEncoderCapabilitiesItfImpl_Create(); break; +*/ default: break; } @@ -394,6 +402,7 @@ case ENGINE_AUDIOENCODERCAPAITF: XAAudioEncoderCapabilitiesItfImpl_Free(pItf); break; +/* case ENGINE_AUDIODECODERCAPAITF: XAAudioDecoderCapabilitiesItfImpl_Free(pItf); break; @@ -404,9 +413,9 @@ XADeviceVolumeItfImpl_Free(pItf); break; case ENGINE_CAMERACAPAITF: -#ifdef _GSTREAMER_BACKEND_ + XACameraCapabilitiesItfImpl_Free(pItf); -#endif + break; case ENGINE_IMAGEDECODERCAPAITF: XAImageDecoderCapabilitiesItfImpl_Free(pItf); @@ -420,6 +429,7 @@ case ENGINE_VIDEOENCODERCAPAITF: XAVideoEncoderCapabilitiesItfImpl_Free(pItf); break; +*/ default: break; } @@ -428,20 +438,25 @@ } /* free all other allocated resources*/ -#ifdef _GSTREAMER_BACKEND_ +/* if ( pImpl->adaptationCtx != NULL ) { XAEngineAdapt_Destroy( pImpl->adaptationCtx ); pImpl->adaptationCtx = NULL; } -#endif + if ( pImpl->adaptationMmfCtx != NULL ) { XAEngineAdaptMMF_Destroy( pImpl->adaptationMmfCtx ); pImpl->adaptationMmfCtx = NULL; - } - - XAThreadSafety_Destroy(); + }*/ + /* free framework map */ + XAFrameworkMgr_DeleteFrameworkMap(&pImpl->frameworkMap); + + /* TODO free capabilities list */ + XACapabilitiesMgr_DeleteCapabilitieList(&pImpl->capabilities); + + XAThreadSafety_Destroy(); DEBUG_API("<-XAEngineImpl_FreeResources"); return;