0

从 4.4.143 开始,我正在将uvc-gadget 的这个提交与 g_webcam 一起用于 Rockchip。此版本的 uvc-gadget 仅传输静态 mjpeg 图像(并且比早期的 uvc-gadget 源代码编写得更好)。

观察主机笔记本电脑上的有趣行为,它正在接收来自小工具的流guvcview:一段时间后,帧开始像旧电视一样闪烁(V4L2_CORE: (jpeg decoder) error while decoding frame),然后最终流在主机上中断:V4L2_CORE: Could not grab image (select timeout): Resource temporarily unavailable。在主机下方继续轮询([75290.124695] uvcvideo: uvc_v4l2_poll),主机的 dmesg 和设备上的 uvc-gadget 都没有错误。事实上,重新打开 guvcview 流后再次工作,无需 uvc-gadget 重启,但很快以同样的方式崩溃。

我正在使用库存的 USB3.0 电缆,既可用于流式传输也可用于为设备供电。AFAIK,没有任何噪声源可能导致这种物理层面的奇怪闪烁。

此外,我注意到较小的 USB 数据包大小从 1024 下降到 256,流存活的时间更长(高达 50,000 帧左右),但最终仍然崩溃。

知道这里发生了什么吗?

更新

在我从 MJPEG 压缩流切换到未压缩流后,不再闪烁,但几秒钟后仍然失去联系:V4L2_CORE: Could not grab image (select timeout): Resource temporarily unavailable

4

0 回答 0