Android系统中usb摄像头节点会因为摄像头所接的usb口不同或者usb设备识别顺序不一样而出现每次开机生成的video节点不一样的问题。由于客户app调用摄像头时,需要固定摄像头的节点。因此需要针对前面的情况做处理。
- --- a/kernel/drivers/media/v4l2-core/v4l2-dev.c
- +++ b/kernel/drivers/media/v4l2-core/v4l2-dev.c
- @@ -849,7 +849,16 @@ int __video_register_device(struct video_device *vdev, int type, int nr,
-
- /* Pick a device node number */
- mutex_lock(&videodev_lock);
- +
- + if(!strcmp(vdev->name, "ICT Camera")) {
- + nr = 0;//dev/video0
- + }else if(!strcmp(vdev->name, "A200 HD Video device")){
- + nr = 1;//dev/video1
- + }else if(!strcmp(vdev->name, "A200 3DSenor")){
- + nr = 2;//dev/video2
- + }
- nr = devnode_find(vdev, nr == -1 ? 0 : nr, minor_cnt);
- +
- if (nr == minor_cnt)
- nr = devnode_find(vdev, 0, minor_cnt);
- if (nr == minor_cnt) {