_沉思
易百纳技术社区
易百纳技术社区
0 访问量
0 原创专栏
0 资料
0 粉丝
个性签名:此E友还没有留下个性签名哦~
加入易百纳时间:2017-07-17

个人成就

易百纳技术社区 共获得 0 个点赞
易百纳技术社区 共获得 4 个收藏
易百纳技术社区 共获得 45 次评论/回复

个人勋章

暂无勋章
分类专栏

Ta擅长的领域

暂无
  • 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-20
    8 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-17
    11 1 4506
  • hi3516a的JPEG编码器是支持8192*8192分辨率输出的,请问在哪里配置呢?需要对sample_venc做什么改动呢?sample_venc输出的是1920*1080的图像,怎么在8192*8192里提取出1920*1080进行编码显示呢?
    2017-09-12
    1 0 3017
  • 1.首先,有海思的demo同时输出h64和aac。 2.在编码完成后对其进行封装,MP4文件只能有VLC打开,这是为什么呢?其他播放器就不行啦?? 3.有谁写过实时封装MP4 的代码?就是直接将码流写到MP4文件中,而不是等文件写完才开始封装。可以交流一下吗?
    2017-08-24
    8 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-16
    5 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-10
    12 0 3706
易百纳技术社区
共6条
易百纳技术社区