将Android 8.0的项目移植到Android 11 发现的问题,插入USB Camera 会生成两个video节点,这对应用层的处理会有些影响,查阅文献找到这样的说法
在运行Linux-4.15之后内核的主机上,插入一个 usb 摄像头,会出现两个 /dev/video*,这不是 bug,而是V4L2的特性。
解决办法:
kernel/drivers/media/usb/uvc/uvc_driver.c
注释掉 //uvc_meta_register(stream);
diff --git a/drivers/media/usb/uvc/uvc_driver.c b/drivers/media/usb/uvc/uvc_driver.c
index 0842a47c6..9684dd07f 100644
--- a/drivers/media/usb/uvc/uvc_driver.c
+++ b/drivers/media/usb/uvc/uvc_driver.c
@@ -2069,7 +2069,7 @@ static int uvc_register_terms(struct uvc_device *dev,
/* Register a metadata node, but ignore a possible failure,
* complete registration of video nodes anyway.
*/
- uvc_meta_register(stream);
+ //uvc_meta_register(stream);
term->vdev = &stream->vdev;
}
目前测试没有发现问题。