From d3fa9629714ac5b7e0aac0811334c4dd9c6779d0 Mon Sep 17 00:00:00 2001 From: zry98 Date: Tue, 21 May 2024 16:55:54 +0200 Subject: [PATCH] support uvc bulk multiple transfer per sample fix https://github.com/espressif/esp-iot-solution/issues/360 Signed-off-by: zry98 --- components/usb/usb_stream/usb_stream.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/components/usb/usb_stream/usb_stream.c b/components/usb/usb_stream/usb_stream.c index b64c38214..8cfef9a78 100644 --- a/components/usb/usb_stream/usb_stream.c +++ b/components/usb/usb_stream/usb_stream.c @@ -2043,8 +2043,16 @@ IRAM_ATTR static void _uvc_process_payload(_uvc_stream_handle_t *strmh, size_t r return; } } else if (strmh->reassembling) { - ESP_LOGV(TAG, "reassembling %u + %u", strmh->got_bytes, payload_len); - data_len = payload_len; + if (bulk_xfer) { + header_len = payload[0]; + data_len = payload_len - header_len; + /* checking the end-of-header */ + variable_offset = 2; + header_info = payload[1]; + } else { + data_len = payload_len; + } + ESP_LOGV(TAG, "reassembling %u + %u", strmh->got_bytes, data_len); } else { if (payload_len > 1) { #ifdef CONFIG_UVC_CHECK_HEADER_EOH