1# Copyright (c) 2025 tinyVision.ai Inc.
2#
3# SPDX-License-Identifier: Apache-2.0
4
5config USBD_VIDEO_CLASS
6	bool "USB Video Class implementation [EXPERIMENTAL]"
7	depends on DT_HAS_ZEPHYR_UVC_DEVICE_ENABLED
8	select EXPERIMENTAL
9	help
10	  USB Device Video Class (UVC) implementation.
11
12if USBD_VIDEO_CLASS
13
14config USBD_VIDEO_MAX_FORMATS
15	int "Max number of format descriptors"
16	range 1 254
17	default 32
18	help
19	  The table of format descriptors are generated at runtime. This options plans the
20	  storage at build time to allow enough descriptors to be generated. The default value
21	  aims a compromise between enough descriptors for most devices, but not too much memory
22	  being used.
23
24config USBD_VIDEO_MAX_FRMIVAL
25	int "Max number of video output stream per USB Video interface"
26	range 1 255
27	default 8
28	help
29	  Max number of Frame Interval listed on a frame descriptor. The
30	  default value is selected arbitrarily to fit most situations without
31	  requiring too much RAM.
32
33config USBD_VIDEO_NUM_BUFS
34	int "Max number of buffers the UVC class can allocate"
35	default 16
36	help
37	  Control the number of buffer UVC can allocate in parallel.
38	  The default is a compromise to allow enough concurrent buffers but not too much
39	  memory usage.
40
41module = USBD_VIDEO
42module-str = usbd uvc
43default-count = 1
44source "subsys/logging/Kconfig.template.log_config"
45
46endif # USBD_VIDEO_CLASS
47