|
Zephyr Project API 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 <include/zephyr/drivers/video.h>
| video_api_dequeue_t |
#include <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 <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 <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 <include/zephyr/drivers/video.h>
Get capabilities of a video endpoint.
See video_get_caps() for argument descriptions.
| video_api_get_ctrl_t |
#include <include/zephyr/drivers/video.h>
Get a video control value.
See video_get_ctrl() for argument descriptions.
| video_api_get_format_t |
#include <include/zephyr/drivers/video.h>
Get current video format.
See video_get_format() for argument descriptions.
| video_api_set_ctrl_t |
#include <include/zephyr/drivers/video.h>
Set a video control value.
See video_set_ctrl() for argument descriptions.
| video_api_set_format_t |
#include <include/zephyr/drivers/video.h>
Set video format.
See video_set_format() for argument descriptions.
| video_api_set_signal_t |
#include <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 <include/zephyr/drivers/video.h>
Start the capture or output process.
See video_stream_start() for argument descriptions.
| video_api_stream_stop_t |
#include <include/zephyr/drivers/video.h>
Stop the capture or output process.
See video_stream_stop() for argument descriptions.
| enum video_endpoint_id |
#include <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 <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 <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 <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 <include/zephyr/drivers/video.h>
Release a video buffer.
| buf | Pointer to the video buffer to release. |
|
inlinestatic |
#include <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 <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 <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 <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 <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 <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 <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 <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 <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 <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 <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. |