summaryrefslogtreecommitdiff
path: root/include/uvcgadget
diff options
context:
space:
mode:
authorDaniel Scally <dan.scally@ideasonboard.com>2023-01-10 11:58:04 +0000
committerDaniel Scally <dan.scally@ideasonboard.com>2023-01-16 13:10:16 +0000
commit4d9897c5aa5376f89e0d5ed1534536f680939e0d (patch)
tree9d2f1ecb449d218849831279f776121e987bd755 /include/uvcgadget
parent3f6aee6a13233e9ffcbb133ab9490aead7e2ced3 (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/uvcgadget')
-rw-r--r--include/uvcgadget/video-source.h13
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,