espressif / esp-usb

Other
30 stars 16 forks source link

USB Host UVC driver version 2 #84

Open tore-espressif opened 3 weeks ago

tore-espressif commented 3 weeks ago

Introduction

This PR introduces version 2 of the USB Host UVC driver, aimed at enabling ESP SoCs to stream frames from connected USB cameras.

The driver provides frames to the user via a callback, offering a flexible interface that can serve as a foundation for more advanced frame processing applications.

Internally, the driver manages a FreeRTOS Queue containing multiple frame buffers, which helps prevent buffer overflows and underflows during streaming.

Detailed feature descriptions, future plans, and usage instructions are available in the README.md file.

Information for Testers

This section provides instructions for testing the driver’s functionality and public API.

Two examples are included for testing:

1. basic_uvc_stream

2. camera_display

Information for Reviewers

This section provides guidance for those reviewing the internal code structure of the driver.

The driver includes a host_test folder with tests designed to run on Linux. These tests use a mocked version of the esp-idf/usb component, focusing on the following areas, which should need less in-depth review:

The following file, focused on human-readable output, also requires only a light review:

Areas not yet covered by host_tests and requiring more detailed review include:

Related Information