Output from v4l2-ctl -l:
> User Controls
>
> brightness 0x00980900 (int) : min=0 max=255 step=1 default=128 value=128 flags=slider
> contrast 0x00980901 (int) : min=0 max=255 step=1 default=128 value=128 flags=slider
> gamma 0x00980910 (int) : min=1 max=6 step=1 default=3 value=3 flags=slider
> gain_automatic 0x00980912 (bool) : default=1 value=1
> power_line_frequency 0x00980918 (menu) : min=0 max=2 default=0 value=0
> sharpness 0x0098091b (int) : min=0 max=3 step=1 default=2 value=2 flags=slider
>
> JPEG Compression Controls
>
> compression_quality 0x009d0903 (int) : min=50 max=87 step=1 default=75 value=75
Output from v4l2-ctl -D:
> Driver Info (not using libv4l2):
> Driver name : gspca_zc3xx
> Card type : USB Camera (041e:4051)
> Bus info : usb-0000:00:1d.3-1
> Driver version: 4.15.18
> Capabilities : 0x85200001
> Video Capture
> Read/Write
> Streaming
> Extended Pix Format
> Device Capabilities
> Device Caps : 0x05200001
> Video Capture
> Read/Write
> Streaming
> Extended Pix Format
Maybe "(not using libv4l2):" is my problem? Do I need a webcam app that specifically supports gspca?
Anyway, I added myself to the 'video' group and ran Cheese.
Since I was already in the terminal, I ran Cheese from the command line instead of from the GUI, like I usually do, and I was rewarded with some extra output (editing out some irrelevant lines):
> Xlib: extension "RANDR" missing on display ":0".
> (cheese:8484): cheese-CRITICAL **: 10:26:20.051: cheese_camera_device_get_name: assertion 'CHEESE_IS_CAMERA_DEVICE (device)' failed
Cheese still didn't find a video device, and I got the same results running it as root.