From 85b3013e06e8fe7802fe6259ecac80261e834332 Mon Sep 17 00:00:00 2001 From: jpadmana Date: Thu, 14 Nov 2013 17:20:52 +0530 Subject: fix deadlock issues that arise when there are simultaneous effect control interface calls to proxy and to non sub-effect wrappers(eg., bundlewrapper) from audioflinger Also, return NO_ERROR when CMD_OFFLOAD succeeds Whenever there are parallel calls to proxy and non sub-effects wrappers, some of the calls are not completed. This is due to deadlock arsing out of Proxy waiting for the subeffect call to return and subeffect waiting for proxy to release lock. The call flow is changed to a cleaner and simple one - Proxy gets the aeli(effect library info) of subeffects during the EffectGetSubEffects() call. Therby, proxy will manage the sub effects by itself rather than going through effects factory. Change-Id: If4b259da5776f151c1e81a78a0239d342046d923 Signed-off-by: jpadmana Bug: 12424044 --- include/media/EffectsFactoryApi.h | 24 ------------------------ 1 file changed, 24 deletions(-) (limited to 'include') diff --git a/include/media/EffectsFactoryApi.h b/include/media/EffectsFactoryApi.h index b1143b9..b1ed7b0 100644 --- a/include/media/EffectsFactoryApi.h +++ b/include/media/EffectsFactoryApi.h @@ -171,30 +171,6 @@ int EffectGetDescriptor(const effect_uuid_t *pEffectUuid, effect_descriptor_t *p //////////////////////////////////////////////////////////////////////////////// int EffectIsNullUuid(const effect_uuid_t *pEffectUuid); -//////////////////////////////////////////////////////////////////////////////// -// -// Function: EffectGetSubEffects -// -// Description: Returns the descriptors of the sub effects of the effect -// whose uuid is pointed to by first argument. -// -// Input: -// pEffectUuid: pointer to the effect uuid. -// size: size of the buffer pointed by pDescriptor. -// -// Input/Output: -// pDescriptor: address where to return the sub effect descriptors. -// -// Output: -// returned value: 0 successful operation. -// -ENODEV factory failed to initialize -// -EINVAL invalid pEffectUuid or pDescriptor -// -ENOENT no effect with this uuid found -// *pDescriptor: updated with the sub effect descriptors. -// -//////////////////////////////////////////////////////////////////////////////// -int EffectGetSubEffects(const effect_uuid_t *pEffectUuid, effect_descriptor_t *pDescriptors, size_t size); - #if __cplusplus } // extern "C" #endif -- cgit v1.1