本文介绍了打开多个 v4l2 源时 VIDIOC_REQBUFS 错误 12的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在 Nvidia TX1 开发套件上使用 8 通道基于 PCI 的帧采集器.我正在使用 这个驱动程序.我可以使用 mplayer、streamer 或 VLC 轻松播放多达 3/4 个 v4l2 摄像机源,但是当我开始播放第 5 个摄像机源时,我总是遇到内存分配错误,无论我使用什么软件来播放它.我还编写了自己的程序来捕获和显示 v4l2 流,但我遇到了同样的问题.确切的错误是 ioctl 命令给出的 error 12:

I'm using an 8-channel PCI-based framegrabber on Nvidia TX1 dev kit. I'm using this driver along with it. I can play up to 3/4 v4l2 camera feeds comfortably using mplayer, streamer or VLC but I always get a memory allocation error when I start playing the 5th camera feed, irrespective of the software I use to play it. I also wrote my own program to capture and display v4l2 streams but I'm getting the same problem. The exact error is an error 12 given by the ioctl command:

ioctl(fd, VIDIOC_REQBUFS, &req)

我已经在一台独立的 PC 上试用了这个帧抓取器和设备,它运行得非常好.

I have tried this framegrabber and device on a standalone PC and it works perfectly fine.

任何建议都会有所帮助.

Any suggestions would be helpful.

推荐答案

我在构建内核时将 CONFIG_CMA_SIZE_MBYTES 变量从 16 更改为 32 让它运行起来.

Got it running my changing the CONFIG_CMA_SIZE_MBYTES variable from 16 to 32 while building the kernel.

这篇关于打开多个 v4l2 源时 VIDIOC_REQBUFS 错误 12的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-18 13:04