HI_S32 SAMPLE_COMM_AUDIO_StartAiEx(AUDIO_DEV AiDevId, HI_S32 s32AiChnCnt, AIO_ATTR_S *pstAioAttr, HI_BOOL bAnrEn, AUDIO_RESAMPLE_ATTR_EX_S *pstAiReSmpAttr, AI_VQE_CONFIG_S *pstAiVqeCfg, AI_VQE3_CONFIG_S *pstAiVqe3Cfg) { HI_S32 i, s32Ret; s32Ret = HI_MPI_AI_SetPubAttr(AiDevId, pstAioAttr); if (s32Ret) { printf("%s: HI_MPI_AI_SetPubAttr(%d) failed with %#x\n", __FUNCTION__, AiDevId, s32Ret); return HI_FAILURE; } if (HI_MPI_AI_Enable(AiDevId)) { printf("%s: HI_MPI_AI_Enable(%d) failed with %#x\n", __FUNCTION__, AiDevId, s32Ret); return HI_FAILURE; } for (i=0; i<s32AiChnCnt; i++) { if (HI_MPI_AI_EnableChn(AiDevId, i)) { printf("%s: HI_MPI_AI_EnableChn(%d,%d) failed with %#x\n", __FUNCTION__,\ AiDevId, i, s32Ret); return HI_FAILURE; } if (HI_TRUE == bAnrEn) { if (HI_MPI_AI_EnableAnr(AiDevId, i)) { printf("%s: HI_MPI_AI_EnableAnr(%d,%d) failed with %#x\n", __FUNCTION__,\ AiDevId, i, s32Ret); return HI_FAILURE; } } if (NULL != pstAiReSmpAttr) { if (HI_MPI_AI_EnableReSmpEx(AiDevId, i, pstAiReSmpAttr)) { printf("%s: HI_MPI_AI_EnableReSmp(%d,%d) failed with %#x\n",\ __FUNCTION__, AiDevId, i, s32Ret); return HI_FAILURE; } } if (NULL != pstAiVqeCfg) { s32Ret = HI_MPI_AI_SetVqeAttr(AiDevId, i, AiDevId, i, pstAiVqeCfg); if (s32Ret) { printf("%s: HI_MPI_AI_SetVqeAttr(%d,%d) failed with %#x\n", __FUNCTION__, AiDevId, i, s32Ret); return s32Ret; } s32Ret = HI_MPI_AI_EnableVqe(AiDevId, i); if (s32Ret) { printf("%s: HI_MPI_AI_EnableVqe(%d,%d) failed with %#x\n", __FUNCTION__, AiDevId, i, s32Ret); return s32Ret; } } if (NULL != pstAiVqe3Cfg) { s32Ret = HI_MPI_AI_SetVqe3Attr(AiDevId, i, AiDevId, i, pstAiVqe3Cfg); if (s32Ret) { printf("%s: HI_MPI_AI_SetVqe3Attr(%d,%d) failed with %#x\n", __FUNCTION__, AiDevId, i, s32Ret); return s32Ret; } s32Ret = HI_MPI_AI_EnableVqe(AiDevId, i); if (s32Ret) { printf("%s: HI_MPI_AI_EnableVqe(%d,%d) failed with %#x\n", __FUNCTION__, AiDevId, i, s32Ret); return s32Ret; } } } return HI_SUCCESS; }
static int audio_vqe_start() { HI_S32 s32Ret; AI_VQE_CONFIG_S aiVqeConfig; memset(&aiVqeConfig, 0, sizeof(aiVqeConfig)); /* AI_VQE_CONFIG_S getAiVqeConfig; HI_S32 s32VolumeDb; */ aiVqeConfig.bHpfOpen = g_audio_args->vqe_cfg.hpr_enable; aiVqeConfig.bAnrOpen = g_audio_args->vqe_cfg.anr_enable; aiVqeConfig.bAgcOpen = 0; aiVqeConfig.bEqOpen = 0; aiVqeConfig.bAecOpen = 0; aiVqeConfig.bRnrOpen = g_audio_args->vqe_cfg.rnr_enable;; aiVqeConfig.bHdrOpen = 0; aiVqeConfig.s32WorkSampleRate = g_audio_args->audio.sampleRate; aiVqeConfig.s32FrameSample = g_audio_args->audio.ptNumPerFrm; aiVqeConfig.enWorkstate = VQE_WORKSTATE_NOISY; aiVqeConfig.stHpfCfg.bUsrMode = HI_TRUE; aiVqeConfig.stHpfCfg.enHpfFreq = (AUDIO_HPF_FREQ_E)g_audio_args->vqe_cfg.hpr_freq; aiVqeConfig.stAnrCfg.bUsrMode = HI_TRUE; aiVqeConfig.stAnrCfg.s16NrIntensity = g_audio_args->vqe_cfg.anr_intensity; aiVqeConfig.stAnrCfg.s16NoiseDbThr = g_audio_args->vqe_cfg.anr_noise_db_thr; aiVqeConfig.stAnrCfg.s8SpProSwitch = 0; aiVqeConfig.stRnrCfg.bUsrMode = HI_TRUE; aiVqeConfig.stRnrCfg.s32NrMode = g_audio_args->vqe_cfg.rnr_nr_mode; aiVqeConfig.stRnrCfg.s32MaxNrLevel = g_audio_args->vqe_cfg.rnr_max_nr_level; aiVqeConfig.stRnrCfg.s32NoiseThresh = g_audio_args->vqe_cfg.rnr_noise_thresh; s32Ret = HI_MPI_AI_SetVqeAttr(0, 0, 0, 0, &aiVqeConfig); CHECK(s32Ret == HI_SUCCESS, HI_FAILURE, "Error with %#x.\n", s32Ret); s32Ret = HI_MPI_AI_EnableVqe(0, 0); CHECK(s32Ret == HI_SUCCESS, HI_FAILURE, "Error with %#x.\n", s32Ret); AO_VQE_CONFIG_S aoVqeConfig; memset(&aoVqeConfig, 0, sizeof(aoVqeConfig)); aoVqeConfig.bHpfOpen = g_audio_args->vqe_cfg.hpr_enable; aoVqeConfig.bAnrOpen = g_audio_args->vqe_cfg.anr_enable; aoVqeConfig.bAgcOpen = 0; aoVqeConfig.bEqOpen = 0; aoVqeConfig.s32WorkSampleRate = g_audio_args->audio.sampleRate; aoVqeConfig.s32FrameSample = g_audio_args->audio.ptNumPerFrm; aoVqeConfig.enWorkstate = VQE_WORKSTATE_NOISY; aoVqeConfig.stHpfCfg.bUsrMode = HI_TRUE; aoVqeConfig.stHpfCfg.enHpfFreq = (AUDIO_HPF_FREQ_E)g_audio_args->vqe_cfg.hpr_freq; aoVqeConfig.stAnrCfg.bUsrMode = HI_TRUE; aoVqeConfig.stAnrCfg.s16NrIntensity = g_audio_args->vqe_cfg.anr_intensity; aoVqeConfig.stAnrCfg.s16NoiseDbThr = g_audio_args->vqe_cfg.anr_noise_db_thr; aoVqeConfig.stAnrCfg.s8SpProSwitch = 0; s32Ret = HI_MPI_AO_SetVqeAttr(0, 0, &aoVqeConfig); CHECK(s32Ret == HI_SUCCESS, HI_FAILURE, "Error with %#x.\n", s32Ret); s32Ret = HI_MPI_AO_EnableVqe(0, 0); CHECK(s32Ret == HI_SUCCESS, HI_FAILURE, "Error with %#x.\n", s32Ret); return s32Ret; }