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: android-porting+unsubscr...@googlegroups.com
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 android-porting+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to