mt6735 手机download完,安装Netflix应用,首次进入Netflix应用观...
时间:10-02
整理:3721RD
点击:
[Audio Policy]手机download完,安装Netflix应用,首次进入Netflix应用观看视频无声音
[DESCRIPTION]
复现步骤:MT6577,JB版本,手机download完,安装Netflix应用,首次进入Netflix应用观看视频会无声音。手动调节下音量后视频就有声音,以后也一直正常。
[SOLUTION]
请帮忙修改/mediatek/platform/mt6577/hardware/audio/AudioYusuPolicyManager.cpp中的以下函数:
status_tAudioYusuPolicyManager::setStreamVolumeIndex(AudioSystem::stream_typestream,
intindex,
audio_devices_tdevice)
{
ALOGD("VolumeIndexstream=%dindex=%ddevice=0x%x",stream,index,device);
if((index<mStreams[stream].mIndexMin)||(index>mStreams[stream].mIndexMax)){
returnBAD_VALUE;
}
if(!audio_is_output_device(device)){
returnBAD_VALUE;
}
//Forcemaxvolumeifstreamcannotbemuted
if(!mStreams[stream].mCanBeMuted)index=mStreams[stream].mIndexMax;
//ifdeviceisAUDIO_DEVICE_OUT_DEFAULTsetdefaultvalueand
//clearalldevicespecificvalues
if(device==AUDIO_DEVICE_OUT_DEFAULT){
mStreams[stream].mIndexCur.clear();
}
mStreams[stream].mIndexCur.add(device,index);
#ifndefandroid_DEFAULT_CODE
#ifdefmtk_AUDIO_GAIN_TABLE
mAudioUCM->setStreamVolIndex(stream,index,device);
#endif
#endif
//computeandapplystreamvolumeonalloutputsaccordingtoconnecteddevice
status_tstatus=NO_ERROR;
for(size_ti=0;i<mOutputs.size();i++){
audio_devices_tcurDevice=
getDeviceForVolume((audio_devices_t)mOutputs.valueAt(i)->device());
if(device==curDevice){
#ifndefANDROID_DEFAULT_CODE
status_tvolStatus;
//alps00053099adjustmatvvolumewhenrecordsoundstoping,matvsoundwilloutthrough
speaker.
//delay-1toputthisvolumecommandattheendofcommandqueueinaudiopolicyservice
if(stream==AudioSystem::MATV&&(mAvailableOutputDevices&
AudioSystem:EVICE_OUT_WIRED_HEADSET||mAvailableOutputDevices&AudioSystem::DEVICE_OUT_WIRED_HEADPHONE))
{
volStatus=checkAndSetVolume(stream,index,mOutputs.keyAt(i),curDevice,-1);
}
else
{
volStatus=checkAndSetVolume(stream,index,mOutputs.keyAt(i),curDevice);
}
#else
status_tvolStatus=checkAndSetVolume(stream,index,mOutputs.keyAt(i),curDevice);
#endif
if(volStatus!=NO_ERROR){
status=volStatus;
}
}
//AAAAA 添加以下code
#ifndef ANDROID_DEFAULT_CODE
elseif(device==AUDIO_DEVICE_OUT_DEFAULT&&isStreamActive(stream))
{
status_tvolStatus=checkAndSetVolume(stream,mStreams[stream].getVolumeIndex
((audio_devices_t)curDevice),mOutputs.keyAt(i),curDevice);
if(volStatus!=NO_ERROR){
status=volStatus;
}
}
#endif
//END
}
returnstatus;
}
如果以上修改OK的话,您可以申请patch:ALPS00996753
[DESCRIPTION]
复现步骤:MT6577,JB版本,手机download完,安装Netflix应用,首次进入Netflix应用观看视频会无声音。手动调节下音量后视频就有声音,以后也一直正常。
[SOLUTION]
请帮忙修改/mediatek/platform/mt6577/hardware/audio/AudioYusuPolicyManager.cpp中的以下函数:
status_tAudioYusuPolicyManager::setStreamVolumeIndex(AudioSystem::stream_typestream,
intindex,
audio_devices_tdevice)
{
ALOGD("VolumeIndexstream=%dindex=%ddevice=0x%x",stream,index,device);
if((index<mStreams[stream].mIndexMin)||(index>mStreams[stream].mIndexMax)){
returnBAD_VALUE;
}
if(!audio_is_output_device(device)){
returnBAD_VALUE;
}
//Forcemaxvolumeifstreamcannotbemuted
if(!mStreams[stream].mCanBeMuted)index=mStreams[stream].mIndexMax;
//ifdeviceisAUDIO_DEVICE_OUT_DEFAULTsetdefaultvalueand
//clearalldevicespecificvalues
if(device==AUDIO_DEVICE_OUT_DEFAULT){
mStreams[stream].mIndexCur.clear();
}
mStreams[stream].mIndexCur.add(device,index);
#ifndefandroid_DEFAULT_CODE
#ifdefmtk_AUDIO_GAIN_TABLE
mAudioUCM->setStreamVolIndex(stream,index,device);
#endif
#endif
//computeandapplystreamvolumeonalloutputsaccordingtoconnecteddevice
status_tstatus=NO_ERROR;
for(size_ti=0;i<mOutputs.size();i++){
audio_devices_tcurDevice=
getDeviceForVolume((audio_devices_t)mOutputs.valueAt(i)->device());
if(device==curDevice){
#ifndefANDROID_DEFAULT_CODE
status_tvolStatus;
//alps00053099adjustmatvvolumewhenrecordsoundstoping,matvsoundwilloutthrough
speaker.
//delay-1toputthisvolumecommandattheendofcommandqueueinaudiopolicyservice
if(stream==AudioSystem::MATV&&(mAvailableOutputDevices&
AudioSystem:EVICE_OUT_WIRED_HEADSET||mAvailableOutputDevices&AudioSystem::DEVICE_OUT_WIRED_HEADPHONE))
{
volStatus=checkAndSetVolume(stream,index,mOutputs.keyAt(i),curDevice,-1);
}
else
{
volStatus=checkAndSetVolume(stream,index,mOutputs.keyAt(i),curDevice);
}
#else
status_tvolStatus=checkAndSetVolume(stream,index,mOutputs.keyAt(i),curDevice);
#endif
if(volStatus!=NO_ERROR){
status=volStatus;
}
}
//AAAAA 添加以下code
#ifndef ANDROID_DEFAULT_CODE
elseif(device==AUDIO_DEVICE_OUT_DEFAULT&&isStreamActive(stream))
{
status_tvolStatus=checkAndSetVolume(stream,mStreams[stream].getVolumeIndex
((audio_devices_t)curDevice),mOutputs.keyAt(i),curDevice);
if(volStatus!=NO_ERROR){
status=volStatus;
}
}
#endif
//END
}
returnstatus;
}
如果以上修改OK的话,您可以申请patch:ALPS00996753
