Description: Audio Effect Management
EffectModule and EffectChain classes both have their own mutex to protect state changes or resource modifications. Always respect the following order if multiple mutexes must be acquired to avoid cross deadlock:
AudioFlinger -> ThreadBase -> EffectChain -> EffectModule
In addition, methods that lock the AudioPolicyService mutex (getOutputForEffect(),
startOutput()...) should never be called with AudioFlinger or Threadbase mutex locked
to avoid cross deadlock with other clients calling AudioPolicyService methods that in turn
call AudioFlinger thus locking the same mutexes in the reverse order.
To Search:
File list (Check if you may need any files):
Effects.cpp
Effects.h