diff --git a/hal_av_pipeline.c b/hal_av_pipeline.c index 26dd709..cb2872f 100644 --- a/hal_av_pipeline.c +++ b/hal_av_pipeline.c @@ -192,10 +192,10 @@ int AVP_Stop(AVP_HANDLE player) { assert(ret == SUCCESS); amp_zapping_mgr_stop_service(player); - - if( !socPlayerInfo->playerConfig.keep_last_frame ) { - AMP_RPC(ret, AMP_DISP_Push_BuildInFrame, socPlayerInfo->amp_disp, socPlayerInfo->pip ? 1:0, 0); - } + + if( !socPlayerInfo->playerConfig.keep_last_frame ) { + AMP_RPC(ret, AMP_DISP_Push_BuildInFrame, socPlayerInfo->amp_disp, socPlayerInfo->pip ? 1:0, 0); + } #ifdef AMP_LOG_WRITE_FILE if(logFp[socPlayerInfo->pip ? 1:0] != NULL) @@ -493,7 +493,7 @@ int AVP_SetAudioMute(AVP_HANDLE player, bool mute) { if(oldMuteState != mute) { //HRESULT ret = AMP_SND_SetMute(AMP_SND_PATH_71, ismute ? TRUE:FALSE); //AMP_SND_SetMute(AMP_SND_PATH_HDMI, ismute ? TRUE:FALSE); //HDMI mute - + /* ret = AMP_SND_SetStreamMute((HANDLE)socPlayerInfo->amp_tunnel, mute ? TRUE:FALSE); if (SUCCESS == ret) { ALOGD("++%s[%d] %s audio\n", __FUNCTION__, socPlayerInfo->pip, mute ? "mute" : "unmute"); @@ -507,6 +507,55 @@ int AVP_SetAudioMute(AVP_HANDLE player, bool mute) { ret = AMP_SND_SetStreamMute((HANDLE)socPlayerInfo->amp_tunnel3, mute ? TRUE:FALSE); //assert(ret == SUCCESS); } + */ + //Vas modified start; For fix NUGU TTS noise when play 4K content and multivie; River 2021/09/02 + if(mute){ + ret = AMP_SND_SetStreamMute((HANDLE)socPlayerInfo->amp_tunnel, mute ? TRUE:FALSE); + if (SUCCESS == ret) { + ALOGD("++%s[%d] %s audio\n", __FUNCTION__, socPlayerInfo->pip, mute ? "mute" : "unmute"); + } else ALOGD("++%s[%d] failed to call AMP_SND_SetMute, r = 0x%x", __FUNCTION__, socPlayerInfo->pip, ret); + + if (PREPARE_PASSTHROUGH) { + ret = AMP_SND_SetStreamMute((HANDLE)socPlayerInfo->amp_tunnel2, mute ? TRUE:FALSE); + //assert(ret == SUCCESS); + ret = AMP_SND_SetStreamMute((HANDLE)socPlayerInfo->amp_tunnel3, mute ? TRUE:FALSE); + //assert(ret == SUCCESS); + } + + ALOGE("AMP_CLK_SetAVSyncOption set AMP_CLK_DROP"); + AMP_RPC(ret, AMP_CLK_SetAVSyncOption, socPlayerInfo->amp_clk, 1, AMP_CLK_OPT_SYNC_OVERWRITE, 1, AMP_CLK_DROP, 0); + if (SUCCESS != ret) { ALOGE("++%s[%d] failed to call AMP_CLK_SetAVSyncOption 1 for mute, r = 0x%x", __FUNCTION__, socPlayerInfo->pip, ret); } + if (PREPARE_PASSTHROUGH) { + AMP_RPC(ret, AMP_CLK_SetAVSyncOption, socPlayerInfo->amp_clk, 2, AMP_CLK_OPT_SYNC_OVERWRITE, 1, AMP_CLK_DROP, 0); + if (SUCCESS != ret) { ALOGE("++%s[%d] failed to call AMP_CLK_SetAVSyncOption 2 for mute, r = 0x%x", __FUNCTION__, socPlayerInfo->pip, ret); } + AMP_RPC(ret, AMP_CLK_SetAVSyncOption, socPlayerInfo->amp_clk, 3, AMP_CLK_OPT_SYNC_OVERWRITE, 1, AMP_CLK_DROP, 0); + if (SUCCESS != ret) { ALOGE("++%s[%d] failed to call AMP_CLK_SetAVSyncOption 3 for mute, r = 0x%x", __FUNCTION__, socPlayerInfo->pip, ret); } + } + } + else{ + ALOGE("AMP_CLK_SetAVSyncOption unset AMP_CLK_DROP"); + AMP_RPC(ret, AMP_CLK_SetAVSyncOption, socPlayerInfo->amp_clk, 1, AMP_CLK_OPT_SYNC_OVERWRITE, 0, AMP_CLK_DROP, 0); + if (SUCCESS != ret) { ALOGE("++%s[%d] failed to call AMP_CLK_SetAVSyncOption 1 for unmute, r = 0x%x", __FUNCTION__, socPlayerInfo->pip, ret); } + if (PREPARE_PASSTHROUGH) { + AMP_RPC(ret, AMP_CLK_SetAVSyncOption, socPlayerInfo->amp_clk, 2, AMP_CLK_OPT_SYNC_OVERWRITE, 0, AMP_CLK_DROP, 0); + if (SUCCESS != ret) { ALOGE("++%s[%d] failed to call AMP_CLK_SetAVSyncOption 2 for unmute, r = 0x%x", __FUNCTION__, socPlayerInfo->pip, ret); } + AMP_RPC(ret, AMP_CLK_SetAVSyncOption, socPlayerInfo->amp_clk, 3, AMP_CLK_OPT_SYNC_OVERWRITE, 0, AMP_CLK_DROP, 0); + if (SUCCESS != ret) { ALOGE("++%s[%d] failed to call AMP_CLK_SetAVSyncOption 3 for unmute, r = 0x%x", __FUNCTION__, socPlayerInfo->pip, ret); } + } + + ret = AMP_SND_SetStreamMute((HANDLE)socPlayerInfo->amp_tunnel, mute ? TRUE:FALSE); + if (SUCCESS == ret) { + ALOGD("++%s[%d] %s audio\n", __FUNCTION__, socPlayerInfo->pip, mute ? "mute" : "unmute"); + } else ALOGD("++%s[%d] failed to call AMP_SND_SetMute, r = 0x%x", __FUNCTION__, socPlayerInfo->pip, ret); + + if (PREPARE_PASSTHROUGH) { + ret = AMP_SND_SetStreamMute((HANDLE)socPlayerInfo->amp_tunnel2, mute ? TRUE:FALSE); + //assert(ret == SUCCESS); + ret = AMP_SND_SetStreamMute((HANDLE)socPlayerInfo->amp_tunnel3, mute ? TRUE:FALSE); + //assert(ret == SUCCESS); + } + } + //Vas modified end; River 2021/09/02 } else ALOGD("++%s[%d] already is mute %s", __FUNCTION__, socPlayerInfo->pip, mute ? "enable" : "disable"); } else ALOGD("++%s[%d] failed to call AMP_SND_GetMute, r = 0x%x", __FUNCTION__, socPlayerInfo->pip, ret);