关于rkmpp使用,正常退出异常
您好,由于不知道您运行的上下文环境,无法推测您遇到段错误的原因,我测试了 https://github.com/luckfox-eng29/luckfo ... tsp_opencv 把while函数注释掉延时10s后退出,相关日志如下: 如果您在程序编译阶段添加了-g标志,可以在luckfox-pico 根文件系统的/mnt/sdcard中找到程序运行奔溃后生成的core-xxx 文件,可以使用gdb定位出现段错误的具体原因。
看您的日志似乎也是有rockit的报错日志,不知道是否是正常的。您测试是否可以正常退出呢,根据您的日志最后一段没截全我无法判断。您可以测试一下这个代码吗?在luckfox-pico/media/samples/simple_test/simple_vi_venc.c。看这个是否可以正常退出
上面的日志就是在while循环结束后输出的所有内容,相比您的日志少了段错误的打印。
您指的报错如果时指mpp_chan和RKSockServer的话,mpp库是用来作编码的库,它被集成在VENC中,当作为编码使用的VENC资源被释放时mpp调用的context也被释放了就会提示找不到,这个问题目前没有发现会造成什么资源损失,瑞芯微官方并没有开源VENC和MPP的相关源码所以并不知具体细节。
RKSockServer 提示的accept failed 也是类似的原因。Socket虽然常用于网络中通信但是在内核和应用中也用于信息的传递,资源释放后客户端被销毁。作为服务器端的组件找不到connect的客户端所以提示accept failed。同样是缺少相关的源码资料,目前也不清楚具体细节。
这两处在其他瑞芯微平台使用media库时也会出现,目前还没有发现因此引起的不良影响,可以视作正常的打印内容。
simple_vi_venc.c我们会在测试后第一时间告知您结果。
目前我测试了luckfox-pico/media/samples/simple_test/simple_vi_venc.c,在while循环中等待10后break,输出的日志为 我注意到这个程序在获取VENC编码输出图像是在 GetMediaBuffer0 线程中进行的,如果是验证资源释放是否正确这部分是不需要运行的,所以我注释掉这部分的相关代码Crocodile wrote: ↑2024-04-22 9:32上面的日志就是在while循环结束后输出的所有内容,相比您的日志少了段错误的打印。
您指的报错如果时指mpp_chan和RKSockServer的话,mpp库是用来作编码的库,它被集成在VENC中,当作为编码使用的VENC资源被释放时mpp调用的context也被释放了就会提示找不到,这个问题目前没有发现会造成什么资源损失,瑞芯微官方并没有开源VENC和MPP的相关源码所以并不知具体细节。
RKSockServer 提示的accept failed 也是类似的原因。Socket虽然常用于网络中通信但是在内核和应用中也用于信息的传递,资源释放后客户端被销毁。作为服务器端的组件找不到connect的客户端所以提示accept failed。同样是缺少相关的源码资料,目前也不清楚具体细节。
这两处在其他瑞芯微平台使用media库时也会出现,目前还没有发现因此引起的不良影响,可以视作正常的打印内容。
simple_vi_venc.c我们会在测试后第一时间告知您结果。
Code: Select all
//pthread_t main_thread;
//pthread_create(&main_thread, NULL, GetMediaBuffer0, NULL);
//pthread_join(&main_thread, NULL);
感谢指导,通过gdb定位,确实是我代码问题。