
_沉思


0 访问量
0 原创专栏
0 资料
0 粉丝
个性签名:此E友还没有留下个性签名哦~
加入易百纳时间:2017-07-17
-
1.使用MPI函数HI_MPI_VPSS_GetChnFrame从vpss获取帧,然后将帧通过HI_MPI_VENC_SendFrame函数发给venc编码,出现错误:HI_MPI_VENC_SendFrame failed with 0xa0088003。"参数范围不合法",可是我查看了一下,都是合法的值呀,有没有前辈遇到类似的情况? 以下是源码: [code] #include #include #include #include #include #include #include "sample_comm.h" #define PRE_WIDTH 1920 #define PRE_HEIGHT 1080 #define RES_WIDTH 3840 #define RES_HEIGHT 2160 VIDEO_NORM_E gs_enNorm = VIDEO_ENCODING_MODE_NTSC; PIC_SIZE_E g_enPicSize = PIC_HD1080; VIDEO_FRAME_INFO_S g_stFrame; static HI_CHAR* pUserPageAddr[2] = {HI_NULL,HI_NULL}; static HI_U32 u32Size = 0; VIDEO_FRAME_INFO_S* g_stDestFrame; VIDEO_FRAME_INFO_S* g_stVpssFrame; static int VENC_SnapProcess(VENC_CHN VencChn) { struct timeval TimeoutVal; fd_set read_fds; HI_S32 s32VencFd; VENC_STREAM_S stStream; VENC_CHN_STAT_S stStat; HI_S32 s32Ret; VENC_RECV_PIC_PARAM_S stRecvParam; printf("press any key to snap one pic\n"); getchar(); stRecvParam.s32RecvPicNum = 1; s32Ret = HI_MPI_VENC_StartRecvPicEx(VencChn,&stRecvParam); if (HI_SUCCESS != s32Ret) { SAMPLE_PRT("HI_MPI_VENC_StartRecvPic faild with %#x!\n", s32Ret); return HI_FAILURE; } #if 0 printf("g_stDestFrame->stVFrame.u32Width = %d\n",g_stDestFrame->stVFrame.u32Width); printf("g_stDestFrame->stVFrame.u32Height = %d\n",g_stDestFrame->stVFrame.u32Height); printf("g_stDestFrame->stVFrame.u32PhyAddr[0] = %#x\n",g_stDestFrame->stVFrame.u32PhyAddr[0]); printf("g_stDestFrame->stVFrame.u32PhyAddr[1] = %#x\n",g_stDestFrame->stVFrame.u32PhyAddr[1]); printf("g_stDestFrame->stVFrame.pVirAddr[0] = %#x\n",g_stDestFrame->stVFrame.pVirAddr[0]); printf("g_stDestFrame->stVFrame.pVirAddr[1] = %#x\n",g_stDestFrame->stVFrame.pVirAddr[1]); printf("g_stDestFrame->stVFrame.u32Stride[0] = %d\n",g_stDestFrame->stVFrame.u32Stride[0]); printf("g_stDestFrame->stVFrame.u32Stride[1] = %d\n",g_stDestFrame->stVFrame.u32Stride[1]); printf("g_stDestFrame->stVFrame.enPixelFormat = %d\n",g_stDestFrame->stVFrame.enPixelFormat); printf("g_stDestFrame->stVFrame.u64pts = %d\n",g_stDestFrame->stVFrame.u64pts); printf("g_stDestFrame->stVFrame.u32TimeRef = %d\n",g_stDestFrame->stVFrame.u32TimeRef); #endif printf("VencChn = %d\n",VencChn); s32Ret = HI_MPI_VENC_SendFrame(VencChn,g_stVpssFrame,-1); if(s32Ret != 0) { printf("HI_MPI_VENC_SendFrame failed with %#x!\n",s32Ret); return -1; } s32VencFd = HI_MPI_VENC_GetFd(VencChn); if (s32VencFd < 0) { SAMPLE_PRT("HI_MPI_VENC_GetFd faild with%#x!\n", s32VencFd); return HI_FAILURE; } FD_ZERO(&read_fds); FD_SET(s32VencFd, &read_fds); TimeoutVal.tv_sec = 2; TimeoutVal.tv_usec = 0; s32Ret = select(s32VencFd + 1, &read_fds, NULL, NULL, &TimeoutVal); if (s32Ret < 0) { SAMPLE_PRT("snap select failed!\n"); return HI_FAILURE; } else if (0 == s32Ret) { SAMPLE_PRT("snap time out!\n"); return HI_FAILURE; } else { if (FD_ISSET(s32VencFd, &read_fds)) { s32Ret = HI_MPI_VENC_Query(VencChn, &stStat); if (s32Ret != HI_SUCCESS) { SAMPLE_PRT("HI_MPI_VENC_Query failed with %#x!\n", s32Ret); return HI_FAILURE; } if(0 == stStat.u32CurPacks) { SAMPLE_PRT("NOTE: Current frame is NULL!\n"); return HI_SUCCESS; } stStream.pstPack = (VENC_PACK_S*)malloc(sizeof(VENC_PACK_S) * stStat.u32CurPacks); if (NULL == stStream.pstPack) { SAMPLE_PRT("malloc memory failed!\n"); return HI_FAILURE; } stStream.u32PackCount = stStat.u32CurPacks; s32Ret = HI_MPI_VENC_GetStream(VencChn, &stStream, -1); if (HI_SUCCESS != s32Ret) { SAMPLE_PRT("HI_MPI_VENC_GetStream failed with %#x!\n", s32Ret); free(stStream.pstPack); stStream.pstPack = NULL; return HI_FAILURE; } s32Ret = SAMPLE_COMM_VENC_SaveSnap(&stStream); if (HI_SUCCESS != s32Ret) { SAMPLE_PRT("HI_MPI_VENC_GetStream failed with %#x!\n", s32Ret); free(stStream.pstPack); stStream.pstPack = NULL; return HI_FAILURE; } s32Ret = HI_MPI_VENC_ReleaseStream(VencChn, &stStream); if (s32Ret) { SAMPLE_PRT("HI_MPI_VENC_ReleaseStream failed with %#x!\n", s32Ret); free(stStream.pstPack); stStream.pstPack = NULL; return HI_FAILURE; } free(stStream.pstPack); stStream.pstPack = NULL; } } s32Ret = HI_MPI_VENC_StopRecvPic(VencChn); if (s32Ret != HI_SUCCESS) { SAMPLE_PRT("HI_MPI_VENC_StopRecvPic failed with %#x!\n", s32Ret); return HI_FAILURE; } return HI_SUCCESS; } static int VENC_SnapStart(VENC_CHN VencChn,SIZE_S* pstSize,int Width,int Height) { HI_S32 s32Ret; VENC_CHN_ATTR_S stVencChnAttr; VENC_ATTR_JPEG_S stJpegAttr; stVencChnAttr.stVeAttr.enType = PT_JPEG; stJpegAttr.u32MaxPicWidth = 3840; stJpegAttr.u32MaxPicHeight = 2160; stJpegAttr.u32PicWidth = 3840/*pstSize->u32Width*/; stJpegAttr.u32PicHeight = 2160/*pstSize->u32Height*/; stJpegAttr.u32BufSize = 3840*2160*2/*pstSize->u32Width * pstSize->u32Height * 2*/; stJpegAttr.bByFrame = HI_TRUE;/*get stream mode is field mode or frame mode*/ stJpegAttr.bSupportDCF = HI_FALSE; memcpy(&stVencChnAttr.stVeAttr.stAttrJpeg, &stJpegAttr, sizeof(VENC_ATTR_JPEG_S)); printf("VencChn = %d\n",VencChn); s32Ret = HI_MPI_VENC_CreateChn(VencChn, &stVencChnAttr); if (HI_SUCCESS != s32Ret) { SAMPLE_PRT("HI_MPI_VENC_CreateChn [%d] faild with %#x!\n", \ VencChn, s32Ret); return s32Ret; } return HI_SUCCESS; } int main(int argc,char *argv[]) { VB_CONF_S stVbConf; VB_BLK VbBlk = VB_INVALID_HANDLE; VB_POOL hPool = VB_INVALID_POOLID; SAMPLE_VI_CONFIG_S stViConfig = {0}; HI_U32 u32ViChnCnt = 2; VPSS_GRP VpssGrp = 0; VPSS_CHN VpssChn = 0; VPSS_GRP_ATTR_S stVpssGrpAttr; VPSS_CHN_ATTR_S stVpssChnAttr; VPSS_CHN_MODE_S stVpssChnMode; VPSS_EXT_CHN_ATTR_S stVpssExtChnAttr; VENC_CHN VencChn; HI_U32 u32BlkSize; SIZE_S stSize; ROTATE_E enRotate = ROTATE_NONE; HI_S32 i = 0; HI_S32 s32Ret = HI_SUCCESS; char ch; HI_S32 u32Depth = 4; int width = 3840; int height = 2160; u32Size = width*height*3/2; /* 1.初始化缓冲池 */ memset(&stVbConf, 0, sizeof(VB_CONF_S)); stVbConf.u32MaxPoolCnt = 128; /*video buffer*/ u32BlkSize = SAMPLE_COMM_SYS_CalcPicVbBlkSize(gs_enNorm, \ g_enPicSize, SAMPLE_PIXEL_FORMAT, SAMPLE_SYS_ALIGN_WIDTH); stVbConf.astCommPool[0].u32BlkSize = u32BlkSize;//1920*1080*3/2 stVbConf.astCommPool[0].u32BlkCnt = u32ViChnCnt * 8; /* 2.初始化mpp系统*/ s32Ret = SAMPLE_COMM_SYS_Init(&stVbConf); if (HI_SUCCESS != s32Ret) { SAMPLE_PRT("system init failed with %d!\n", s32Ret); goto END_VENC_JPEG_0; } /* 3.设置vi和开启vi通道*/ stViConfig.enViMode = SENSOR_TYPE; stViConfig.enRotate = ROTATE_NONE;/*旋转角度为0*/ stViConfig.enNorm = VIDEO_ENCODING_MODE_AUTO;/*两种格式:PAL/NTSC/AUTO*/ stViConfig.enViChnSet = VI_CHN_SET_NORMAL;/*正常模式下/镜像*/ s32Ret = SAMPLE_COMM_VI_StartVi(&stViConfig); if (HI_SUCCESS != s32Ret) { SAMPLE_PRT("start vi failed!\n"); goto END_VENC_JPEG_1; } /* 4.开启vpss,vi绑定vpss*/ s32Ret = SAMPLE_COMM_SYS_GetPicSize(gs_enNorm,g_enPicSize, &stSize);/*获取stSize*/ if (HI_SUCCESS != s32Ret) { SAMPLE_PRT("SAMPLE_COMM_SYS_GetPicSize failed!\n"); goto END_VENC_JPEG_1; } stVpssGrpAttr.u32MaxW = 1920; stVpssGrpAttr.u32MaxH = 1080; stVpssGrpAttr.bIeEn = HI_FALSE; stVpssGrpAttr.bNrEn = HI_TRUE; stVpssGrpAttr.bHistEn = HI_FALSE; stVpssGrpAttr.enDieMode = VPSS_DIE_MODE_NODIE; stVpssGrpAttr.enPixFmt = SAMPLE_PIXEL_FORMAT; stVpssGrpAttr.bDciEn = HI_FALSE; s32Ret = HI_MPI_VPSS_CreateGrp(VpssGrp,&stVpssGrpAttr); if (s32Ret != HI_SUCCESS) { SAMPLE_PRT("HI_MPI_VPSS_CreateGrp failed with %#x!\n", s32Ret); return -1; } s32Ret = HI_MPI_VPSS_StartGrp(VpssGrp); if (s32Ret != HI_SUCCESS) { SAMPLE_PRT("HI_MPI_VPSS_StartGrp failed with %#x\n", s32Ret); return -1; } #if 1 memset(&stVpssChnAttr, 0, sizeof(stVpssChnAttr)); stVpssChnAttr.bBorderEn = 0; stVpssChnAttr.bFlip = 0; stVpssChnAttr.bMirror = 0; stVpssChnAttr.bSpEn = 0; stVpssChnAttr.s32SrcFrameRate = -1; stVpssChnAttr.s32DstFrameRate = -1; stVpssChnMode.enChnMode = VPSS_CHN_MODE_USER; stVpssChnMode.bDouble = HI_FALSE; stVpssChnMode.enPixelFormat = SAMPLE_PIXEL_FORMAT; stVpssChnMode.u32Width = 1920/*stSize.u32Width*/; stVpssChnMode.u32Height = 1080/*stSize.u32Height*/; stVpssChnMode.enCompressMode = COMPRESS_MODE_NONE; VPSS_CROP_INFO_S stVpssCropInfo; stVpssCropInfo.bEnable = HI_TRUE; stVpssCropInfo.enCropCoordinate = VPSS_CROP_ABS_COOR; stVpssCropInfo.stCropRect.s32X = 0; stVpssCropInfo.stCropRect.s32Y = 0; stVpssCropInfo.stCropRect.u32Width = 1920; stVpssCropInfo.stCropRect.u32Height = 1080; s32Ret = HI_MPI_VPSS_SetGrpCrop(i, &stVpssCropInfo); s32Ret = HI_MPI_VPSS_SetDepth(VpssGrp, VpssChn,u32Depth); if (s32Ret != HI_SUCCESS) { SAMPLE_PRT("HI_MPI_VPSS_SetDepth failed with %#x!\n", s32Ret); return -1; } s32Ret = HI_MPI_VPSS_SetChnAttr(VpssGrp, VpssChn, &stVpssChnAttr); if (s32Ret != HI_SUCCESS) { SAMPLE_PRT("HI_MPI_VPSS_SetChnAttr failed with %#x!\n", s32Ret); return -1; } s32Ret = HI_MPI_VPSS_SetChnMode(VpssGrp, VpssChn,&stVpssChnMode); if (s32Ret != HI_SUCCESS) { SAMPLE_PRT("%s failed with %#x\n", __FUNCTION__, s32Ret); return -1; } s32Ret = HI_MPI_VPSS_EnableChn(VpssGrp,VpssChn); if (s32Ret != HI_SUCCESS) { SAMPLE_PRT("HI_MPI_VPSS_SetChnMode failed with %#x!\n", s32Ret); return -1; } VencChn = 0; s32Ret = VENC_SnapStart(VencChn,&stSize,4096,4096); if (HI_SUCCESS != s32Ret) { SAMPLE_PRT("Start snap failed!\n"); goto END_VENC_JPEG_5; } SAMPLE_COMM_VI_BindVpss(stViConfig.enViMode); int count = 0; printf("press 'q' to exit sample!\nperess ENTER to capture one picture to file\n"); while((ch = (char)getchar()) != 'q') { g_stVpssFrame = (VIDEO_FRAME_INFO_S*)malloc(sizeof(VIDEO_FRAME_INFO_S)); g_stDestFrame = (VIDEO_FRAME_INFO_S*)malloc(sizeof(VIDEO_FRAME_INFO_S)); memset(g_stVpssFrame,0,sizeof(g_stVpssFrame)); #if 0 hPool = HI_MPI_VB_CreatePool(u32Size,1,NULL); if (hPool == VB_INVALID_POOLID) { SAMPLE_PRT("HI_MPI_VB_CreatePool failed! \n"); return -1; } #endif s32Ret = HI_MPI_VPSS_GetChnFrame(VpssGrp,VpssChn,g_stVpssFrame,-1); if (s32Ret == HI_SUCCESS) { #if 1 printf("g_stVpssFrame->stVFrame.u32Width = %d\n",g_stVpssFrame->stVFrame.u32Width); printf("g_stVpssFrame->stVFrame.u32Height = %d\n",g_stVpssFrame->stVFrame.u32Height); printf("g_stVpssFrame->stVFrame.u32PhyAddr[0] = %#x\n",g_stVpssFrame->stVFrame.u32PhyAddr[0]); printf("g_stVpssFrame->stVFrame.u32PhyAddr[1] = %#x\n",g_stVpssFrame->stVFrame.u32PhyAddr[1]); printf("g_stVpssFrame->stVFrame.pVirAddr[0] = %#x\n",g_stVpssFrame->stVFrame.pVirAddr[0]); printf("g_stVpssFrame->stVFrame.pVirAddr[1] = %#x\n",g_stVpssFrame->stVFrame.pVirAddr[1]); printf("g_stVpssFrame->stVFrame.u32Stride[0] = %d\n",g_stVpssFrame->stVFrame.u32Stride[0]); printf("g_stVpssFrame->stVFrame.u32Stride[1] = %d\n",g_stVpssFrame->stVFrame.u32Stride[1]); printf("g_stVpssFrame->stVFrame.enPixelFormat = %d\n",g_stVpssFrame->stVFrame.enPixelFormat); printf("g_stVpssFrame->stVFrame.u64pts = %d\n",g_stVpssFrame->stVFrame.u64pts); printf("g_stVpssFrame->stVFrame.u32TimeRef = %d\n",g_stVpssFrame->stVFrame.u32TimeRef); #endif memcpy(g_stDestFrame,g_stVpssFrame,sizeof(VIDEO_FRAME_INFO_S)); //reform_yuv(&g_stVpssFrame->stVFrame,g_stDestFrame,4); HI_MPI_VPSS_ReleaseChnFrame(VpssGrp,VpssChn,g_stVpssFrame); //vgs_main(&g_stVpssFrame->stVFrame,&g_stDestFrame->stVFrame,1920,1080); } else { SAMPLE_PRT("HI_MPI_VPSS_GetChnFrame failed with %#x\n", s32Ret); return -1; } s32Ret = VENC_SnapProcess(VencChn); if (HI_SUCCESS != s32Ret) { printf("%s: snap process failed!\n", __FUNCTION__); continue; } //HI_MPI_VPSS_ReleaseChnFrame(VpssGrp,VpssChn,g_stVpssFrame); printf("snap %d success!\n",count); count++; free(g_stVpssFrame); free(g_stDestFrame); } printf("please press ENTER to exit this sample\n"); getchar(); SAMPLE_COMM_VENC_StopGetStream(); #endif #if 0 /****************************************** step 6: stream venc process -- get stream, then save it to file. ******************************************/ i = 0; while ((ch = (char)getchar()) != 'q') { s32Ret = SAMPLE_COMM_VENC_SnapProcess(VencChn); if (HI_SUCCESS != s32Ret) { printf("%s: sanp process failed!\n", __FUNCTION__); break; } printf("snap %d success!\n", i); i++; } printf("please press ENTER to exit this sample\n"); getchar(); /****************************************** step 8: exit process ******************************************/ SAMPLE_COMM_VENC_StopGetStream(); #endif END_VENC_JPEG_5: VpssGrp = 0; VpssChn = 0; VencChn = 0; SAMPLE_COMM_VENC_UnBindVpss(VencChn, VpssGrp, VpssChn); SAMPLE_COMM_VENC_Stop(VencChn); END_VENC_JPEG_4: //vpss stop VpssGrp = 0; VpssChn = 0; SAMPLE_COMM_VPSS_DisableChn(VpssGrp, VpssChn); END_VENC_JPEG_3: //vpss stop SAMPLE_COMM_VI_UnBindVpss(stViConfig.enViMode); END_VENC_JPEG_2: //vpss stop SAMPLE_COMM_VPSS_StopGroup(VpssGrp); END_VENC_JPEG_1: //vi stop SAMPLE_COMM_VI_StopVi(&stViConfig); END_VENC_JPEG_0: //system exit SAMPLE_COMM_SYS_Exit(); HI_MPI_VB_DestroyPool(hPool); hPool = VB_INVALID_POOLID; return 0; } [/code]2017-09-208 1 11518
-
现在想把vi采集回来的图像(1920*1080)拼接成4k图像(3840*2160),我在网上找到有两种实现的方式。一种是虚拟vo的方式,可是在hi3516a的mpp文档里并没有说支持虚拟vo;另一种是采用vgs。 1.我现在尝试的的是vi->vpss1->vo->vpss2->venc的方式,可是vo->vpss2的绑定是成功的,但就是没有数据过来,有没有人遇到类似的情况?vo->vpss2的绑定方式如下: [code]stSrcChn.enModId = HI_ID_VOU; stSrcChn.s32DevId = VoLayer; stSrcChn.s32ChnId = VoChn; stDestChn.enModId = HI_ID_VPSS; stDestChn.s32DevId = VpssGrp; stDestChn.s32ChnId = VpssChn; s32Ret = HI_MPI_SYS_Bind(&stSrcChn, &stDestChn); if (s32Ret != HI_SUCCESS) { SAMPLE_PRT("failed with %#x!\n", s32Ret); return HI_FAILURE; }[/code] vi->vpss1->vo是正常的,两个vpss采用的是USER模式。 2.查了mpp的手册,venc的jpeg编码通道最大支持8192*8192,但怎么把1080的图片拼接成4k的图片呢?vgs的输入输出最大才支持2592*2592,请问有没遇到类似情况的朋友呀?2017-09-1711 1 4506
-
hi3516a的JPEG编码器是支持8192*8192分辨率输出的,请问在哪里配置呢?需要对sample_venc做什么改动呢?sample_venc输出的是1920*1080的图像,怎么在8192*8192里提取出1920*1080进行编码显示呢?2017-09-121 0 3017
-
1.首先,有海思的demo同时输出h64和aac。 2.在编码完成后对其进行封装,MP4文件只能有VLC打开,这是为什么呢?其他播放器就不行啦?? 3.有谁写过实时封装MP4 的代码?就是直接将码流写到MP4文件中,而不是等文件写完才开始封装。可以交流一下吗?2017-08-248 1 3325
-
有谁调试过hi3516a的音频模块吗?我存在的问题如下:1.使用的是海思自带的sample_aduio示例,adpcm,8k,16bit,master模式,单声道,1通道。2.管脚复用已配置好。3.使用外部acode,具体管脚也配置好了。4.外部acode是tlv320aic3104,海思自带的驱动可以正常使用。sample_audio运行后,ai可以运作起来,但是获取不了数据,cat /proc/umap/ai后的u31data0/1为随机数,出来的*.adpcm都是噪声。请问有人做到这种情况吗?2017-08-165 1 3723
-
本帖最后由 _沉思 于 2017-8-10 14:51 编辑 按照MPP的例程运行,使用的是内置编码器,出来的ADPCM文件全是噪音,请问各位高手是怎么回事呀? /work/nfs/Hi3516A_SDK_V1.0.5.0/mpp/sample/audio # ./sample_audio /************************************/ please choose the case which you want to run: 0: start AI to AO loop 1: send audio frame to AENC channel from AI, save them 2: read audio stream from file, decode and send AO 3: start AI(AEC/ANR/ALC process), then send to AO q: quit whole audio sample sample command:1 Ai(0,0) bind to AencChn:0 ok! open stream file:"audio_chn0.adpcm" for aenc ok bind adec:0 to ao(0,0) ok please press twice ENTER to exit this sample AI信息: [AI] Version: [Hi3516A_MPP_V1.0.5.0 B030 Release], Build Time: [Oct 29 2015, 20:51:06] -----AI DEV ATTR--------------------------------------------------------------------------------------------------------- AiDev WorkMod SampR BitWid ChnCnt ClkSel SoundMod PoiNum ExFlag FrmNum 0 i2s_mas 8kHZ 16bit 1 1 mono 320 0 30 -----AI DEV STATUS------------------------------------------------------------------------------------------------------- AiDev IntCnt fifoCnt buffInt FrmTime MaxFrmTime TranLen IsrTime MaxIsrTime CBPhy CBSize ROffSet WOffSet 0 2682 0 0 40000 40009 640 95 118 88094000 1280 0 0 -----AI DEV EXTEND STATUS------------------------------------------------------------------------------------------------ AiDev enTrack bMute Volume 0 0 0 0 -----AI CHN STATUS------------------------------------------------------------------------------------------------------- AiDev AiChn State Read Write BufFul UsrQueLost u32Data0 u32Data1 0 0 enable 0 0 0 0 c01f86db f1c7e001 -----AI CHN RESAMPLE STATUS---------------------------------------------------------------------------------------------- AiDev AiChn State bResmp PoiNum InSampR OutSampR 0 0 enable disable 0 (null) (null) -----AI CHN VQE STATUS0--------------------------------------------------------------------------------------------------- AiDev AiChn State bVqe workmod RATE PoiNum WrFile 0 0 enable disable comm (null) 0 disable -----AI CHN VQE STATUS1--------------------------------------------------------------------------------------------------- AiDev AiChn State bAnr bUsrmod NrIntensity NoiseDbThr SpProSwi bHdr bUsrmod MaxGain MinGain MicGainStp MicGain 0 0 enable disable auto 0 0 0 disable auto 0 0 0 0 -----AI CHN VQE STATUS2--------------------------------------------------------------------------------------------------- AiDev AiChn State bAgc bUsrmod NoiseSupSwi AdjustSpeed ImproveSNR MaxGain NoiseFloor OutputMode TargetLevel UseHPF 0 0 enable disable auto 0 0 0 0 -50 0 -40 0 -----AI CHN VQE STATUS3--------------------------------------------------------------------------------------------------- AiDev AiChn State bEq 100 200 250 350 500 800 1.2k 2.5k 4k 8k 0 0 enable disable 0 0 0 0 0 0 0 0 0 0 -----AI CHN VQE STATUS4--------------------------------------------------------------------------------------------------- AiDev AiChn State bHpf bUsrmod HpfFreq bRnr bUsrmod MaxNrLevel NsThresh NrMode GainVol 0 0 enable disable auto 0 disable auto 0 0 0 0 -----AI CHN VQE STATUS5--------------------------------------------------------------------------------------------------- AiDev AiChn State bAec bUsrmod CngMode DTHnlStQTh NrAlPsEngy NrClnSupEngy AecAo AecFail 0 0 enable disable auto close 0 0 0 (-1,-1) 0 -----AI CHN VQE STATUS6--------------------------------------------------------------------------------------------------- AiDev AiChn State bAec bUsrmod VcPrtctFrqL VcPrtctFrqL1 EcoBndLow EcoBndHgh EcoBndLow2 EcoBndHgh2 0 0 enable disable auto 0 0 0 0 0 0 -----AI CHN VQE STATUS7--------------------------------------------------------------------------------------------------- AiDev AiChn State bAec bUsrmod ERLBND[0] ERLBND[1] ERLBND[2] ERLBND[3] ERLBND[4] ERLBND[5] 0 0 enable disable auto 0 0 0 0 0 0 -----AI CHN VQE STATUS8--------------------------------------------------------------------------------------------------- AiDev AiChn State bAec bUsrmod ERL[0] ERL[1] ERL[2] ERL[3] ERL[4] ERL[5] ERL[6] 0 0 enable disable auto 0 0 0 0 0 0 0 AENC信息: [AENC] Version: [Hi3516A_MPP_V1.0.5.0 B030 Release], Build Time[Oct 29 2015, 20:51:06] -----AENC CHN ATTR-------------------------------------------------------------- ChnId PlType ADPCMType PoiNum BufSize G726Rate 0 adpcm DVI4 320 30 NULL -----AENC CHN STATUS------------------------------------------------------------ ChnId RcvFrm AiQueLost EncOk FrmErr BufFull GetStrm RlsStrm WtFile 0 5651 0 5651 0 0 5651 5651 disable 输出音频的效果图:2017-08-1012 0 3706

共6条