esp-idf/examples/peripherals/usb/host/uvc/main/Kconfig.projbuild
Tomas Rezucha 62091b4fa0 fix(usb/uvc): Add negotiation retry for some cameras
Some cameras would refuse first stream format and would only accept
on second retry.
2023-11-29 11:34:47 +08:00

107 lines
4.0 KiB
Plaintext

menu "Example Configuration"
config EXAMPLE_ENABLE_STREAMING
bool "Enable streaming"
default n
help
Enables streaming of captured video.
choice EXAMPLE_UVC_PROTOCOL_MODE
prompt "UVC Protocol mode"
default EXAMPLE_UVC_PROTOCOL_MODE_AUTO
config EXAMPLE_UVC_PROTOCOL_MODE_AUTO
bool "Auto"
help
When protocol mode set to Auto, the example tries to make three attempts to negotiatiate
the protocol with following parameters:
1 Attempt: 640x480, 15 FPS, MJPEG
2 Attempt: 320x240, 30 FPS, MJPEG
3 Attempt: 320x240, first available FPS, MJPEG
If all three attempts result in an error, the example displays the error message and
suggests to try another USB UVC Device.
config EXAMPLE_UVC_PROTOCOL_MODE_CUSTOM
bool "Custom"
help
When protocol mode set to Custom, the example tries to negotiate protocol with
configured parameters: Attempts, Width, Heighs, FPS, Frame Coding format.
After all attemts result in an error, the example displays the error message and
suggests to try another USB UVC Device.
endchoice
config EXAMPLE_NEGOTIATION_ATTEMPTS
int "Negotiation attempts"
default 3
help
Number of attempts to negotiate custom protocol parameters.
menu "UVC Protocol parameters"
depends on EXAMPLE_UVC_PROTOCOL_MODE_CUSTOM
config EXAMPLE_WIDTH_PARAM
int "Width resolution in pixels"
default 320
help
Configure the negotiation width parameter during UVC device stream getting.
config EXAMPLE_HEIGHT_PARAM
int "Heigth resolution in pixels"
default 240
help
Configure the negotiation height parameter during UVC device stream getting.
config EXAMPLE_FPS_PARAM
int "FPS"
default 30
help
Configure the negotiation FPS parameter during UVC device stream getting.
Can be any value, available from the Frame Descriptor of the UVC device.
When 0 - negotiation accept the first rate available.
choice EXAMPLE_NEGOTIATION_FORMAT
prompt "Frame coding format of the stream, transport-independent"
default UVC_FRAME_FORMAT_MJPEG
help
Configure the negotiation frame coding of stream.
config UVC_FRAME_FORMAT_UNKNOWN
bool "Unknown"
config UVC_FRAME_FORMAT_UNCOMPRESSED
bool "Uncompressed"
config UVC_FRAME_FORMAT_COMPRESSED
bool "Compressed"
config UVC_FRAME_FORMAT_YUYV
bool "YUYV"
config UVC_FRAME_FORMAT_UYVY
bool "UYVY"
config UVC_FRAME_FORMAT_RGB
bool "RGB"
config UVC_FRAME_FORMAT_BGR
bool "BGR"
config UVC_FRAME_FORMAT_MJPEG
bool "MJPEG"
config UVC_FRAME_FORMAT_GRAY8
bool "GRAY8"
config UVC_FRAME_FORMAT_GRAY16
bool "GRAY16"
config UVC_FRAME_FORMAT_NV12
bool "NV12"
endchoice
config EXAMPLE_FORMAT_PARAM
int
default 0 if UVC_FRAME_FORMAT_UNKNOWN
default 1 if UVC_FRAME_FORMAT_UNCOMPRESSED
default 2 if UVC_FRAME_FORMAT_COMPRESSED
default 3 if UVC_FRAME_FORMAT_YUYV
default 4 if UVC_FRAME_FORMAT_UYVY
default 5 if UVC_FRAME_FORMAT_RGB
default 6 if UVC_FRAME_FORMAT_BGR
default 7 if UVC_FRAME_FORMAT_MJPEG
default 9 if UVC_FRAME_FORMAT_GRAY8
default 10 if UVC_FRAME_FORMAT_GRAY16
default 17 if UVC_FRAME_FORMAT_NV12
endmenu
endmenu