diff options
author | Daniel Scally <dan.scally@ideasonboard.com> | 2023-01-10 11:58:04 +0000 |
---|---|---|
committer | Daniel Scally <dan.scally@ideasonboard.com> | 2023-01-16 13:10:16 +0000 |
commit | 4d9897c5aa5376f89e0d5ed1534536f680939e0d (patch) | |
tree | 9d2f1ecb449d218849831279f776121e987bd755 /include | |
parent | 3f6aee6a13233e9ffcbb133ab9490aead7e2ced3 (diff) |
lib: Add video_source_type enumeration
Add an enum to struct video_source that details the type of source
we're dealing with. This will be used to make decisions about buffer
allocation and handling in a more explicit way.
Use the video_source_type associated with a video_source to decide on
the appropriate allocation function and buffer handler at stream on time.
This is a more explicit method than relying on the presence of the
.alloc_buffers op and allows more flexibility.
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Signed-off-by: Daniel Scally <dan.scally@ideasonboard.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/uvcgadget/video-source.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/include/uvcgadget/video-source.h b/include/uvcgadget/video-source.h index b1a3cf4..f888ce4 100644 --- a/include/uvcgadget/video-source.h +++ b/include/uvcgadget/video-source.h @@ -32,11 +32,24 @@ struct video_source_ops { typedef void(*video_source_buffer_handler_t)(void *, struct video_source *, struct video_buffer *); +/* + * video_source_type - Enumeration of the different kinds of video source + * @VIDEO_SOURCE_DMABUF A source that can share data with the sink via a + * DMA file descriptor. + * @VIDEO_SOURCE_STATIC A source that draws data from an unchanging + * buffer such as a .jpg file + */ +enum video_source_type { + VIDEO_SOURCE_DMABUF, + VIDEO_SOURCE_STATIC, +}; + struct video_source { const struct video_source_ops *ops; struct events *events; video_source_buffer_handler_t handler; void *handler_data; + enum video_source_type type; }; void video_source_set_buffer_handler(struct video_source *src, |