Duplicate devices listed in preferences
This sounds similar to #77 (closed) but I've got a newer version of Cheese than mentioned in that bug and it's not clear what fixed the reporter's problem.
Cheese shows two entries in its device list for each webcam device on my system:
Here are my webcams (the Microsoft webcam doesn't appear in my screenshot because it wasn't plugged in when the screenshot was taken. But if I launch Cheese while it's connected, I see two entries for that webcam as well.
Here is what v4l2 says is connected to my system:
$ v4l2-ctl --list-devices
TOSHIBA Web Camera - HD: TOSHIB (usb-0000:00:14.0-6):
/dev/video0
/dev/video1
/dev/video2
/dev/video3
Microsoft LifeCam VX-5000: Micr (usb-0000:0b:00.0-2.3):
/dev/video7
/dev/video8
Here's the info about these devices:
$ parallel -k -v --tag -r v4l2-ctl -d {} --all ::: /dev/video{0,1,2,3,7,8}
v4l2-ctl -d /dev/video0 --all
/dev/video0 Driver Info:
/dev/video0 Driver name : uvcvideo
/dev/video0 Card type : TOSHIBA Web Camera - HD: TOSHIB
/dev/video0 Bus info : usb-0000:00:14.0-6
/dev/video0 Driver version : 5.8.10
/dev/video0 Capabilities : 0x84a00001
/dev/video0 Video Capture
/dev/video0 Metadata Capture
/dev/video0 Streaming
/dev/video0 Extended Pix Format
/dev/video0 Device Capabilities
/dev/video0 Device Caps : 0x04200001
/dev/video0 Video Capture
/dev/video0 Streaming
/dev/video0 Extended Pix Format
/dev/video0 Priority: 2
/dev/video0 Video input : 0 (Camera 1: ok)
/dev/video0 Format Video Capture:
/dev/video0 Width/Height : 640/480
/dev/video0 Pixel Format : 'YUYV' (YUYV 4:2:2)
/dev/video0 Field : None
/dev/video0 Bytes per Line : 1280
/dev/video0 Size Image : 614400
/dev/video0 Colorspace : sRGB
/dev/video0 Transfer Function : Default (maps to sRGB)
/dev/video0 YCbCr/HSV Encoding: Default (maps to ITU-R 601)
/dev/video0 Quantization : Default (maps to Limited Range)
/dev/video0 Flags :
/dev/video0 Crop Capability Video Capture:
/dev/video0 Bounds : Left 0, Top 0, Width 640, Height 480
/dev/video0 Default : Left 0, Top 0, Width 640, Height 480
/dev/video0 Pixel Aspect: 1/1
/dev/video0 Selection Video Capture: crop_default, Left 0, Top 0, Width 640, Height 480, Flags:
/dev/video0 Selection Video Capture: crop_bounds, Left 0, Top 0, Width 640, Height 480, Flags:
/dev/video0 Streaming Parameters Video Capture:
/dev/video0 Capabilities : timeperframe
/dev/video0 Frames per second: 30.000 (30/1)
/dev/video0 Read buffers : 0
/dev/video0 brightness 0x00980900 (int) : min=0 max=100 step=1 default=50 value=50
/dev/video0 contrast 0x00980901 (int) : min=0 max=100 step=1 default=32 value=32
/dev/video0 saturation 0x00980902 (int) : min=0 max=100 step=1 default=32 value=32
/dev/video0 hue 0x00980903 (int) : min=-4 max=4 step=1 default=0 value=0
/dev/video0 white_balance_temperature_auto 0x0098090c (bool) : default=1 value=1
/dev/video0 gamma 0x00980910 (int) : min=1 max=16 step=1 default=8 value=8
/dev/video0 power_line_frequency 0x00980918 (menu) : min=0 max=2 default=1 value=1
/dev/video0 0: Disabled
/dev/video0 1: 50 Hz
/dev/video0 2: 60 Hz
/dev/video0 white_balance_temperature 0x0098091a (int) : min=2800 max=6500 step=10 default=5000 value=5000 flags=inactive
/dev/video0 sharpness 0x0098091b (int) : min=0 max=20 step=1 default=4 value=4
/dev/video0 backlight_compensation 0x0098091c (int) : min=0 max=1 step=1 default=0 value=0
/dev/video0 exposure_auto 0x009a0901 (menu) : min=0 max=3 default=3 value=3
/dev/video0 1: Manual Mode
/dev/video0 3: Aperture Priority Mode
/dev/video0 exposure_auto_priority 0x009a0903 (bool) : default=0 value=1
v4l2-ctl -d /dev/video1 --all
/dev/video1 Driver Info:
/dev/video1 Driver name : uvcvideo
/dev/video1 Card type : TOSHIBA Web Camera - HD: TOSHIB
/dev/video1 Bus info : usb-0000:00:14.0-6
/dev/video1 Driver version : 5.8.10
/dev/video1 Capabilities : 0x84a00001
/dev/video1 Video Capture
/dev/video1 Metadata Capture
/dev/video1 Streaming
/dev/video1 Extended Pix Format
/dev/video1 Device Capabilities
/dev/video1 Device Caps : 0x04a00000
/dev/video1 Metadata Capture
/dev/video1 Streaming
/dev/video1 Extended Pix Format
/dev/video1 Priority: 2
/dev/video1 Format Metadata Capture:
/dev/video1 Sample Format : 'UVCH' (UVC Payload Header Metadata)
/dev/video1 Buffer Size : 1024
v4l2-ctl -d /dev/video2 --all
/dev/video2 Driver Info:
/dev/video2 Driver name : uvcvideo
/dev/video2 Card type : TOSHIBA Web Camera - HD: TOSHIB
/dev/video2 Bus info : usb-0000:00:14.0-6
/dev/video2 Driver version : 5.8.10
/dev/video2 Capabilities : 0x84a00001
/dev/video2 Video Capture
/dev/video2 Metadata Capture
/dev/video2 Streaming
/dev/video2 Extended Pix Format
/dev/video2 Device Capabilities
/dev/video2 Device Caps : 0x04200001
/dev/video2 Video Capture
/dev/video2 Streaming
/dev/video2 Extended Pix Format
/dev/video2 Priority: 2
/dev/video2 Video input : 0 (Camera 11: ok)
/dev/video2 Format Video Capture:
/dev/video2 Width/Height : 340/340
/dev/video2 Pixel Format : 'YUYV' (YUYV 4:2:2)
/dev/video2 Field : None
/dev/video2 Bytes per Line : 680
/dev/video2 Size Image : 231200
/dev/video2 Colorspace : sRGB
/dev/video2 Transfer Function : Default (maps to sRGB)
/dev/video2 YCbCr/HSV Encoding: Default (maps to ITU-R 601)
/dev/video2 Quantization : Default (maps to Limited Range)
/dev/video2 Flags :
/dev/video2 Crop Capability Video Capture:
/dev/video2 Bounds : Left 0, Top 0, Width 340, Height 340
/dev/video2 Default : Left 0, Top 0, Width 340, Height 340
/dev/video2 Pixel Aspect: 1/1
/dev/video2 Selection Video Capture: crop_default, Left 0, Top 0, Width 340, Height 340, Flags:
/dev/video2 Selection Video Capture: crop_bounds, Left 0, Top 0, Width 340, Height 340, Flags:
/dev/video2 Streaming Parameters Video Capture:
/dev/video2 Capabilities : timeperframe
/dev/video2 Frames per second: 30.000 (30/1)
/dev/video2 Read buffers : 0
v4l2-ctl -d /dev/video3 --all
/dev/video3 Driver Info:
/dev/video3 Driver name : uvcvideo
/dev/video3 Card type : TOSHIBA Web Camera - HD: TOSHIB
/dev/video3 Bus info : usb-0000:00:14.0-6
/dev/video3 Driver version : 5.8.10
/dev/video3 Capabilities : 0x84a00001
/dev/video3 Video Capture
/dev/video3 Metadata Capture
/dev/video3 Streaming
/dev/video3 Extended Pix Format
/dev/video3 Device Capabilities
/dev/video3 Device Caps : 0x04a00000
/dev/video3 Metadata Capture
/dev/video3 Streaming
/dev/video3 Extended Pix Format
/dev/video3 Priority: 2
/dev/video3 Format Metadata Capture:
/dev/video3 Sample Format : 'UVCH' (UVC Payload Header Metadata)
/dev/video3 Buffer Size : 1024
v4l2-ctl -d /dev/video7 --all
/dev/video7 Driver Info:
/dev/video7 Driver name : uvcvideo
/dev/video7 Card type : Microsoft LifeCam VX-5000: Micr
/dev/video7 Bus info : usb-0000:0b:00.0-2.3
/dev/video7 Driver version : 5.8.10
/dev/video7 Capabilities : 0x84a00001
/dev/video7 Video Capture
/dev/video7 Metadata Capture
/dev/video7 Streaming
/dev/video7 Extended Pix Format
/dev/video7 Device Capabilities
/dev/video7 Device Caps : 0x04200001
/dev/video7 Video Capture
/dev/video7 Streaming
/dev/video7 Extended Pix Format
/dev/video7 Priority: 2
/dev/video7 Video input : 0 (Camera 1: ok)
/dev/video7 Format Video Capture:
/dev/video7 Width/Height : 640/480
/dev/video7 Pixel Format : 'YUYV' (YUYV 4:2:2)
/dev/video7 Field : None
/dev/video7 Bytes per Line : 1280
/dev/video7 Size Image : 614400
/dev/video7 Colorspace : Default
/dev/video7 Transfer Function : Default (maps to Rec. 709)
/dev/video7 YCbCr/HSV Encoding: Default (maps to ITU-R 601)
/dev/video7 Quantization : Default (maps to Limited Range)
/dev/video7 Flags :
/dev/video7 Crop Capability Video Capture:
/dev/video7 Bounds : Left 0, Top 0, Width 640, Height 480
/dev/video7 Default : Left 0, Top 0, Width 640, Height 480
/dev/video7 Pixel Aspect: 1/1
/dev/video7 Selection Video Capture: crop_default, Left 0, Top 0, Width 640, Height 480, Flags:
/dev/video7 Selection Video Capture: crop_bounds, Left 0, Top 0, Width 640, Height 480, Flags:
/dev/video7 Streaming Parameters Video Capture:
/dev/video7 Capabilities : timeperframe
/dev/video7 Frames per second: 30.000 (30/1)
/dev/video7 Read buffers : 0
/dev/video7 brightness 0x00980900 (int) : min=-16 max=16 step=1 default=0 value=0
/dev/video7 contrast 0x00980901 (int) : min=1 max=32 step=1 default=15 value=15
/dev/video7 saturation 0x00980902 (int) : min=0 max=60 step=1 default=14 value=14
/dev/video7 hue 0x00980903 (int) : min=-45 max=45 step=1 default=0 value=0
/dev/video7 white_balance_temperature_auto 0x0098090c (bool) : default=1 value=1
/dev/video7 gamma 0x00980910 (int) : min=100 max=200 step=10 default=150 value=150
/dev/video7 power_line_frequency 0x00980918 (menu) : min=0 max=2 default=1 value=1
/dev/video7 0: Disabled
/dev/video7 1: 50 Hz
/dev/video7 2: 60 Hz
/dev/video7 white_balance_temperature 0x0098091a (int) : min=2800 max=6500 step=1850 default=4650 value=2800 flags=inactive
/dev/video7 sharpness 0x0098091b (int) : min=0 max=15 step=1 default=3 value=3
/dev/video7 backlight_compensation 0x0098091c (int) : min=0 max=1 step=1 default=0 value=0
/dev/video7 exposure_auto 0x009a0901 (menu) : min=0 max=3 default=3 value=3
/dev/video7 1: Manual Mode
/dev/video7 3: Aperture Priority Mode
/dev/video7 exposure_absolute 0x009a0902 (int) : min=2 max=20 step=2 default=4 value=4 flags=inactive
/dev/video7 exposure_auto_priority 0x009a0903 (bool) : default=0 value=0
/dev/video7 pan_absolute 0x009a0908 (int) : min=-36000 max=36000 step=7200 default=0 value=0
/dev/video7 tilt_absolute 0x009a0909 (int) : min=-36000 max=36000 step=7200 default=0 value=0
/dev/video7 zoom_absolute 0x009a090d (int) : min=0 max=10 step=1 default=0 value=0
/dev/video7 privacy 0x009a0910 (bool) : default=0 value=0
v4l2-ctl -d /dev/video8 --all
/dev/video8 Driver Info:
/dev/video8 Driver name : uvcvideo
/dev/video8 Card type : Microsoft LifeCam VX-5000: Micr
/dev/video8 Bus info : usb-0000:0b:00.0-2.3
/dev/video8 Driver version : 5.8.10
/dev/video8 Capabilities : 0x84a00001
/dev/video8 Video Capture
/dev/video8 Metadata Capture
/dev/video8 Streaming
/dev/video8 Extended Pix Format
/dev/video8 Device Capabilities
/dev/video8 Device Caps : 0x04a00000
/dev/video8 Metadata Capture
/dev/video8 Streaming
/dev/video8 Extended Pix Format
/dev/video8 Priority: 2
/dev/video8 Format Metadata Capture:
/dev/video8 Sample Format : 'UVCH' (UVC Payload Header Metadata)
/dev/video8 Buffer Size : 1024
NB, the laptop's internal webcam does show up as two video input devices. video2 and video3 correspond to some sort of 3d infra red camera for doing Windows Hello authentication. It arguably shouldn't show up in Cheese at all since it's not a 'normal' web cam that you'd actually want to see the output of but I'll file a separate bug for that.
In case it's relevant, both web cams support multiple capture formats:
$ v4l2-ctl -d 0 --list-formats-ext
ioctl: VIDIOC_ENUM_FMT
Type: Video Capture
[0]: 'YUYV' (YUYV 4:2:2)
Size: Discrete 640x480
Interval: Discrete 0.033s (30.000 fps)
Size: Discrete 640x360
Interval: Discrete 0.033s (30.000 fps)
Size: Discrete 424x240
Interval: Discrete 0.033s (30.000 fps)
Size: Discrete 320x240
Interval: Discrete 0.033s (30.000 fps)
Size: Discrete 320x180
Interval: Discrete 0.033s (30.000 fps)
Size: Discrete 848x480
Interval: Discrete 0.050s (20.000 fps)
Size: Discrete 960x540
Interval: Discrete 0.100s (10.000 fps)
Size: Discrete 1280x720
Interval: Discrete 0.100s (10.000 fps)
[1]: 'MJPG' (Motion-JPEG, compressed)
Size: Discrete 640x480
Interval: Discrete 0.033s (30.000 fps)
Size: Discrete 640x360
Interval: Discrete 0.033s (30.000 fps)
Size: Discrete 424x240
Interval: Discrete 0.033s (30.000 fps)
Size: Discrete 320x240
Interval: Discrete 0.033s (30.000 fps)
Size: Discrete 320x180
Interval: Discrete 0.033s (30.000 fps)
Size: Discrete 848x480
Interval: Discrete 0.033s (30.000 fps)
Size: Discrete 960x540
Interval: Discrete 0.033s (30.000 fps)
Size: Discrete 1280x720
Interval: Discrete 0.033s (30.000 fps)
$ v4l2-ctl -d 7 --list-formats-ext
ioctl: VIDIOC_ENUM_FMT
Type: Video Capture
[0]: 'YUYV' (YUYV 4:2:2)
Size: Discrete 640x480
Interval: Discrete 0.067s (15.000 fps)
Size: Discrete 352x288
Interval: Discrete 0.033s (30.000 fps)
Size: Discrete 320x240
Interval: Discrete 0.033s (30.000 fps)
Size: Discrete 176x144
Interval: Discrete 0.033s (30.000 fps)
Size: Discrete 160x120
Interval: Discrete 0.033s (30.000 fps)
[1]: 'MJPG' (Motion-JPEG, compressed)
Size: Discrete 640x480
Interval: Discrete 0.033s (30.000 fps)
Size: Discrete 352x288
Interval: Discrete 0.033s (30.000 fps)
Size: Discrete 320x240
Interval: Discrete 0.033s (30.000 fps)
Size: Discrete 176x144
Interval: Discrete 0.033s (30.000 fps)
Size: Discrete 160x120
Interval: Discrete 0.033s (30.000 fps)
... but I expect not since there is only one capture format supported for the infra red camera:
$ v4l2-ctl -d 2 --list-formats-ext
ioctl: VIDIOC_ENUM_FMT
Type: Video Capture
[0]: 'YUYV' (YUYV 4:2:2)
Size: Discrete 340x340
Interval: Discrete 0.033s (30.000 fps)
Maybe it's as simple as Cheese showing the second metadata video device for each webcam rather than hiding it?
https://unix.stackexchange.com/a/539573
Notice in the above output that each even-numbered device that supports Video Capture
has a corresponding odd-numbered device that supports Metadata Capture
instead. If that's the reason then I think Cheese should be hiding these devices in the device chooser.
This is with Cheese 3.38.0.