Zephyr API Documentation  2.7.0-rc2
A Scalable Open Source RTOS
video.h File Reference

Public APIs for Video. More...

#include <device.h>
#include <stddef.h>
#include <zephyr.h>
#include <zephyr/types.h>
#include <drivers/video-controls.h>

Go to the source code of this file.

Data Structures

struct  video_format
 video format structure More...
 
struct  video_format_cap
 video format capability More...
 
struct  video_caps
 video 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))
 
#define VIDEO_PIX_FMT_BGGR8   video_fourcc('B', 'G', 'G', 'R') /* 8 BGBG.. GRGR.. */
 
#define VIDEO_PIX_FMT_GBRG8   video_fourcc('G', 'B', 'R', 'G') /* 8 GBGB.. RGRG.. */
 
#define VIDEO_PIX_FMT_GRBG8   video_fourcc('G', 'R', 'B', 'G') /* 8 GRGR.. BGBG.. */
 
#define VIDEO_PIX_FMT_RGGB8   video_fourcc('R', 'G', 'G', 'B') /* 8 RGRG.. GBGB.. */
 
#define VIDEO_PIX_FMT_RGB565   video_fourcc('R', 'G', 'B', 'P') /* 16 RGB-5-6-5 */
 
#define VIDEO_PIX_FMT_JPEG   video_fourcc('J', 'P', 'E', 'G') /* 8 JPEG */
 
#define VIDEO_PIX_FMT_YUYV   video_fourcc('Y', 'U', 'Y', 'V') /* 16 YUYV */
 
#define VIDEO_PIX_FMT_YVYU   video_fourcc('Y', 'V', 'Y', 'U') /* 16 YVYU */
 
#define VIDEO_PIX_FMT_VYVU   video_fourcc('V', 'Y', 'V', 'U') /* 16 VYVU */
 
#define VIDEO_PIX_FMT_UYVY   video_fourcc('U', 'Y', 'V', 'Y') /* 16 UYVY */
 

Typedefs

typedef int(* video_api_set_format_t) (const struct device *dev, enum video_endpoint_id ep, struct video_format *fmt)
 Set video format See video_set_format() for argument descriptions. More...
 
typedef int(* video_api_get_format_t) (const struct device *dev, enum video_endpoint_id ep, struct video_format *fmt)
 get current video format See video_get_format() for argument descriptions. More...
 
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. See video_enqueue() for argument descriptions. More...
 
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. See video_dequeue() for argument descriptions. More...
 
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. See video_flush() for argument descriptions. More...
 
typedef int(* video_api_stream_start_t) (const struct device *dev)
 Start the capture or output process. See video_stream_start() for argument descriptions. More...
 
typedef int(* video_api_stream_stop_t) (const struct device *dev)
 Stop the capture or output process. See video_stream_stop() for argument descriptions. More...
 
typedef int(* video_api_set_ctrl_t) (const struct device *dev, unsigned int cid, void *value)
 set a video control value. See video_set_ctrl() for argument descriptions. More...
 
typedef int(* video_api_get_ctrl_t) (const struct device *dev, unsigned int cid, void *value)
 get a video control value. See video_get_ctrl() for argument descriptions. More...
 
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. See video_get_caps() for argument descriptions. More...
 
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. See video_set_signal() for argument descriptions. More...
 

Enumerations

enum  video_endpoint_id { VIDEO_EP_NONE , VIDEO_EP_ANY , VIDEO_EP_IN , VIDEO_EP_OUT }
 video_endpoint_id enum Identify the video device endpoint. More...
 
enum  video_signal_result { VIDEO_BUF_DONE , VIDEO_BUF_ABORTED , VIDEO_BUF_ERROR }
 video_event enum Identify video event. More...
 

Functions

static int video_set_format (const struct device *dev, enum video_endpoint_id ep, struct video_format *fmt)
 Set video format. More...
 
static int video_get_format (const struct device *dev, enum video_endpoint_id ep, struct video_format *fmt)
 Get video format. More...
 
static int video_enqueue (const struct device *dev, enum video_endpoint_id ep, struct video_buffer *buf)
 Enqueue a video buffer. More...
 
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. More...
 
static int video_flush (const struct device *dev, enum video_endpoint_id ep, bool cancel)
 Flush endpoint buffers. More...
 
static int video_stream_start (const struct device *dev)
 Start the video device function. More...
 
static int video_stream_stop (const struct device *dev)
 Stop the video device function. More...
 
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. More...
 
static int video_set_ctrl (const struct device *dev, unsigned int cid, void *value)
 Set the value of a control. More...
 
static int video_get_ctrl (const struct device *dev, unsigned int cid, void *value)
 Get the current value of a control. More...
 
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. More...
 
struct video_buffervideo_buffer_alloc (size_t size)
 Allocate video buffer. More...
 
void video_buffer_release (struct video_buffer *buf)
 Release a video buffer. More...
 

Detailed Description

Public APIs for Video.