Skip to content

Conversation

@josuah
Copy link
Contributor

@josuah josuah commented Mar 30, 2025

This is a split-off from this PR, which is a dependency:

This does two contradictory things:

They can still work both at the same time:

  • If zephyr,video-emul-* selected as zephyr,camera, then VIDEO_SW_GENERATOR disables itself.
  • If the hardware provides a zephyr,camera, then VIDEO_SW_GENERATOR disables itself.
  • Otherwise, VIDEO_SW_GENERATOR remains enabled.

This PR will be modified as discussion goes so that a single virtual video source can be used. The challenge:

  • zephyr,video-emul-* is very basic, for CI purpose mostly.
  • VIDEO_SW_GENERATOR lacks a devicetree node, it is a Kconfig only device.

Another possibility is introduced by #82158 (comment) which permits all cameras of a system to be listed and used by samples.

josuah added 5 commits March 30, 2025 16:04
Introduce a new USB Video Class (UVC) implementation from scratch.
It exposes a native Zephyr Video driver interface, allowing to call the
video_enqueue()/video_dequeue() interface. It will query the attached
video device to learn about the pipeline capabilities, and use this to
configure the USB descriptors. At runtime, this UVC implementation will
send this device all the control requests, which it can then dispatch to
the rest of the pipeline. The application can poll the format currently
selected by the host, but will not be alerted when the host configures
a new format, as there is no video.h API for it yet.

Signed-off-by: Josuah Demangeon <[email protected]>
The Arduino Nicla Vision board supports the new device_next USB stack
and can be used for testing USB Device features such as UVC.

Signed-off-by: Josuah Demangeon <[email protected]>
Following the addition of USB Video Class, this adds a sample that makes
use of the &zephyr,camera chosen node of any board to stream the video
source to the host. A fallback video-emul.overlay is provided for test
and debugging purpose for devices without a camera.

Signed-off-by: Josuah Demangeon <[email protected]>
Following the addition of USB Video Class, this adds a sample that makes
use of the &zephyr,camera chosen node of any board to stream the video
source to the host. A fallback video-emul.overlay is provided for test
and debugging purpose for devices without a camera.

Signed-off-by: Josuah Demangeon <[email protected]>
This introduces a method for testing hardware that lacks a camera with
the UVC sample. Software is used to fill video buffers, as if it was a
real camera providing the frames.

Signed-off-by: Josuah Demangeon <[email protected]>
@josuah
Copy link
Contributor Author

josuah commented Apr 28, 2025

Now part of #76798

@josuah josuah closed this Apr 28, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants