Skip to content

v4l2compress Only Functions with Very Verbose Output Option -vv #53

@s-fairchild

Description

@s-fairchild

Describe the bug

v4l2compress will only function if -vv options are supplied.

  • I've tried adding -r -w, -r does remove some permission denied errors, but the results are the same
  • Using -v results in the same failure
  • Compression succeeds only when -vv is supplied
    • If -r or -w are supplied with -vv, the failure still occurs

I find it odd that extra verbose logging somehow causes v4l2compress to work, but it does. I'm assuming it's processing the input device differently with this extra verbose output?

To Reproduce
Steps to reproduce the behavior:

  1. Install archlinuxarm arm64 on a Raspberry Pi 5
  2. Install upstream arm64 kernel packages linux-rpi linux-rpi-headers
  3. Install other dependencies: pacman -S v4l2loopback-utils v4l2loopback-dkms podman
  4. load the v4l2loopback driver. I loaded it with these options (although the options made no difference in behavior)
    • modprobe v4l2loopback video_nr=10 card_label="v4l2compress0" max_width=1280 max_height=720
    • The loopback device was created:
    [root@rpi5-0 ~]# v4l2loopback-ctl list
    OUTPUT       	CAPTURE      	NAME
    /dev/video10 	/dev/video10 	v4l2compress0
  5. Run the various examples provided below (note that it only works with -vv)
  • Fails with no -r, -w, -v or -vv
[root@rpi5-0 ~]# podman run --privileged --cap-add=ALL -it --rm --device=/dev/video0:/dev/video0:rwm --device=/dev/video10:/dev/video10:rwm docker.io/mpromonet/v4l2tools:latest -fH264 /dev/video0 /dev/video10
log level:500
mmap: Permission denied
mmap: Permission denied
mmap: Permission denied
mmap: Permission denied
mmap: Permission denied
mmap: Permission denied
mmap: Permission denied
mmap: Permission denied
mmap: Permission denied
mmap: Permission denied
munmap: Invalid argument
munmap: Invalid argument
munmap: Invalid argument
munmap: Invalid argument
munmap: Invalid argument
munmap: Invalid argument
munmap: Invalid argument
munmap: Invalid argument
munmap: Invalid argument
munmap: Invalid argument

[WARN]   (v4l2compress.cpp:215)        	Cannot create V4L2 capture interface for device:/dev/video0
  • Fails with -v
[root@rpi5-0 ~]# podman run --privileged --cap-add=ALL -it --rm --device=/dev/video0:/dev/video0:rwm --device=/dev/video10:/dev/video10:rwm docker.io/mpromonet/v4l2tools:latest -v -fH264 /dev/video0 /dev/video10
log level:600

[INFO]   (V4l2Device.cpp:133)          	driver:uvcvideo capabilities:84a00001 mandatory:4000001
[INFO]   (V4l2Device.cpp:225)          	/dev/video0:MJPG size:1280x720 bufferSize:1843789
[INFO]   (V4l2MmapDevice.cpp:49)       	Device /dev/video0
[INFO]   (V4l2MmapDevice.cpp:73)       	Device /dev/video0 nb buffer:10
mmap: Permission denied
[INFO]   (V4l2MmapDevice.cpp:92)       	Device /dev/video0 buffer idx:0 size:1843789 offset:0
mmap: Permission denied
[INFO]   (V4l2MmapDevice.cpp:92)       	Device /dev/video0 buffer idx:1 size:1843789 offset:32768
mmap: Permission denied
[INFO]   (V4l2MmapDevice.cpp:92)       	Device /dev/video0 buffer idx:2 size:1843789 offset:65536
mmap: Permission denied
[INFO]   (V4l2MmapDevice.cpp:92)       	Device /dev/video0 buffer idx:3 size:1843789 offset:98304
mmap: Permission denied
[INFO]   (V4l2MmapDevice.cpp:92)       	Device /dev/video0 buffer idx:4 size:1843789 offset:131072
mmap: Permission denied
[INFO]   (V4l2MmapDevice.cpp:92)       	Device /dev/video0 buffer idx:5 size:1843789 offset:163840
mmap: Permission denied
[INFO]   (V4l2MmapDevice.cpp:92)       	Device /dev/video0 buffer idx:6 size:1843789 offset:196608
mmap: Permission denied
[INFO]   (V4l2MmapDevice.cpp:92)       	Device /dev/video0 buffer idx:7 size:1843789 offset:229376
mmap: Permission denied
[INFO]   (V4l2MmapDevice.cpp:92)       	Device /dev/video0 buffer idx:8 size:1843789 offset:262144
mmap: Permission denied
[INFO]   (V4l2MmapDevice.cpp:92)       	Device /dev/video0 buffer idx:9 size:1843789 offset:294912
munmap: Invalid argument
munmap: Invalid argument
munmap: Invalid argument
munmap: Invalid argument
munmap: Invalid argument
munmap: Invalid argument
munmap: Invalid argument
munmap: Invalid argument
munmap: Invalid argument
munmap: Invalid argument
[INFO]   (V4l2MmapDevice.cpp:141)      	Device /dev/video0
[WARN]   (v4l2compress.cpp:215)        	Cannot create V4L2 capture interface for device:/dev/video0
  • Fails with -r (although no invalid argument errors)
[root@rpi5-0 ~]# podman run --privileged --cap-add=ALL -it --rm --device=/dev/video0:/dev/video0:rwm --device=/dev/video10:/dev/video10:rwm docker.io/mpromonet/v4l2tools:latest -r -fH264 /dev/video0 /dev/video10
log level:500

[ERROR]  (V4l2Device.cpp:145)          	Mandatory capability not available for device:/dev/video0
[ERROR]  (V4l2Device.cpp:83)           	Cannot init device:/dev/video0
[WARN]   (v4l2compress.cpp:215)        	Cannot create V4L2 capture interface for device:/dev/video0
  • Fails with -r -w
[root@rpi5-0 ~]# podman run --privileged --cap-add=ALL -it --rm --device=/dev/video0:/dev/video0:rwm --device=/dev/video10:/dev/video10:rwm docker.io/mpromonet/v4l2tools:latest -r -w -fH264 /dev/video0 /dev/video10
log level:500

[ERROR]  (V4l2Device.cpp:145)          	Mandatory capability not available for device:/dev/video0
[ERROR]  (V4l2Device.cpp:83)           	Cannot init device:/dev/video0
[WARN]   (v4l2compress.cpp:215)        	Cannot create V4L2 capture interface for device:/dev/video0
  • Fails with only -w
[root@rpi5-0 ~]# podman run --privileged --cap-add=ALL -it --rm --device=/dev/video0:/dev/video0:rwm --device=/dev/video10:/dev/video10:rwm docker.io/mpromonet/v4l2tools:latest -w -fH264 /dev/video0 /dev/video10
log level:500
mmap: Permission denied
mmap: Permission denied
mmap: Permission denied
mmap: Permission denied
mmap: Permission denied
mmap: Permission denied
mmap: Permission denied
mmap: Permission denied
mmap: Permission denied
mmap: Permission denied
munmap: Invalid argument
munmap: Invalid argument
munmap: Invalid argument
munmap: Invalid argument
munmap: Invalid argument
munmap: Invalid argument
munmap: Invalid argument
munmap: Invalid argument
munmap: Invalid argument
munmap: Invalid argument

[WARN]   (v4l2compress.cpp:215)        	Cannot create V4L2 capture interface for device:/dev/video0
  • Fails with -r -w
[root@rpi5-0 ~]# podman run --privileged --cap-add=ALL -it --rm --device=/dev/video0:/dev/video0:rwm --device=/dev/video10:/dev/video10:rwm docker.io/mpromonet/v4l2tools:latest -r -w -fH264 /dev/video0 /dev/video10
log level:500

[ERROR]  (V4l2Device.cpp:145)          	Mandatory capability not available for device:/dev/video0
[ERROR]  (V4l2Device.cpp:83)           	Cannot init device:/dev/video0
[WARN]   (v4l2compress.cpp:215)        	Cannot create V4L2 capture interface for device:/dev/video0

* Fails with `-r -w -v`  
```bash
[root@rpi5-0 ~]# podman run --privileged --cap-add=ALL -it --rm --device=/dev/video0:/dev/video0:rwm --device=/dev/video10:/dev/video10:rwm docker.io/mpromonet/v4l2tools:latest -r -w -v -fH264 /dev/video0 /dev/video10
log level:600

[INFO]   (V4l2Device.cpp:133)          	driver:uvcvideo capabilities:84a00001 mandatory:1000001
[ERROR]  (V4l2Device.cpp:145)          	Mandatory capability not available for device:/dev/video0
[ERROR]  (V4l2Device.cpp:83)           	Cannot init device:/dev/video0
[WARN]   (v4l2compress.cpp:215)        	Cannot create V4L2 capture interface for device:/dev/video0
  • Fails with -r -w -vv
[root@rpi5-0 ~]# podman run --privileged --cap-add=ALL -it --rm --device=/dev/video0:/dev/video0:rwm --device=/dev/video10:/dev/video10:rwm docker.io/mpromonet/v4l2tools:latest -r -w -vv -fH264 /dev/video0 /dev/video10
log level:700

[INFO]   (V4l2Device.cpp:133)          	driver:uvcvideo capabilities:84a00001 mandatory:1000001
[DEBUG]  (V4l2Device.cpp:136)          	/dev/video0 support capture
[DEBUG]  (V4l2Device.cpp:139)          	/dev/video0 support streaming
[ERROR]  (V4l2Device.cpp:145)          	Mandatory capability not available for device:/dev/video0
[ERROR]  (V4l2Device.cpp:83)           	Cannot init device:/dev/video0
[WARN]   (v4l2compress.cpp:215)        	Cannot create V4L2 capture interface for device:/dev/video0
  • Succeeds with -vv (along with no -r or -w)
    • I've successfully passed /dev/video10 v4l2loopback device to v4l2rtspserver and streamed an rtsp feed (via tcp) across my network here
[root@rpi5-0 ~]# podman run --privileged --cap-add=ALL -it --rm --device=/dev/video0:/dev/video0:rwm --device=/dev/video10:/dev/video10:rwm docker.io/mpromonet/v4l2tools:latest -vv -fH264 /dev/video0 /dev/video10
log level:700

[INFO]   (V4l2Device.cpp:133)          	driver:uvcvideo capabilities:84a00001 mandatory:4000001
[DEBUG]  (V4l2Device.cpp:136)          	/dev/video0 support capture
[DEBUG]  (V4l2Device.cpp:139)          	/dev/video0 support streaming
[DEBUG]  (V4l2Device.cpp:71)           	/dev/video0:MJPG size:1280x720 bufferSize:1843789
[INFO]   (V4l2Device.cpp:225)          	/dev/video0:MJPG size:1280x720 bufferSize:1843789
[DEBUG]  (V4l2Device.cpp:71)           	/dev/video0:MJPG size:1280x720 bufferSize:1843789
[INFO]   (V4l2MmapDevice.cpp:49)       	Device /dev/video0
[INFO]   (V4l2MmapDevice.cpp:73)       	Device /dev/video0 nb buffer:10
[INFO]   (V4l2MmapDevice.cpp:92)       	Device /dev/video0 buffer idx:0 size:1843789 offset:0
[INFO]   (V4l2MmapDevice.cpp:92)       	Device /dev/video0 buffer idx:1 size:1843789 offset:32768
[INFO]   (V4l2MmapDevice.cpp:92)       	Device /dev/video0 buffer idx:2 size:1843789 offset:65536
[INFO]   (V4l2MmapDevice.cpp:92)       	Device /dev/video0 buffer idx:3 size:1843789 offset:98304
[INFO]   (V4l2MmapDevice.cpp:92)       	Device /dev/video0 buffer idx:4 size:1843789 offset:131072
[INFO]   (V4l2MmapDevice.cpp:92)       	Device /dev/video0 buffer idx:5 size:1843789 offset:163840
[INFO]   (V4l2MmapDevice.cpp:92)       	Device /dev/video0 buffer idx:6 size:1843789 offset:196608
[INFO]   (V4l2MmapDevice.cpp:92)       	Device /dev/video0 buffer idx:7 size:1843789 offset:229376
[INFO]   (V4l2MmapDevice.cpp:92)       	Device /dev/video0 buffer idx:8 size:1843789 offset:262144
[INFO]   (V4l2MmapDevice.cpp:92)       	Device /dev/video0 buffer idx:9 size:1843789 offset:294912
[INFO]   (V4l2Device.cpp:133)          	driver:v4l2 loopback capabilities:85200003 mandatory:4000002
[DEBUG]  (V4l2Device.cpp:135)          	/dev/video10 support output
[DEBUG]  (V4l2Device.cpp:136)          	/dev/video10 support capture
[DEBUG]  (V4l2Device.cpp:138)          	/dev/video10 support read/write
[DEBUG]  (V4l2Device.cpp:139)          	/dev/video10 support streaming
[DEBUG]  (V4l2Device.cpp:71)           	/dev/video10:H264 size:1280x720 bufferSize:3686400
[INFO]   (V4l2Device.cpp:225)          	/dev/video10:H264 size:1280x720 bufferSize:3686400
[DEBUG]  (V4l2Device.cpp:71)           	/dev/video10:H264 size:1280x720 bufferSize:3686400
[INFO]   (V4l2MmapDevice.cpp:49)       	Device /dev/video10
[INFO]   (V4l2MmapDevice.cpp:73)       	Device /dev/video10 nb buffer:2
[INFO]   (V4l2MmapDevice.cpp:92)       	Device /dev/video10 buffer idx:0 size:3686400 offset:0
[INFO]   (V4l2MmapDevice.cpp:92)       	Device /dev/video10 buffer idx:1 size:3686400 offset:3686400
[NOTICE] (x264encoder.h:67)            	rc_method:1
[NOTICE] (x264encoder.h:68)            	i_qp_constant:-1
x264 [info]: using cpu capabilities: ARMv8 NEON
x264 [info]: profile Constrained Baseline, level 3.1, 4:2:0, 8-bit
[NOTICE] (x264encoder.h:69)            	f_rf_constant:23
x264 [debug]: frame=   0 QP=20.00 NAL=3 Slice:I Poc:0   I:3600 P:0    SKIP:0    size=3373 bytes
[NOTICE] (v4l2compress.cpp:74)         	Start Compressing to /dev/video10
[DEBUG]  (x264encoder.h:109)           	Copied nbnal:4 size:3373
x264 [debug]: frame=   1 QP=24.00 NAL=2 Slice:P Poc:2   I:3600 P:0    SKIP:0    size=39883 bytes
[DEBUG]  (v4l2compress.cpp:99)         	 captureTime:0 endodeTime:6
[DEBUG]  (x264encoder.h:113)           	Copied size:39883
x264 [debug]: frame=   2 QP=24.00 NAL=2 Slice:P Poc:4   I:1789 P:1810 SKIP:1    size=28903 bytes
[DEBUG]  (v4l2compress.cpp:99)         	 captureTime:0 endodeTime:17
[DEBUG]  (x264encoder.h:113)           	Copied size:28903
x264 [debug]: frame=   3 QP=21.00 NAL=2 Slice:P Poc:6   I:211  P:2826 SKIP:563  size=22314 bytes
[DEBUG]  (v4l2compress.cpp:99)         	 captureTime:0 endodeTime:17
[DEBUG]  (x264encoder.h:113)           	Copied size:22314
x264 [debug]: frame=   4 QP=22.00 NAL=2 Slice:P Poc:8   I:1819 P:1781 SKIP:0    size=44558 bytes
[DEBUG]  (v4l2compress.cpp:99)         	 captureTime:0 endodeTime:9
[DEBUG]  (x264encoder.h:113)           	Copied size:44558
x264 [debug]: frame=   5 QP=20.00 NAL=2 Slice:P Poc:10  I:60   P:1954 SKIP:1586 size=12388 bytes
[DEBUG]  (v4l2compress.cpp:99)         	 captureTime:0 endodeTime:18
[DEBUG]  (x264encoder.h:113)           	Copied size:12388
x264 [debug]: frame=   6 QP=18.00 NAL=2 Slice:P Poc:12  I:40   P:3207 SKIP:353  size=24584 bytes
[DEBUG]  (v4l2compress.cpp:99)         	 captureTime:0 endodeTime:8
[DEBUG]  (x264encoder.h:113)           	Copied size:24584
x264 [debug]: frame=   7 QP=16.00 NAL=2 Slice:P Poc:14  I:8    P:3397 SKIP:195  size=26890 bytes
[DEBUG]  (v4l2compress.cpp:99)         	 captureTime:0 endodeTime:9
[DEBUG]  (x264encoder.h:113)           	Copied size:26890
x264 [debug]: frame=   8 QP=15.00 NAL=2 Slice:P Poc:16  I:0    P:1653 SKIP:1947 size=8448 bytes
[DEBUG]  (v4l2compress.cpp:99)         	 captureTime:0 endodeTime:9
[DEBUG]  (x264encoder.h:113)           	Copied size:8448
x264 [debug]: frame=   9 QP=14.00 NAL=2 Slice:P Poc:18  I:2    P:2648 SKIP:950  size=15472 bytes
[DEBUG]  (v4l2compress.cpp:99)         	 captureTime:0 endodeTime:8
[DEBUG]  (x264encoder.h:113)           	Copied size:15472
x264 [debug]: frame=  10 QP=21.00 NAL=2 Slice:P Poc:20  I:2042 P:1558 SKIP:0    size=53328 bytes
[DEBUG]  (v4l2compress.cpp:99)         	 captureTime:0 endodeTime:9
[DEBUG]  (x264encoder.h:113)           	Copied size:53328
x264 [debug]: frame=  11 QP=22.00 NAL=2 Slice:P Poc:22  I:1632 P:1955 SKIP:13   size=41824 bytes
[DEBUG]  (v4l2compress.cpp:99)         	 captureTime:0 endodeTime:18
[DEBUG]  (x264encoder.h:113)           	Copied size:41824
x264 [debug]: frame=  12 QP=20.00 NAL=2 Slice:P Poc:24  I:46   P:2022 SKIP:1532 size=13137 bytes
[DEBUG]  (v4l2compress.cpp:99)         	 captureTime:0 endodeTime:17
[DEBUG]  (x264encoder.h:113)           	Copied size:13137
x264 [debug]: frame=  13 QP=18.00 NAL=2 Slice:P Poc:26  I:36   P:3237 SKIP:327  size=24908 bytes
[DEBUG]  (v4l2compress.cpp:99)         	 captureTime:0 endodeTime:8
[DEBUG]  (x264encoder.h:113)           	Copied size:24908
x264 [debug]: frame=  14 QP=16.00 NAL=2 Slice:P Poc:28  I:12   P:3401 SKIP:187  size=28279 bytes
[DEBUG]  (v4l2compress.cpp:99)         	 captureTime:0 endodeTime:9
[DEBUG]  (x264encoder.h:113)           	Copied size:28279
x264 [debug]: frame=  15 QP=15.00 NAL=2 Slice:P Poc:30  I:0    P:1630 SKIP:1970 size=8625 bytes
[DEBUG]  (v4l2compress.cpp:99)         	 captureTime:0 endodeTime:10
[DEBUG]  (x264encoder.h:113)           	Copied size:8625
x264 [debug]: frame=  16 QP=14.00 NAL=2 Slice:P Poc:32  I:1    P:2663 SKIP:936  size=15859 bytes
[DEBUG]  (v4l2compress.cpp:99)         	 captureTime:0 endodeTime:8
[DEBUG]  (x264encoder.h:113)           	Copied size:15859
x264 [debug]: frame=  17 QP=13.00 NAL=2 Slice:P Poc:34  I:0    P:3240 SKIP:360  size=31217 bytes
[DEBUG]  (v4l2compress.cpp:99)         	 captureTime:0 endodeTime:9
[DEBUG]  (x264encoder.h:113)           	Copied size:31217
x264 [debug]: frame=  18 QP=21.00 NAL=2 Slice:P Poc:36  I:2099 P:1501 SKIP:0    size=52292 bytes
[DEBUG]  (v4l2compress.cpp:99)         	 captureTime:0 endodeTime:9
[DEBUG]  (x264encoder.h:113)           	Copied size:52292
x264 [debug]: frame=  19 QP=19.00 NAL=2 Slice:P Poc:38  I:13   P:2501 SKIP:1086 size=16983 bytes
[DEBUG]  (v4l2compress.cpp:99)         	 captureTime:0 endodeTime:18
[DEBUG]  (x264encoder.h:113)           	Copied size:16983
x264 [debug]: frame=  20 QP=17.00 NAL=2 Slice:P Poc:40  I:7    P:3308 SKIP:285  size=22370 bytes
[DEBUG]  (v4l2compress.cpp:99)         	 captureTime:0 endodeTime:9
[DEBUG]  (x264encoder.h:113)           	Copied size:22370
x264 [debug]: frame=  21 QP=16.00 NAL=2 Slice:P Poc:42  I:2    P:2900 SKIP:698  size=15157 bytes
[DEBUG]  (v4l2compress.cpp:99)         	 captureTime:0 endodeTime:9
[DEBUG]  (x264encoder.h:113)           	Copied size:15157
x264 [debug]: frame=  22 QP=14.00 NAL=2 Slice:P Poc:44  I:4    P:3082 SKIP:514  size=24021 bytes
[DEBUG]  (v4l2compress.cpp:99)         	 captureTime:0 endodeTime:8
[DEBUG]  (x264encoder.h:113)           	Copied size:24021
x264 [debug]: frame=  23 QP=21.00 NAL=2 Slice:P Poc:46  I:1840 P:1760 SKIP:0    size=48330 bytes
[DEBUG]  (v4l2compress.cpp:99)         	 captureTime:0 endodeTime:9
[DEBUG]  (x264encoder.h:113)           	Copied size:48330
x264 [debug]: frame=  24 QP=19.00 NAL=2 Slice:P Poc:48  I:14   P:2536 SKIP:1050 size=17704 bytes
[DEBUG]  (v4l2compress.cpp:99)         	 captureTime:0 endodeTime:18
[DEBUG]  (x264encoder.h:113)           	Copied size:17704
x264 [debug]: frame=  25 QP=15.00 NAL=3 Slice:I Poc:0   I:3600 P:0    SKIP:0    size=113613 bytes
[DEBUG]  (v4l2compress.cpp:99)         	 captureTime:0 endodeTime:9
[DEBUG]  (x264encoder.h:109)           	Copied nbnal:3 size:113613
x264 [debug]: frame=  26 QP=21.00 NAL=2 Slice:P Poc:2   I:0    P:0    SKIP:3600 size=11 bytes
[DEBUG]  (v4l2compress.cpp:99)         	 captureTime:0 endodeTime:11
[DEBUG]  (x264encoder.h:113)           	Copied size:11
^C[DEBUG]  (v4l2compress.cpp:99)         	 captureTime:0 endodeTime:5SIGINT
x264 [info]: frame I:2     Avg QP:17.50  size: 58493
x264 [info]: frame P:25    Avg QP:18.44  size: 25499
x264 [info]: mb I  I16..4: 100.0%  0.0%  0.0%
x264 [info]: mb P  I16..4: 17.0%  0.0%  0.0%  P16..4: 62.9%  0.0%  0.0%  0.0%  0.0%    skip:20.2%
x264 [info]: coded y,uvDC,uvAC intra: 28.2% 81.9% 71.6% inter: 27.9% 56.5% 29.0%
x264 [info]: i16 v,h,dc,p: 27% 19% 24% 31%
x264 [info]: i8c dc,h,v,p: 55% 21% 13% 11%
x264 [info]: kb/s:5588.67

Expected behavior

I expect v4l2compress to successfully compress video to the v4l2loopback device without requiring very verbose output. For the time being I will use it with -vv, however this is a significant increase in log output (storage and CPU cycles).

Additional context

I have only tested v4l2rtspserver within a podman container. I have no idea if running the binary makes any difference. I plan to run v4l2compress as an initContainer for my v4l2rtspserver container, which run within a k3s container. Therefore I'm only concerned about the container results.

Camera information:

[root@rpi5-0 ~]# v4l2-ctl -d /dev/video0 --all
Driver Info:
	Driver name      : uvcvideo
	Card type        : HD USB Camera: HD USB Camera
	Bus info         : usb-xhci-hcd.0-2
	Driver version   : 6.12.38
	Capabilities     : 0x84a00001
		Video Capture
		Metadata Capture
		Streaming
		Extended Pix Format
		Device Capabilities
	Device Caps      : 0x04200001
		Video Capture
		Streaming
		Extended Pix Format
Media Driver Info:
	Driver name      : uvcvideo
	Model            : HD USB Camera: HD USB Camera
	Serial           : 2020101401
	Bus info         : usb-xhci-hcd.0-2
	Media version    : 6.12.38
	Hardware revision: 0x00000000 (0)
	Driver version   : 6.12.38
Interface Info:
	ID               : 0x03000002
	Type             : V4L Video
Entity Info:
	ID               : 0x00000001 (1)
	Name             : HD USB Camera: HD USB Camera
	Function         : V4L2 I/O
	Flags            : default
	Pad 0x01000007   : 0: Sink
	  Link 0x02000010: from remote pad 0x100000a of entity 'Extension 4' (Video Pixel Formatter): Data, Enabled, Immutable
Priority: 2
Video input : 0 (Camera 1: ok)
Format Video Capture:
	Width/Height      : 1280/720
	Pixel Format      : 'MJPG' (Motion-JPEG)
	Field             : None
	Bytes per Line    : 0
	Size Image        : 1843789
	Colorspace        : sRGB
	Transfer Function : Default (maps to sRGB)
	YCbCr/HSV Encoding: Default (maps to ITU-R 601)
	Quantization      : Default (maps to Full Range)
	Flags             : 
Crop Capability Video Capture:
	Bounds      : Left 0, Top 0, Width 1280, Height 720
	Default     : Left 0, Top 0, Width 1280, Height 720
	Pixel Aspect: 1/1
Selection Video Capture: crop_default, Left 0, Top 0, Width 1280, Height 720, Flags: 
Selection Video Capture: crop_bounds, Left 0, Top 0, Width 1280, Height 720, Flags: 
Streaming Parameters Video Capture:
	Capabilities     : timeperframe
	Frames per second: 30.000 (30/1)
	Read buffers     : 0

User Controls

                     brightness 0x00980900 (int)    : min=-128 max=127 step=1 default=0 value=0
                       contrast 0x00980901 (int)    : min=0 max=255 step=1 default=128 value=128
                     saturation 0x00980902 (int)    : min=1 max=128 step=1 default=64 value=64
                            hue 0x00980903 (int)    : min=-40 max=40 step=1 default=0 value=0
        white_balance_automatic 0x0098090c (bool)   : default=1 value=1
                          gamma 0x00980910 (int)    : min=72 max=500 step=1 default=100 value=100
                           gain 0x00980913 (int)    : min=0 max=100 step=1 default=0 value=0
           power_line_frequency 0x00980918 (menu)   : min=0 max=2 default=1 value=1 (50 Hz)
				0: Disabled
				1: 50 Hz
				2: 60 Hz
      white_balance_temperature 0x0098091a (int)    : min=2800 max=6500 step=1 default=4600 value=4600 flags=inactive
                      sharpness 0x0098091b (int)    : min=0 max=6 step=1 default=3 value=3
         backlight_compensation 0x0098091c (int)    : min=0 max=2 step=1 default=1 value=1

Camera Controls

                  auto_exposure 0x009a0901 (menu)   : min=0 max=3 default=3 value=3 (Aperture Priority Mode)
				1: Manual Mode
				3: Aperture Priority Mode
         exposure_time_absolute 0x009a0902 (int)    : min=1 max=5000 step=1 default=625 value=625 flags=inactive
     exposure_dynamic_framerate 0x009a0903 (bool)   : default=0 value=1

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions