Skip to content

Commit 98b200a

Browse files
committed
fix(device_uvc): fix incorrect stridx in uvc descriptors
1 parent fd0fe0f commit 98b200a

File tree

4 files changed

+20
-12
lines changed

4 files changed

+20
-12
lines changed

components/usb/usb_device_uvc/CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
11
# ChangeLog
2+
3+
## v1.1.3 2025-7-21
4+
5+
* Fix incorrect `_stridx` in UVC descriptors when using dual cameras.
6+
27
## v1.1.2 2024-10-25
38

49
* Add test-apps

components/usb/usb_device_uvc/README.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,10 @@ Features:
88

99
1. Support video stream through the UVC Stream interface
1010
2. Support both isochronous and bulk mode
11-
2. Support multiple resolutions and frame rates
11+
3. Support multiple resolutions and frame rates
12+
4. Support trans two cam's picture
13+
14+
> Note: If `UVC_SUPPORT_TWO_CAM` is enabled in `Kconfig` and multiple camera switches are required, please set both `UVC_CAM1_XFER_MODE` and `UVC_CAM2_XFER_MODE` to Isochronous mode.
1215
1316
### Add component to your project
1417

components/usb/usb_device_uvc/idf_component.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
version: "1.1.2"
1+
version: "1.1.3"
22
targets:
33
- esp32s2
44
- esp32s3

components/usb/usb_device_uvc/tusb/usb_descriptors.c

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -204,43 +204,43 @@ uint8_t const desc_fs_configuration[] = {
204204
#if CFG_TUD_CAM2_VIDEO_STREAMING_BULK
205205
#if CONFIG_UVC_CAM2_MULTI_FRAMESIZE
206206
#if CONFIG_FORMAT_MJPEG_CAM2
207-
TUD_VIDEO_CAPTURE_DESCRIPTOR_MULTI_MJPEG_BULK(4, ITF_NUM_VIDEO_CONTROL_2, EPNUM_CAM2_VIDEO_IN, CFG_TUD_CAM2_VIDEO_STREAMING_EP_BUFSIZE),
207+
TUD_VIDEO_CAPTURE_DESCRIPTOR_MULTI_MJPEG_BULK(5, ITF_NUM_VIDEO_CONTROL_2, EPNUM_CAM2_VIDEO_IN, CFG_TUD_CAM2_VIDEO_STREAMING_EP_BUFSIZE),
208208
#elif CONFIG_FORMAT_H264_CAM2
209-
TUD_VIDEO_CAPTURE_DESCRIPTOR_MULTI_H264_BULK(4, ITF_NUM_VIDEO_CONTROL_2, EPNUM_CAM2_VIDEO_IN, CFG_TUD_CAM2_VIDEO_STREAMING_EP_BUFSIZE),
209+
TUD_VIDEO_CAPTURE_DESCRIPTOR_MULTI_H264_BULK(5, ITF_NUM_VIDEO_CONTROL_2, EPNUM_CAM2_VIDEO_IN, CFG_TUD_CAM2_VIDEO_STREAMING_EP_BUFSIZE),
210210
#endif
211211
#else
212212
#if CONFIG_FORMAT_MJPEG_CAM2
213-
TUD_VIDEO_CAPTURE_DESCRIPTOR_MJPEG_BULK(4, ITF_NUM_VIDEO_CONTROL_2, EPNUM_CAM2_VIDEO_IN,
213+
TUD_VIDEO_CAPTURE_DESCRIPTOR_MJPEG_BULK(5, ITF_NUM_VIDEO_CONTROL_2, EPNUM_CAM2_VIDEO_IN,
214214
UVC_CAM2_FRAME_WIDTH, UVC_CAM2_FRAME_HEIGHT, UVC_CAM2_FRAME_RATE,
215215
CFG_TUD_CAM2_VIDEO_STREAMING_EP_BUFSIZE),
216216
#elif CONFIG_FORMAT_H264_CAM2
217-
TUD_VIDEO_CAPTURE_DESCRIPTOR_H264_BULK(4, ITF_NUM_VIDEO_CONTROL_2, EPNUM_CAM2_VIDEO_IN,
217+
TUD_VIDEO_CAPTURE_DESCRIPTOR_H264_BULK(5, ITF_NUM_VIDEO_CONTROL_2, EPNUM_CAM2_VIDEO_IN,
218218
UVC_CAM2_FRAME_WIDTH, UVC_CAM2_FRAME_HEIGHT, UVC_CAM2_FRAME_RATE,
219219
CFG_TUD_CAM2_VIDEO_STREAMING_EP_BUFSIZE),
220220
#else
221-
TUD_VIDEO_CAPTURE_DESCRIPTOR_UNCOMPR_BULK(4, ITF_NUM_VIDEO_CONTROL_2, EPNUM_CAM2_VIDEO_IN,
221+
TUD_VIDEO_CAPTURE_DESCRIPTOR_UNCOMPR_BULK(5, ITF_NUM_VIDEO_CONTROL_2, EPNUM_CAM2_VIDEO_IN,
222222
UVC_CAM2_FRAME_WIDTH, UVC_CAM2_FRAME_HEIGHT, UVC_CAM2_FRAME_RATE,
223223
CFG_TUD_CAM2_VIDEO_STREAMING_EP_BUFSIZE),
224224
#endif
225225
#endif // CONFIG_UVC_CAM2_MULTI_FRAMESIZE
226226
#else
227227
#if CONFIG_UVC_CAM2_MULTI_FRAMESIZE
228228
#if CONFIG_FORMAT_MJPEG_CAM2
229-
TUD_VIDEO_CAPTURE_DESCRIPTOR_MULTI_MJPEG(4, ITF_NUM_VIDEO_CONTROL_2, EPNUM_CAM2_VIDEO_IN, CFG_TUD_CAM2_VIDEO_STREAMING_EP_BUFSIZE),
229+
TUD_VIDEO_CAPTURE_DESCRIPTOR_MULTI_MJPEG(5, ITF_NUM_VIDEO_CONTROL_2, EPNUM_CAM2_VIDEO_IN, CFG_TUD_CAM2_VIDEO_STREAMING_EP_BUFSIZE),
230230
#elif CONFIG_FORMAT_H264_CAM2
231-
TUD_VIDEO_CAPTURE_DESCRIPTOR_MULTI_H264(4, ITF_NUM_VIDEO_CONTROL_2, EPNUM_CAM2_VIDEO_IN, CFG_TUD_CAM2_VIDEO_STREAMING_EP_BUFSIZE),
231+
TUD_VIDEO_CAPTURE_DESCRIPTOR_MULTI_H264(5, ITF_NUM_VIDEO_CONTROL_2, EPNUM_CAM2_VIDEO_IN, CFG_TUD_CAM2_VIDEO_STREAMING_EP_BUFSIZE),
232232
#endif
233233
#else
234234
#if CONFIG_FORMAT_MJPEG_CAM2
235-
TUD_VIDEO_CAPTURE_DESCRIPTOR_MJPEG(4, ITF_NUM_VIDEO_CONTROL_2, EPNUM_CAM2_VIDEO_IN,
235+
TUD_VIDEO_CAPTURE_DESCRIPTOR_MJPEG(5, ITF_NUM_VIDEO_CONTROL_2, EPNUM_CAM2_VIDEO_IN,
236236
UVC_CAM2_FRAME_WIDTH, UVC_CAM2_FRAME_HEIGHT, UVC_CAM2_FRAME_RATE,
237237
CFG_TUD_CAM2_VIDEO_STREAMING_EP_BUFSIZE),
238238
#elif CONFIG_FORMAT_H264_CAM2
239-
TUD_VIDEO_CAPTURE_DESCRIPTOR_H264(4, ITF_NUM_VIDEO_CONTROL_2, EPNUM_CAM2_VIDEO_IN,
239+
TUD_VIDEO_CAPTURE_DESCRIPTOR_H264(5, ITF_NUM_VIDEO_CONTROL_2, EPNUM_CAM2_VIDEO_IN,
240240
UVC_CAM2_FRAME_WIDTH, UVC_CAM2_FRAME_HEIGHT, UVC_CAM2_FRAME_RATE,
241241
CFG_TUD_CAM2_VIDEO_STREAMING_EP_BUFSIZE),
242242
#else
243-
TUD_VIDEO_CAPTURE_DESCRIPTOR_UNCOMPR(4, ITF_NUM_VIDEO_CONTROL, EPNUM_CAM2_VIDEO_IN,
243+
TUD_VIDEO_CAPTURE_DESCRIPTOR_UNCOMPR(5, ITF_NUM_VIDEO_CONTROL_2, EPNUM_CAM2_VIDEO_IN,
244244
UVC_CAM2_FRAME_WIDTH, UVC_CAM2_FRAME_HEIGHT, UVC_CAM2_FRAME_RATE,
245245
CFG_TUD_CAM2_VIDEO_STREAMING_EP_BUFSIZE),
246246
#endif

0 commit comments

Comments
 (0)