Hi Eric,
We can take care of it in Audio HAL but logically speaking since audio
flinger calls add_audio_effect, it should also call remove_audio_effect.
Tried below change to call setPreProcessorEnabled before release_input and
seems to work but don't know if it is right thing to do. Now I see
remove_audio_effect being called twice.
void AudioPolicyService::releaseInput(audio_io_handle_t input)
{
if (mpAudioPolicy == NULL) {
return;
}
Mutex::Autolock _l(mLock);
ssize_t index = mInputs.indexOfKey(input);
if (index >= 0) {
InputDesc *inputDesc = mInputs.valueAt(index);
setPreProcessorEnabled(inputDesc, false);
delete inputDesc;
}
mpAudioPolicy->release_input(mpAudioPolicy, input);
mInputs.removeItemsAt(index);
}
On Tuesday, January 14, 2014 1:51:52 PM UTC-8, Eric Laurent wrote:
>
> It is possible that remove_audio_effect is not called but as it is because
> the input stream has already been closed it should not be a problem. The
> HAL implementation should clean up its effect configuration if needed when
> the input stream is closed.
>
>
> On Tuesday, January 14, 2014 8:20:15 AM UTC-8, Uday Gupta wrote:
>>
>> Hi,
>>
>> Was able to figure out how the add_audio_effect is called. Was not
>> loading the correct audio_effects.conf because of which the logs I had
>> added were not showing up.
>>
>> Now I have another problem. remove_audio_effects is not getting called.
>>
>> AudioPolicyService::releaseInput->AudioPolicyManagerBase::releaseInput->mpClientInterface->closeInput->AudioFlinger::closeInput->closeInput_nonvirtual->AudioFlinger::RecordThread::clearInput(This
>>
>> will set mInput to NULL)
>> Then
>> AudioPolicyService::releaseInput->setPreProcessorEnabled
>>
>> Now when with either AudioFlinger::EffectModule::stop_l
>> or AudioFlinger::EffectModule::~EffectModule() is called audio_stream_t
>> *stream = thread->stream(); returns NULL as mInput is already set to NULL
>> earlier and therefore remove_audio_effect doesn't get called.
>>
>> Is that a bug or I am looking at it wrong.
>>
>> Thanks
>>
>> On Monday, January 13, 2014 11:35:15 AM UTC-8, Uday Gupta wrote:
>>>
>>> Hi,
>>>
>>> I understand that platform developers can add their own pre processing
>>> effects in audio_effects.conf.
>>>
>>> If the conditions match, then in audio policy service getInput function,
>>> new AudioEffect will be created.
>>>
>>> My question is how does this effect start. Basically, how does
>>> add_audio_effect get called to the HAL?
>>>
>>> Thanks
>>>
>>>
--
--
unsubscribe: [email protected]
website: http://groups.google.com/group/android-porting
---
You received this message because you are subscribed to the Google Groups
"android-porting" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.