samples: drivers: video_uvc: add UVC webcam sample - #889
Open
JuhoEskeli-AlifSemi wants to merge 1 commit into
Open
samples: drivers: video_uvc: add UVC webcam sample#889JuhoEskeli-AlifSemi wants to merge 1 commit into
JuhoEskeli-AlifSemi wants to merge 1 commit into
Conversation
JuhoEskeli-AlifSemi
requested review from
Anilkumar-Alifsemi,
AnttiKauppila-AlifSemi and
RupeshKumar-AlifSemi
as code owners
August 4, 2026 13:27
JuhoEskeli-AlifSemi
force-pushed
the
uvc_sample
branch
from
August 5, 2026 11:33
339e0c5 to
d424272
Compare
Add a sample that captures camera frames on an Alif board and streams them to a host as a standard USB Video Class (UVC) webcam using the in-tree UVC class (CONFIG_USBD_VIDEO_CLASS). The pipeline and advertised format are selected at build time from the devicetree of the target board: - E1C SK / B1 SK: an OV5640 parallel camera on the LP-CAM bus, streamed as uncompressed RGB565 480x272. - E8 DK (RTSS-HP): an ARX3A0, MT9M114 or OV5675 MIPI CSI-2 camera through the ISP and the Hantro VC9000E hardware JPEG encoder, streamed as MJPEG. The sensor is chosen by the devicetree overlay (ARX3A0 560x560, MT9M114 1280x720, OV5675 1024x768). The application configures the capture pipeline, binds the UVC device to the frame source with uvc_set_video_dev(), and shuttles finished frames into the UVC device with video_enqueue()/video_dequeue(); the host pulls frames at its own pace, which throttles the capture loop. On the E8 each captured NV12 frame is compressed by the hardware JPEG encoder before being sent. Signed-off-by: Juho Eskeli <juho.eskeli@alifsemi.com>
JuhoEskeli-AlifSemi
force-pushed
the
uvc_sample
branch
from
August 5, 2026 12:00
d424272 to
3b1db0c
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request introduces a new Zephyr sample application for streaming camera frames as a USB Video Class (UVC) webcam from Alif boards. It adds all required configuration, overlays, and documentation to support E1C SK, B1 SK, and E8 DK boards with their respective camera pipelines and formats. The sample supports both uncompressed RGB565 and MJPEG streaming, depending on the board and camera configuration.
The most important changes are:
Sample Application Introduction and Documentation
video_uvcwith build system (CMakeLists.txt), configuration (Kconfig), and a comprehensiveREADME.mddescribing supported boards, camera pipelines, build instructions, and usage details. [1] [2] [3]Board-Specific Configuration and Overlays
Added board overlays and Kconfig fragments for E1C SK (
alif_e1c_sk_ae1c1f4051920hh_rtss_he.overlay,alif_e1c_sk_ae1c1f4051920hh_rtss_he.conf) and B1 SK (alif_b1_sk_ab1c1f4m51820ph0_rtss_he.overlay,alif_b1_sk_ab1c1f4m51820ph0_rtss_he.conf) to configure the LP-CAM pipeline (OV5640 camera to RGB565 UVC) and allocate appropriate buffer pools. [1] [2] [3]Added a detailed overlay and configuration for E8 DK (
alif_e8_dk_ae822fa0e5597xx0_rtss_hp.conf) supporting MIPI CSI-2 sensors, ISP processing, and JPEG encoding for MJPEG streaming.Memory and Buffer Management
.conffiles to match the requirements of each board and camera pipeline, ensuring efficient streaming and avoiding sensor power-cycling. [1] [2]Device Tree and Peripheral Setup
These changes provide a ready-to-use, board-agnostic UVC webcam sample for Alif platforms, with flexible sensor and pipeline selection at build time.