Zephyr API Documentation 4.1.99
A Scalable Open Source RTOS
 4.1.99
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
video.h
Go to the documentation of this file.
1
7/*
8 * Copyright (c) 2019 Linaro Limited.
9 * Copyright 2025 NXP
10 *
11 * SPDX-License-Identifier: Apache-2.0
12 */
13#ifndef ZEPHYR_INCLUDE_VIDEO_H_
14#define ZEPHYR_INCLUDE_VIDEO_H_
15
25#include <zephyr/device.h>
26#include <stddef.h>
27#include <zephyr/kernel.h>
28
29#include <zephyr/types.h>
30
31#ifdef __cplusplus
32extern "C" {
33#endif
34
35/*
36 * Flag used by @ref video_caps structure to indicate endpoint operates on
37 * buffers the size of the video frame
38 */
39#define LINE_COUNT_HEIGHT (-1)
40
41struct video_control;
42
65
88
119
147
159
172
187
198 const struct video_format *format;
202 union {
203 struct video_frmival discrete;
204 struct video_frmival_stepwise stepwise;
205 };
206};
207
223
234
241typedef int (*video_api_set_format_t)(const struct device *dev, enum video_endpoint_id ep,
242 struct video_format *fmt);
243
250typedef int (*video_api_get_format_t)(const struct device *dev, enum video_endpoint_id ep,
251 struct video_format *fmt);
252
259typedef int (*video_api_set_frmival_t)(const struct device *dev, enum video_endpoint_id ep,
260 struct video_frmival *frmival);
261
268typedef int (*video_api_get_frmival_t)(const struct device *dev, enum video_endpoint_id ep,
269 struct video_frmival *frmival);
270
277typedef int (*video_api_enum_frmival_t)(const struct device *dev, enum video_endpoint_id ep,
278 struct video_frmival_enum *fie);
279
286typedef int (*video_api_enqueue_t)(const struct device *dev, enum video_endpoint_id ep,
287 struct video_buffer *buf);
288
295typedef int (*video_api_dequeue_t)(const struct device *dev, enum video_endpoint_id ep,
296 struct video_buffer **buf, k_timeout_t timeout);
297
305typedef int (*video_api_flush_t)(const struct device *dev, enum video_endpoint_id ep, bool cancel);
306
318typedef int (*video_api_set_stream_t)(const struct device *dev, bool enable);
319
327typedef int (*video_api_ctrl_t)(const struct device *dev, uint32_t cid);
328
335typedef int (*video_api_get_caps_t)(const struct device *dev, enum video_endpoint_id ep,
336 struct video_caps *caps);
337
344typedef int (*video_api_set_signal_t)(const struct device *dev, enum video_endpoint_id ep,
345 struct k_poll_signal *signal);
346
364
379static inline int video_set_format(const struct device *dev, enum video_endpoint_id ep,
380 struct video_format *fmt)
381{
382 const struct video_driver_api *api = (const struct video_driver_api *)dev->api;
383
384 if (api->set_format == NULL) {
385 return -ENOSYS;
386 }
387
388 return api->set_format(dev, ep, fmt);
389}
390
402static inline int video_get_format(const struct device *dev, enum video_endpoint_id ep,
403 struct video_format *fmt)
404{
405 const struct video_driver_api *api = (const struct video_driver_api *)dev->api;
406
407 if (api->get_format == NULL) {
408 return -ENOSYS;
409 }
410
411 return api->get_format(dev, ep, fmt);
412}
413
431static inline int video_set_frmival(const struct device *dev, enum video_endpoint_id ep,
432 struct video_frmival *frmival)
433{
434 const struct video_driver_api *api = (const struct video_driver_api *)dev->api;
435
436 if (api->set_frmival == NULL) {
437 return -ENOSYS;
438 }
439
440 return api->set_frmival(dev, ep, frmival);
441}
442
457static inline int video_get_frmival(const struct device *dev, enum video_endpoint_id ep,
458 struct video_frmival *frmival)
459{
460 const struct video_driver_api *api = (const struct video_driver_api *)dev->api;
461
462 if (api->get_frmival == NULL) {
463 return -ENOSYS;
464 }
465
466 return api->get_frmival(dev, ep, frmival);
467}
468
487static inline int video_enum_frmival(const struct device *dev, enum video_endpoint_id ep,
488 struct video_frmival_enum *fie)
489{
490 const struct video_driver_api *api = (const struct video_driver_api *)dev->api;
491
492 if (api->enum_frmival == NULL) {
493 return -ENOSYS;
494 }
495
496 return api->enum_frmival(dev, ep, fie);
497}
498
513static inline int video_enqueue(const struct device *dev, enum video_endpoint_id ep,
514 struct video_buffer *buf)
515{
516 const struct video_driver_api *api = (const struct video_driver_api *)dev->api;
517
518 if (api->enqueue == NULL) {
519 return -ENOSYS;
520 }
521
522 return api->enqueue(dev, ep, buf);
523}
524
540static inline int video_dequeue(const struct device *dev, enum video_endpoint_id ep,
541 struct video_buffer **buf, k_timeout_t timeout)
542{
543 const struct video_driver_api *api = (const struct video_driver_api *)dev->api;
544
545 if (api->dequeue == NULL) {
546 return -ENOSYS;
547 }
548
549 return api->dequeue(dev, ep, buf, timeout);
550}
551
566static inline int video_flush(const struct device *dev, enum video_endpoint_id ep, bool cancel)
567{
568 const struct video_driver_api *api = (const struct video_driver_api *)dev->api;
569
570 if (api->flush == NULL) {
571 return -ENOSYS;
572 }
573
574 return api->flush(dev, ep, cancel);
575}
576
589static inline int video_stream_start(const struct device *dev)
590{
591 const struct video_driver_api *api = (const struct video_driver_api *)dev->api;
592
593 if (api->set_stream == NULL) {
594 return -ENOSYS;
595 }
596
597 return api->set_stream(dev, true);
598}
599
609static inline int video_stream_stop(const struct device *dev)
610{
611 const struct video_driver_api *api = (const struct video_driver_api *)dev->api;
612 int ret;
613
614 if (api->set_stream == NULL) {
615 return -ENOSYS;
616 }
617
618 ret = api->set_stream(dev, false);
619 video_flush(dev, VIDEO_EP_ALL, true);
620
621 return ret;
622}
623
633static inline int video_get_caps(const struct device *dev, enum video_endpoint_id ep,
634 struct video_caps *caps)
635{
636 const struct video_driver_api *api = (const struct video_driver_api *)dev->api;
637
638 if (api->get_caps == NULL) {
639 return -ENOSYS;
640 }
641
642 return api->get_caps(dev, ep, caps);
643}
644
659int video_set_ctrl(const struct device *dev, struct video_control *control);
660
675int video_get_ctrl(const struct device *dev, struct video_control *control);
676
677struct video_ctrl_query;
678
698int video_query_ctrl(const struct device *dev, struct video_ctrl_query *cq);
699
710void video_print_ctrl(const struct device *const dev, const struct video_ctrl_query *const cq);
711
725static inline int video_set_signal(const struct device *dev, enum video_endpoint_id ep,
726 struct k_poll_signal *signal)
727{
728 const struct video_driver_api *api = (const struct video_driver_api *)dev->api;
729
730 if (api->set_signal == NULL) {
731 return -ENOSYS;
732 }
733
734 return api->set_signal(dev, ep, signal);
735}
736
746struct video_buffer *video_buffer_aligned_alloc(size_t size, size_t align, k_timeout_t timeout);
747
757
764
775int video_format_caps_index(const struct video_format_cap *fmts, const struct video_format *fmt,
776 size_t *idx);
777
785static inline uint64_t video_frmival_nsec(const struct video_frmival *frmival)
786{
787 return (uint64_t)NSEC_PER_SEC * frmival->numerator / frmival->denominator;
788}
789
798 const struct video_frmival *desired,
799 struct video_frmival *match);
800
819void video_closest_frmival(const struct device *dev, enum video_endpoint_id ep,
820 struct video_frmival_enum *match);
821
833#define VIDEO_FOURCC(a, b, c, d) \
834 ((uint32_t)(a) | ((uint32_t)(b) << 8) | ((uint32_t)(c) << 16) | ((uint32_t)(d) << 24))
835
845#define VIDEO_FOURCC_FROM_STR(str) VIDEO_FOURCC((str)[0], (str)[1], (str)[2], (str)[3])
846
856#define VIDEO_FOURCC_TO_STR(fourcc) \
857 ((char[]){ \
858 (char)((fourcc) & 0xFF), \
859 (char)(((fourcc) >> 8) & 0xFF), \
860 (char)(((fourcc) >> 16) & 0xFF), \
861 (char)(((fourcc) >> 24) & 0xFF), \
862 '\0' \
863 })
864
886#define VIDEO_PIX_FMT_BGGR8 VIDEO_FOURCC('B', 'A', '8', '1')
887
895#define VIDEO_PIX_FMT_GBRG8 VIDEO_FOURCC('G', 'B', 'R', 'G')
896
904#define VIDEO_PIX_FMT_GRBG8 VIDEO_FOURCC('G', 'R', 'B', 'G')
905
913#define VIDEO_PIX_FMT_RGGB8 VIDEO_FOURCC('R', 'G', 'G', 'B')
914
922#define VIDEO_PIX_FMT_SBGGR10P VIDEO_FOURCC('p', 'B', 'A', 'A')
923
931#define VIDEO_PIX_FMT_SGBRG10P VIDEO_FOURCC('p', 'G', 'A', 'A')
932
940#define VIDEO_PIX_FMT_SGRBG10P VIDEO_FOURCC('p', 'g', 'A', 'A')
941
949#define VIDEO_PIX_FMT_SRGGB10P VIDEO_FOURCC('p', 'R', 'A', 'A')
950
958#define VIDEO_PIX_FMT_SBGGR12P VIDEO_FOURCC('p', 'B', 'C', 'C')
959
967#define VIDEO_PIX_FMT_SGBRG12P VIDEO_FOURCC('p', 'G', 'C', 'C')
968
976#define VIDEO_PIX_FMT_SGRBG12P VIDEO_FOURCC('p', 'g', 'C', 'C')
977
985#define VIDEO_PIX_FMT_SRGGB12P VIDEO_FOURCC('p', 'R', 'C', 'C')
986
994#define VIDEO_PIX_FMT_SBGGR14P VIDEO_FOURCC('p', 'B', 'E', 'E')
995
1003#define VIDEO_PIX_FMT_SGBRG14P VIDEO_FOURCC('p', 'G', 'E', 'E')
1004
1012#define VIDEO_PIX_FMT_SGRBG14P VIDEO_FOURCC('p', 'g', 'E', 'E')
1013
1021#define VIDEO_PIX_FMT_SRGGB14P VIDEO_FOURCC('p', 'R', 'E', 'E')
1022
1048#define VIDEO_PIX_FMT_GREY VIDEO_FOURCC('G', 'R', 'E', 'Y')
1049
1056#define VIDEO_PIX_FMT_Y10P VIDEO_FOURCC('Y', '1', '0', 'P')
1057
1065#define VIDEO_PIX_FMT_Y12P VIDEO_FOURCC('Y', '1', '2', 'P')
1066
1074#define VIDEO_PIX_FMT_Y14P VIDEO_FOURCC('Y', '1', '4', 'P')
1075
1095#define VIDEO_PIX_FMT_RGB565X VIDEO_FOURCC('R', 'G', 'B', 'R')
1096
1106#define VIDEO_PIX_FMT_RGB565 VIDEO_FOURCC('R', 'G', 'B', 'P')
1107
1115#define VIDEO_PIX_FMT_XRGB32 VIDEO_FOURCC('B', 'X', '2', '4')
1116
1135#define VIDEO_PIX_FMT_YUYV VIDEO_FOURCC('Y', 'U', 'Y', 'V')
1136
1144#define VIDEO_PIX_FMT_XYUV32 VIDEO_FOURCC('X', 'Y', 'U', 'V')
1145
1158#define VIDEO_PIX_FMT_JPEG VIDEO_FOURCC('J', 'P', 'E', 'G')
1159
1172static inline unsigned int video_bits_per_pixel(uint32_t pixfmt)
1173{
1174 switch (pixfmt) {
1179 case VIDEO_PIX_FMT_GREY:
1180 return 8;
1185 case VIDEO_PIX_FMT_Y10P:
1186 return 10;
1191 case VIDEO_PIX_FMT_Y12P:
1192 return 12;
1197 case VIDEO_PIX_FMT_Y14P:
1198 return 14;
1200 case VIDEO_PIX_FMT_YUYV:
1201 return 16;
1204 return 32;
1205 default:
1206 /* Variable number of bits per pixel or unknown format */
1207 return 0;
1208 }
1209}
1210
1215#ifdef __cplusplus
1216}
1217#endif
1218
1223#endif /* ZEPHYR_INCLUDE_VIDEO_H_ */
#define NSEC_PER_SEC
number of nanoseconds per second
Definition sys_clock.h:113
#define ENOSYS
Function not implemented.
Definition errno.h:82
video_signal_result
video_event enum
Definition video.h:229
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.
Definition video.h:286
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.
Definition video.h:295
struct video_buffer * video_buffer_aligned_alloc(size_t size, size_t align, k_timeout_t timeout)
Allocate aligned video buffer.
int video_set_ctrl(const struct device *dev, struct video_control *control)
Set the value of a control.
int(* video_api_set_stream_t)(const struct device *dev, bool enable)
Start or stop streaming on the video device.
Definition video.h:318
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.
Definition video.h:633
static int video_set_frmival(const struct device *dev, enum video_endpoint_id ep, struct video_frmival *frmival)
Set video frame interval.
Definition video.h:431
int(* video_api_ctrl_t)(const struct device *dev, uint32_t cid)
Set/Get a video control value.
Definition video.h:327
static int video_stream_stop(const struct device *dev)
Stop the video device function.
Definition video.h:609
void video_closest_frmival(const struct device *dev, enum video_endpoint_id ep, struct video_frmival_enum *match)
Find the closest match to a frame interval value within a video device.
video_frmival_type
video_frmival_type enum
Definition video.h:153
static uint64_t video_frmival_nsec(const struct video_frmival *frmival)
Compute the difference between two frame intervals.
Definition video.h:785
static int video_stream_start(const struct device *dev)
Start the video device function.
Definition video.h:589
void video_print_ctrl(const struct device *const dev, const struct video_ctrl_query *const cq)
Print all the information of a control.
int video_get_ctrl(const struct device *dev, struct video_control *control)
Get the current value of a control.
int(* video_api_get_format_t)(const struct device *dev, enum video_endpoint_id ep, struct video_format *fmt)
Get current video format.
Definition video.h:250
int video_query_ctrl(const struct device *dev, struct video_ctrl_query *cq)
Query information about a control.
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.
Definition video.h:540
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.
Definition video.h:344
static int video_get_frmival(const struct device *dev, enum video_endpoint_id ep, struct video_frmival *frmival)
Get video frame interval.
Definition video.h:457
int(* video_api_get_frmival_t)(const struct device *dev, enum video_endpoint_id ep, struct video_frmival *frmival)
Get current video frame interval.
Definition video.h:268
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.
Definition video.h:725
int(* video_api_enum_frmival_t)(const struct device *dev, enum video_endpoint_id ep, struct video_frmival_enum *fie)
List all supported frame intervals of a given format.
Definition video.h:277
static int video_enum_frmival(const struct device *dev, enum video_endpoint_id ep, struct video_frmival_enum *fie)
List video frame intervals.
Definition video.h:487
static int video_get_format(const struct device *dev, enum video_endpoint_id ep, struct video_format *fmt)
Get video format.
Definition video.h:402
static int video_enqueue(const struct device *dev, enum video_endpoint_id ep, struct video_buffer *buf)
Enqueue a video buffer.
Definition video.h:513
int(* video_api_set_frmival_t)(const struct device *dev, enum video_endpoint_id ep, struct video_frmival *frmival)
Set video frame interval.
Definition video.h:259
void video_closest_frmival_stepwise(const struct video_frmival_stepwise *stepwise, const struct video_frmival *desired, struct video_frmival *match)
Find the closest match to a frame interval value within a stepwise frame interval.
void video_buffer_release(struct video_buffer *buf)
Release a video buffer.
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.
Definition video.h:305
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.
Definition video.h:335
int video_format_caps_index(const struct video_format_cap *fmts, const struct video_format *fmt, size_t *idx)
Search for a format that matches in a list of capabilities.
static int video_set_format(const struct device *dev, enum video_endpoint_id ep, struct video_format *fmt)
Set video format.
Definition video.h:379
static int video_flush(const struct device *dev, enum video_endpoint_id ep, bool cancel)
Flush endpoint buffers.
Definition video.h:566
struct video_buffer * video_buffer_alloc(size_t size, k_timeout_t timeout)
Allocate video buffer.
int(* video_api_set_format_t)(const struct device *dev, enum video_endpoint_id ep, struct video_format *fmt)
Set video format.
Definition video.h:241
video_endpoint_id
video_endpoint_id enum
Definition video.h:213
@ VIDEO_BUF_ABORTED
Definition video.h:231
@ VIDEO_BUF_DONE
Definition video.h:230
@ VIDEO_BUF_ERROR
Definition video.h:232
@ VIDEO_FRMIVAL_TYPE_DISCRETE
discrete frame interval type
Definition video.h:155
@ VIDEO_FRMIVAL_TYPE_STEPWISE
stepwise frame interval type
Definition video.h:157
@ VIDEO_EP_IN
Targets all input endpoints of the device: those consuming data.
Definition video.h:219
@ VIDEO_EP_NONE
Targets some part of the video device not bound to an endpoint.
Definition video.h:215
@ VIDEO_EP_OUT
Targets all output endpoints of the device: those producing data.
Definition video.h:221
@ VIDEO_EP_ALL
Targets all input or output endpoints of the device.
Definition video.h:217
#define VIDEO_PIX_FMT_XYUV32
The first byte is empty (X) for each pixel.
Definition video.h:1144
#define VIDEO_PIX_FMT_SGRBG12P
Definition video.h:976
#define VIDEO_PIX_FMT_RGGB8
Definition video.h:913
#define VIDEO_PIX_FMT_Y12P
Definition video.h:1065
#define VIDEO_PIX_FMT_SRGGB12P
Definition video.h:985
#define VIDEO_PIX_FMT_SBGGR10P
Definition video.h:922
#define VIDEO_PIX_FMT_Y10P
Definition video.h:1056
#define VIDEO_PIX_FMT_SRGGB10P
Definition video.h:949
#define VIDEO_PIX_FMT_BGGR8
Definition video.h:886
#define VIDEO_PIX_FMT_SRGGB14P
Definition video.h:1021
#define VIDEO_PIX_FMT_GRBG8
Definition video.h:904
#define VIDEO_PIX_FMT_SGBRG14P
Definition video.h:1003
#define VIDEO_PIX_FMT_XRGB32
The first byte is empty (X) for each pixel.
Definition video.h:1115
#define VIDEO_PIX_FMT_SGRBG10P
Definition video.h:940
#define VIDEO_PIX_FMT_GREY
Same as Y8 (8-bit luma-only) following the standard FOURCC naming, or L8 in some graphics libraries.
Definition video.h:1048
#define VIDEO_PIX_FMT_SBGGR12P
Definition video.h:958
static unsigned int video_bits_per_pixel(uint32_t pixfmt)
Get number of bits per pixel of a pixel format.
Definition video.h:1172
#define VIDEO_PIX_FMT_SBGGR14P
Definition video.h:994
#define VIDEO_PIX_FMT_YUYV
There is either a missing channel per pixel, U or V.
Definition video.h:1135
#define VIDEO_PIX_FMT_SGBRG10P
Definition video.h:931
#define VIDEO_PIX_FMT_Y14P
Definition video.h:1074
#define VIDEO_PIX_FMT_SGRBG14P
Definition video.h:1012
#define VIDEO_PIX_FMT_GBRG8
Definition video.h:895
#define VIDEO_PIX_FMT_SGBRG12P
Definition video.h:967
#define VIDEO_PIX_FMT_RGB565
5 red bits [15:11], 6 green bits [10:5], 5 blue bits [4:0].
Definition video.h:1106
#define NULL
Definition iar_missing_defs.h:20
sighandler_t signal(int signo, sighandler_t handler)
Public kernel APIs.
__UINT32_TYPE__ uint32_t
Definition stdint.h:90
__UINT64_TYPE__ uint64_t
Definition stdint.h:91
__UINT8_TYPE__ uint8_t
Definition stdint.h:88
__UINT16_TYPE__ uint16_t
Definition stdint.h:89
__INT16_TYPE__ int16_t
Definition stdint.h:73
Runtime device structure (in ROM) per driver instance.
Definition device.h:504
const void * api
Address of the API structure exposed by the device instance.
Definition device.h:510
Definition kernel.h:5998
Kernel timeout type.
Definition sys_clock.h:65
Video buffer structure.
Definition video.h:126
uint32_t bytesused
number of bytes occupied by the valid data in the buffer.
Definition video.h:134
uint32_t size
size of the buffer in bytes.
Definition video.h:132
uint8_t * buffer
pointer to the start of the buffer.
Definition video.h:130
void * driver_data
pointer to driver specific data.
Definition video.h:128
uint16_t line_offset
Line offset within frame this buffer represents, from the beginning of the frame.
Definition video.h:145
uint32_t timestamp
time reference in milliseconds at which the last data byte was actually received for input endpoints ...
Definition video.h:139
Video format capabilities.
Definition video.h:95
uint8_t min_vbuf_count
minimal count of video buffers to enqueue before being able to start the stream.
Definition video.h:101
int16_t min_line_count
Denotes minimum line count of a video buffer that this endpoint can fill or process.
Definition video.h:110
int16_t max_line_count
Denotes maximum line count of a video buffer that this endpoint can fill or process.
Definition video.h:117
const struct video_format_cap * format_caps
list of video format capabilities (zero terminated).
Definition video.h:97
Video control structure.
Definition video-controls.h:210
Definition video-controls.h:257
Definition video.h:347
video_api_ctrl_t set_ctrl
Definition video.h:357
video_api_enqueue_t enqueue
Definition video.h:354
video_api_set_signal_t set_signal
Definition video.h:359
video_api_get_format_t get_format
Definition video.h:350
video_api_enum_frmival_t enum_frmival
Definition video.h:362
video_api_get_caps_t get_caps
Definition video.h:352
video_api_set_format_t set_format
Definition video.h:349
video_api_flush_t flush
Definition video.h:356
video_api_dequeue_t dequeue
Definition video.h:355
video_api_get_frmival_t get_frmival
Definition video.h:361
video_api_set_stream_t set_stream
Definition video.h:351
video_api_set_frmival_t set_frmival
Definition video.h:360
video_api_ctrl_t get_volatile_ctrl
Definition video.h:358
Video format capability.
Definition video.h:72
uint16_t height_step
height step size in pixels.
Definition video.h:86
uint32_t width_min
minimum supported frame width in pixels.
Definition video.h:76
uint32_t width_max
maximum supported frame width in pixels.
Definition video.h:78
uint16_t width_step
width step size in pixels.
Definition video.h:84
uint32_t height_max
maximum supported frame height in pixels.
Definition video.h:82
uint32_t height_min
minimum supported frame height in pixels.
Definition video.h:80
uint32_t pixelformat
FourCC pixel format value (Video pixel formats).
Definition video.h:74
Video format structure.
Definition video.h:49
uint32_t height
frame height in pixels.
Definition video.h:55
uint32_t width
frame width in pixels.
Definition video.h:53
uint32_t pitch
line stride.
Definition video.h:63
uint32_t pixelformat
FourCC pixel format value (Video pixel formats)
Definition video.h:51
Video frame interval enumeration structure.
Definition video.h:194
uint32_t index
frame interval index during enumeration
Definition video.h:196
const struct video_format * format
video format for which the query is made
Definition video.h:198
enum video_frmival_type type
frame interval type the device supports
Definition video.h:200
Video frame interval stepwise structure.
Definition video.h:179
struct video_frmival min
minimum frame interval in seconds
Definition video.h:181
struct video_frmival max
maximum frame interval in seconds
Definition video.h:183
struct video_frmival step
frame interval step size in seconds
Definition video.h:185
Video frame interval structure.
Definition video.h:166
uint32_t numerator
numerator of the frame interval
Definition video.h:168
uint32_t denominator
denominator of the frame interval
Definition video.h:170