Zephyr API Documentation 4.4.0-rc1
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
Video Driver Backend API

Data Structures

struct  video_driver_api
  Driver Operations Video driver operations More...

Typedefs

typedef int(* video_api_format_t) (const struct device *dev, struct video_format *fmt)
 Callback API to set or get video format.
typedef int(* video_api_frmival_t) (const struct device *dev, struct video_frmival *frmival)
 Callback API to set or get video frame interval.
typedef int(* video_api_enum_frmival_t) (const struct device *dev, struct video_frmival_enum *fie)
 Callback API to enumerate supported frame intervals for a format.
typedef int(* video_api_enqueue_t) (const struct device *dev, struct video_buffer *buf)
 Callback API to enqueue a buffer in the driver incoming queue.
typedef int(* video_api_dequeue_t) (const struct device *dev, struct video_buffer **buf, k_timeout_t timeout)
 Callback API to dequeue a buffer from the driver outgoing queue.
typedef int(* video_api_flush_t) (const struct device *dev, bool cancel)
 Callback API to flush endpoint buffers.
typedef int(* video_api_set_stream_t) (const struct device *dev, bool enable, enum video_buf_type type)
 Callback API to start or stop streaming on the video device.
typedef int(* video_api_ctrl_t) (const struct device *dev, uint32_t cid)
 Callback API to set or get a video control value.
typedef int(* video_api_get_caps_t) (const struct device *dev, struct video_caps *caps)
 Callback API to get capabilities of a video endpoint.
typedef int(* video_api_transform_cap_t) (const struct device *const dev, const struct video_format_cap *const cap, struct video_format_cap *const res_cap, enum video_buf_type type, uint16_t ind)
 Callback API to transform a format capability across m2m device endpoints.
typedef int(* video_api_set_signal_t) (const struct device *dev, struct k_poll_signal *sig)
 Callback API to register or unregister poll signal for buffer events.
typedef int(* video_api_selection_t) (const struct device *dev, struct video_selection *sel)
 Callback API to set or get video selection (crop/compose).

Detailed Description

This group contains the API type definitions, callback signatures, and other helpers required to implement a Video driver.

Typedef Documentation

◆ video_api_ctrl_t

typedef int(* video_api_ctrl_t) (const struct device *dev, uint32_t cid)

#include <zephyr/drivers/video.h>

Callback API to set or get a video control value.

Parameters
devPointer to the device structure.
cidId of the control to set/get its value.

◆ video_api_dequeue_t

typedef int(* video_api_dequeue_t) (const struct device *dev, struct video_buffer **buf, k_timeout_t timeout)

#include <zephyr/drivers/video.h>

Callback API to dequeue a buffer from the driver outgoing queue.

See video_dequeue() for argument description.

◆ video_api_enqueue_t

typedef int(* video_api_enqueue_t) (const struct device *dev, struct video_buffer *buf)

#include <zephyr/drivers/video.h>

Callback API to enqueue a buffer in the driver incoming queue.

See video_enqueue() for argument description.

◆ video_api_enum_frmival_t

typedef int(* video_api_enum_frmival_t) (const struct device *dev, struct video_frmival_enum *fie)

#include <zephyr/drivers/video.h>

Callback API to enumerate supported frame intervals for a format.

See video_enum_frmival() for argument description.

◆ video_api_flush_t

typedef int(* video_api_flush_t) (const struct device *dev, bool cancel)

#include <zephyr/drivers/video.h>

Callback API to flush endpoint buffers.

See video_flush() for argument description.

◆ video_api_format_t

typedef int(* video_api_format_t) (const struct device *dev, struct video_format *fmt)

#include <zephyr/drivers/video.h>

Callback API to set or get video format.

See video_set_format() and video_get_format() for argument description.

◆ video_api_frmival_t

typedef int(* video_api_frmival_t) (const struct device *dev, struct video_frmival *frmival)

#include <zephyr/drivers/video.h>

Callback API to set or get video frame interval.

See video_set_frmival() and video_get_frmival() for argument description.

◆ video_api_get_caps_t

typedef int(* video_api_get_caps_t) (const struct device *dev, struct video_caps *caps)

#include <zephyr/drivers/video.h>

Callback API to get capabilities of a video endpoint.

See video_get_caps() for argument description.

◆ video_api_selection_t

typedef int(* video_api_selection_t) (const struct device *dev, struct video_selection *sel)

#include <zephyr/drivers/video.h>

Callback API to set or get video selection (crop/compose).

◆ video_api_set_signal_t

typedef int(* video_api_set_signal_t) (const struct device *dev, struct k_poll_signal *sig)

#include <zephyr/drivers/video.h>

Callback API to register or unregister poll signal for buffer events.

See video_set_signal() for argument description.

◆ video_api_set_stream_t

typedef int(* video_api_set_stream_t) (const struct device *dev, bool enable, enum video_buf_type type)

#include <zephyr/drivers/video.h>

Callback API to start or stop streaming on the video device.

Start (enable == true) or stop (enable == false) streaming on the video device.

Parameters
devPointer to the device structure.
enableIf true, start streaming, otherwise stop streaming.
typeThe type of the buffers stream to start or stop.
Return values
0on success, otherwise a negative errno code.

◆ video_api_transform_cap_t

typedef int(* video_api_transform_cap_t) (const struct device *const dev, const struct video_format_cap *const cap, struct video_format_cap *const res_cap, enum video_buf_type type, uint16_t ind)

#include <zephyr/drivers/video.h>

Callback API to transform a format capability across m2m device endpoints.

See video_transform_cap() for argument description.