Zephyr API Documentation
3.7.0
A Scalable Open Source RTOS
|
Video Interface. More...
Modules | |
Video pixel formats | |
Data Structures | |
struct | video_format |
Video format structure. More... | |
struct | video_format_cap |
Video format capability. More... | |
struct | video_caps |
Video format capabilities. More... | |
struct | video_buffer |
Video buffer structure. More... | |
struct | video_driver_api |
Macros | |
#define | video_fourcc(a, b, c, d) ((uint32_t)(a) | ((uint32_t)(b) << 8) | ((uint32_t)(c) << 16) | ((uint32_t)(d) << 24)) |
Typedefs | |
typedef int(* | video_api_set_format_t) (const struct device *dev, enum video_endpoint_id ep, struct video_format *fmt) |
Set video format. | |
typedef int(* | video_api_get_format_t) (const struct device *dev, enum video_endpoint_id ep, struct video_format *fmt) |
Get current video format. | |
typedef int(* | video_api_enqueue_t) (const struct device *dev, enum video_endpoint_id ep, struct video_buffer *buf) |
Enqueue a buffer in the driver’s incoming queue. | |
typedef int(* | video_api_dequeue_t) (const struct device *dev, enum video_endpoint_id ep, struct video_buffer **buf, k_timeout_t timeout) |
Dequeue a buffer from the driver’s outgoing queue. | |
typedef int(* | video_api_flush_t) (const struct device *dev, enum video_endpoint_id ep, bool cancel) |
Flush endpoint buffers, buffer are moved from incoming queue to outgoing queue. | |
typedef int(* | video_api_stream_start_t) (const struct device *dev) |
Start the capture or output process. | |
typedef int(* | video_api_stream_stop_t) (const struct device *dev) |
Stop the capture or output process. | |
typedef int(* | video_api_set_ctrl_t) (const struct device *dev, unsigned int cid, void *value) |
Set a video control value. | |
typedef int(* | video_api_get_ctrl_t) (const struct device *dev, unsigned int cid, void *value) |
Get a video control value. | |
typedef int(* | video_api_get_caps_t) (const struct device *dev, enum video_endpoint_id ep, struct video_caps *caps) |
Get capabilities of a video endpoint. | |
typedef int(* | video_api_set_signal_t) (const struct device *dev, enum video_endpoint_id ep, struct k_poll_signal *signal) |
Register/Unregister poll signal for buffer events. | |
Enumerations | |
enum | video_endpoint_id { VIDEO_EP_NONE , VIDEO_EP_ANY , VIDEO_EP_IN , VIDEO_EP_OUT } |
video_endpoint_id enum More... | |
enum | video_signal_result { VIDEO_BUF_DONE , VIDEO_BUF_ABORTED , VIDEO_BUF_ERROR } |
video_event enum More... | |
Functions | |
static int | video_set_format (const struct device *dev, enum video_endpoint_id ep, struct video_format *fmt) |
Set video format. | |
static int | video_get_format (const struct device *dev, enum video_endpoint_id ep, struct video_format *fmt) |
Get video format. | |
static int | video_enqueue (const struct device *dev, enum video_endpoint_id ep, struct video_buffer *buf) |
Enqueue a video buffer. | |
static int | video_dequeue (const struct device *dev, enum video_endpoint_id ep, struct video_buffer **buf, k_timeout_t timeout) |
Dequeue a video buffer. | |
static int | video_flush (const struct device *dev, enum video_endpoint_id ep, bool cancel) |
Flush endpoint buffers. | |
static int | video_stream_start (const struct device *dev) |
Start the video device function. | |
static int | video_stream_stop (const struct device *dev) |
Stop the video device function. | |
static int | video_get_caps (const struct device *dev, enum video_endpoint_id ep, struct video_caps *caps) |
Get the capabilities of a video endpoint. | |
static int | video_set_ctrl (const struct device *dev, unsigned int cid, void *value) |
Set the value of a control. | |
static int | video_get_ctrl (const struct device *dev, unsigned int cid, void *value) |
Get the current value of a control. | |
static int | video_set_signal (const struct device *dev, enum video_endpoint_id ep, struct k_poll_signal *signal) |
Register/Unregister k_poll signal for a video endpoint. | |
struct video_buffer * | video_buffer_aligned_alloc (size_t size, size_t align) |
Allocate aligned video buffer. | |
struct video_buffer * | video_buffer_alloc (size_t size) |
Allocate video buffer. | |
void | video_buffer_release (struct video_buffer *buf) |
Release a video buffer. | |
Video Interface.
#define video_fourcc | ( | a, | |
b, | |||
c, | |||
d | |||
) | ((uint32_t)(a) | ((uint32_t)(b) << 8) | ((uint32_t)(c) << 16) | ((uint32_t)(d) << 24)) |
#include <zephyr/drivers/video.h>
video_api_dequeue_t |
#include <zephyr/drivers/video.h>
Dequeue a buffer from the driver’s outgoing queue.
See video_dequeue() for argument descriptions.
video_api_enqueue_t |
#include <zephyr/drivers/video.h>
Enqueue a buffer in the driver’s incoming queue.
See video_enqueue() for argument descriptions.
video_api_flush_t |
#include <zephyr/drivers/video.h>
Flush endpoint buffers, buffer are moved from incoming queue to outgoing queue.
See video_flush() for argument descriptions.
video_api_get_caps_t |
#include <zephyr/drivers/video.h>
Get capabilities of a video endpoint.
See video_get_caps() for argument descriptions.
video_api_get_ctrl_t |
#include <zephyr/drivers/video.h>
Get a video control value.
See video_get_ctrl() for argument descriptions.
video_api_get_format_t |
#include <zephyr/drivers/video.h>
Get current video format.
See video_get_format() for argument descriptions.
video_api_set_ctrl_t |
#include <zephyr/drivers/video.h>
Set a video control value.
See video_set_ctrl() for argument descriptions.
video_api_set_format_t |
#include <zephyr/drivers/video.h>
Set video format.
See video_set_format() for argument descriptions.
video_api_set_signal_t |
#include <zephyr/drivers/video.h>
Register/Unregister poll signal for buffer events.
See video_set_signal() for argument descriptions.
video_api_stream_start_t |
#include <zephyr/drivers/video.h>
Start the capture or output process.
See video_stream_start() for argument descriptions.
video_api_stream_stop_t |
#include <zephyr/drivers/video.h>
Stop the capture or output process.
See video_stream_stop() for argument descriptions.
enum video_endpoint_id |
#include <zephyr/drivers/video.h>
video_endpoint_id enum
Identify the video device endpoint.
Enumerator | |
---|---|
VIDEO_EP_NONE | |
VIDEO_EP_ANY | |
VIDEO_EP_IN | |
VIDEO_EP_OUT |
enum video_signal_result |
#include <zephyr/drivers/video.h>
video_event enum
Identify video event.
Enumerator | |
---|---|
VIDEO_BUF_DONE | |
VIDEO_BUF_ABORTED | |
VIDEO_BUF_ERROR |
struct video_buffer * video_buffer_aligned_alloc | ( | size_t | size, |
size_t | align | ||
) |
#include <zephyr/drivers/video.h>
Allocate aligned video buffer.
size | Size of the video buffer (in bytes). |
align | Alignment of the requested memory, must be a power of two. |
pointer | to allocated video buffer |
struct video_buffer * video_buffer_alloc | ( | size_t | size | ) |
#include <zephyr/drivers/video.h>
Allocate video buffer.
size | Size of the video buffer (in bytes). |
pointer | to allocated video buffer |
void video_buffer_release | ( | struct video_buffer * | buf | ) |
#include <zephyr/drivers/video.h>
Release a video buffer.
buf | Pointer to the video buffer to release. |
|
inlinestatic |
#include <zephyr/drivers/video.h>
Dequeue a video buffer.
Dequeue a filled (capturing) or displayed (output) buffer from the driver’s endpoint outgoing queue.
dev | Pointer to the device structure for the driver instance. |
ep | Endpoint ID. |
buf | Pointer a video buffer pointer. |
timeout | Timeout |
0 | Is successful. |
-EINVAL | If parameters are invalid. |
-EIO | General input / output error. |
|
inlinestatic |
#include <zephyr/drivers/video.h>
Enqueue a video buffer.
Enqueue an empty (capturing) or filled (output) video buffer in the driver’s endpoint incoming queue.
dev | Pointer to the device structure for the driver instance. |
ep | Endpoint ID. |
buf | Pointer to the video buffer. |
0 | Is successful. |
-EINVAL | If parameters are invalid. |
-EIO | General input / output error. |
|
inlinestatic |
#include <zephyr/drivers/video.h>
Flush endpoint buffers.
A call to flush finishes when all endpoint buffers have been moved from incoming queue to outgoing queue. Either because canceled or fully processed through the video function.
dev | Pointer to the device structure for the driver instance. |
ep | Endpoint ID. |
cancel | If true, cancel buffer processing instead of waiting for completion. |
0 | Is successful, -ERRNO code otherwise. |
|
inlinestatic |
#include <zephyr/drivers/video.h>
Get the capabilities of a video endpoint.
dev | Pointer to the device structure for the driver instance. |
ep | Endpoint ID. |
caps | Pointer to the video_caps struct to fill. |
0 | Is successful, -ERRNO code otherwise. |
|
inlinestatic |
#include <zephyr/drivers/video.h>
Get the current value of a control.
This retrieve the value of a video control, value type depends on control ID, and must be interpreted accordingly.
dev | Pointer to the device structure for the driver instance. |
cid | Control ID. |
value | Pointer to the control value. |
0 | Is successful. |
-EINVAL | If parameters are invalid. |
-ENOTSUP | If format is not supported. |
-EIO | General input / output error. |
|
inlinestatic |
#include <zephyr/drivers/video.h>
Get video format.
Get video device current video format.
dev | Pointer to the device structure for the driver instance. |
ep | Endpoint ID. |
fmt | Pointer to video format struct. |
pointer | to video format |
|
inlinestatic |
#include <zephyr/drivers/video.h>
Set the value of a control.
This set the value of a video control, value type depends on control ID, and must be interpreted accordingly.
dev | Pointer to the device structure for the driver instance. |
cid | Control ID. |
value | Pointer to the control value. |
0 | Is successful. |
-EINVAL | If parameters are invalid. |
-ENOTSUP | If format is not supported. |
-EIO | General input / output error. |
|
inlinestatic |
#include <zephyr/drivers/video.h>
Set video format.
Configure video device with a specific format.
dev | Pointer to the device structure for the driver instance. |
ep | Endpoint ID. |
fmt | Pointer to a video format struct. |
0 | Is successful. |
-EINVAL | If parameters are invalid. |
-ENOTSUP | If format is not supported. |
-EIO | General input / output error. |
|
inlinestatic |
#include <zephyr/drivers/video.h>
Register/Unregister k_poll signal for a video endpoint.
Register a poll signal to the endpoint, which will be signaled on frame completion (done, aborted, error). Registering a NULL poll signal unregisters any previously registered signal.
dev | Pointer to the device structure for the driver instance. |
ep | Endpoint ID. |
signal | Pointer to k_poll_signal |
0 | Is successful, -ERRNO code otherwise. |
|
inlinestatic |
#include <zephyr/drivers/video.h>
Start the video device function.
video_stream_start is called to enter ‘streaming’ state (capture, output...). The driver may receive buffers with video_enqueue() before video_stream_start is called. If driver/device needs a minimum number of buffers before being able to start streaming, then driver set the min_vbuf_count to the related endpoint capabilities.
0 | Is successful. |
-EIO | General input / output error. |
|
inlinestatic |
#include <zephyr/drivers/video.h>
Stop the video device function.
On video_stream_stop, driver must stop any transactions or wait until they finish.
0 | Is successful. |
-EIO | General input / output error. |