Page 1 of 1

Luckfox Pico RV1103 RV1106 6音频输入时提示音频输入缓存不足是什么情况

Posted: 2024-05-23 8:06
by shaw...
代码如下,在RK_MPI_AI_GetFrame中返回值为0xA00A800D,查阅手册发现是RK_ERR_AI_NOBUF,这是什么情况

Code: Select all

void*sendDataThread(void*ptr) {
   TEST_AI_CTX_S*params= reinterpret_cast<TEST_AI_CTX_S*>(ptr);
   RK_S32result=0;
   RK_S32s32MilliSec=10;
   AUDIO_FRAME_Sframe;
   if (params->dstFilePath) {
       AUDIO_SAVE_FILE_INFO_Ssave;
       save.bCfg=RK_TRUE;
       save.u32FileSize=1024;
       snprintf(save.aFilePath, sizeof(save.aFilePath), "%s", params->dstFilePath);
       snprintf(save.aFileName, sizeof(save.aFileName), "%s", "cap_out.pcm");
       RK_MPI_AI_SaveFile(params->s32DevId, params->s32ChnIndex, &save);
       //printf("save_file\r\n");
   }
   while (!gAiExit) {
       result=RK_MPI_AI_GetFrame(params->s32DevId, params->s32ChnIndex, &frame, RK_NULL, s32MilliSec);
       printf("result=%x\r\n",result);
       if (result==0) {
           void*data=RK_MPI_MB_Handle2VirAddr(frame.pMbBlk);
           RK_U32len=RK_MPI_MB_GetSize(frame.pMbBlk);
           RK_LOGV("data = %p, len = %d", data, len);
           RK_MPI_AI_ReleaseFrame(params->s32DevId, params->s32ChnIndex, &frame, RK_NULL);
       }
   }
   returnRK_NULL;
}

Re: Luckfox Pico RV1103 RV1106 6音频输入时提示音频输入缓存不足是什么情况

Posted: 2024-05-23 9:54
by Eng38
你好,是否修改过 RK_BOOTARGS_CMA_SIZE 的大小,请尝试增大后再进行测试:
企业微信截图_17164571532525.png

Re: Luckfox Pico RV1103 RV1106 6音频输入时提示音频输入缓存不足是什么情况

Posted: 2024-05-23 13:19
by shaw...
这个文件的路径是在哪里呢

Re: Luckfox Pico RV1103 RV1106 6音频输入时提示音频输入缓存不足是什么情况

Posted: 2024-05-24 1:13
by Eng38
SDK/project/cfg/BoardConfig_IPC目录下,根据版型修改对应的配置文件,重新选择版型进行编译

Code: Select all

./build.sh lunch
./build.sh

Re: Luckfox Pico RV1103 RV1106 6音频输入时提示音频输入缓存不足是什么情况

Posted: 2024-05-24 3:53
by shaw...
您好,按您说的改了空间大小,现在不会报之前那个错误了,十分感谢。但是会segment fault,看了一下可能的原因:
这是使用pdf里提供的采集指令:

rockit default level 4, can use export rt_log_level=x, x=0,1,2,3,4,5,6 change
(null) 00:11:27-130 {read_log_level :093} text is all=4
(null) 00:11:27-136 {read_log_level :095} module is all, log_level is 4
cmpi 00:11:27-145 {sys_runtime_librar:081} Failed to open /dev/mpi/valloc,please check insmod success or fail
(null) 00:11:27-151 {monitor_log_level :144} #Start [ 278.152437] vsys dev open 1monitor_log_leve3
l thread, arg:(nil)
cmpi 00:11:27-170 {main :1295} start running loop count = 0
RKAiChn 00:11:27-174 {setAedAttr :789} pstAedConfig = (nil), set mAedEnable = false
RKAiChn 00:11:27-183 {setBcdAttr :852} pstBcdConfig = (nil), set mBcdEnable = false
RKAiChn 00:11:27-193 {setBuzAttr :915} pstBuzConfig = (nil), set mBuzEnable = false
RKAiChn 00:11:27-203 {setGbsAttr :979} pstGbsConfig = (nil), set mGbsEnable = false
RKAiChn 00:11:27-213 {setVqeAttr :1045} pstVqeConfig = (nil), set mVqeEnable = false
RKAiChn 00:11:27-223 {prepareGraph :221} check enabled - vqe:0 aed:0 bcd:0 buz:0 gbs:0
RTFlowGraph 00:11:27-238 {setMaxInputStreamQ:287} ai: Illegal operation, no input port exists.
RKAiChn 00:11:27-356 {setVqeEnable :1019} not support veq algo
cmpi 00:11:27-359 {commandThread :829} test info : mute = 0, volume = 100
cmpi 00:11:27-365 {saveFile :708} create file(/tmp/cap_out.pcm) succeed

里面有一句open 1monitor_log_leve3
以下是我用的C语言来做的音频输入:
rockit default level 4, can use export rt_log_level=x, x=0,1,2,3,4,5,6 change
(null) 00:13:21-729 {read_log_level :093} text is all=4
(null) 00:13:21-736 {read_log_level :095} module is all, log_level is 4
cmpi 00:13:21-744 {sys_runtime_librar:081} Failed to open /dev/mpi/valloc,please check insmod success or fail
(null) 00:13:21-748 {monitor_log_level :144} #Start monitor_log_leve[ 687.162541] vsys dev opeln thread, arg:13(nil)

cmpi 00:13:21-771 {main :684} start running loop count = 0
RKAiChn 00:13:21-773 {setAedAttr :789} pstAedConfig = (nil), set mAedEnable = false
RKAiChn 00:13:21-783 {setBcdAttr :852} pstBcdConfig = (nil), set mBcdEnable = false
RKAiChn 00:13:21-793 {setBuzAttr :915} pstBuzConfig = (nil), set mBuzEnable = false
RKAiChn 00:13:21-803 {setGbsAttr :979} pstGbsConfig = (nil), set mGbsEnable = false
RKAiChn 00:13:21-813 {setVqeAttr :1045} pstVqeConfig = (nil), set mVqeEnable = false
RKAiChn 00:13:21-823 {prepareGraph :221} check enabled - vqe:0 aed:0 bcd:0 buz:0 gbs:0
RTFlowGraph 00:13:21-837 {setMaxInputStreamQ:287} ai: Illegal operation, no input port exists.
RKAiChn 00:13:21-956 {setVqeEnable :1019} not support veq algo
check_point_1
cmpi 00:13:21-960 {saveFile :708} create file(/tmp/cap_out.pcm) succeed
Segmentation fault (core dumped)
里面有一句vsys dev opeln ,想问一下这两种有什么区别,可能导致下面segment fault的问题吗

Re: Luckfox Pico RV1103 RV1106 6音频输入时提示音频输入缓存不足是什么情况

Posted: 2024-05-24 6:45
by Eng38
您好,{monitor_log_level :144} 后的提示不同,可能是输出先后顺序不同导致,录制的音频正常即可。导致段错误的原因可能有多种,建议在代码中增加一些调试信息或使用gdb调试工具,帮助确认每一步操作是否成功。

Re: Luckfox Pico RV1103 RV1106 6音频输入时提示音频输入缓存不足是什么情况

Posted: 2024-05-24 14:17
by shaw...
今天晚上又试了一下又开始报RK_ERR_AI_NOBUF了,重新装系统也无法解决,请问一下这个问题还可能由其他原因造成吗

Re: Luckfox Pico RV1103 RV1106 6音频输入时提示音频输入缓存不足是什么情况

Posted: 2024-05-25 2:41
by Eng38
根据手册,RK_ERR_AI_NOBUF 是由于音频输入缓存不足导致,请继续增大 RK_BOOTARGS_CMA_SIZE,注意确保正确烧录镜像,或先烧录网盘提供的镜像进行测试。
企业微信截图_17166045648234.png