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, | 
