Sure. Thanks for the help.

On Wednesday, January 15, 2014 9:10:08 AM UTC-8, Eric Laurent wrote:
>
> We could remove all effects in closeInput() but have to be careful with 
> race conditions.
> This is the only way to also address the case of pre processing controlled 
> by apps and not released before the AudioRecord is closed.
> But again I don't think this is a critical problem as any HAL design 
> should take care of resource allocation and release for all possible code 
> paths.
>
> On Tuesday, January 14, 2014 5:16:09 PM UTC-8, Uday Gupta wrote:
>>
>> 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