From 6fe259939e375ed8e8bd604e93cabbf664a20de5 Mon Sep 17 00:00:00 2001
From: Paul Elder <paul.elder@ideasonboard.com>
Date: Tue, 22 Nov 2022 10:54:51 +0000
Subject: video-source: add fill_buffer

We are preparing to allow video sources whose data is generated in
userspace. To this end, add a fill_buffer function to video_source.

Reviewed-by: Daniel Scally <dan.scally@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Signed-off-by: Paul Elder <paul.elder@ideasonboard.com>
Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
---
 include/uvcgadget/video-source.h | 3 +++
 lib/video-source.c               | 6 ++++++
 2 files changed, 9 insertions(+)

diff --git a/include/uvcgadget/video-source.h b/include/uvcgadget/video-source.h
index 60f7ddd..b1a3cf4 100644
--- a/include/uvcgadget/video-source.h
+++ b/include/uvcgadget/video-source.h
@@ -26,6 +26,7 @@ struct video_source_ops {
 	int(*stream_on)(struct video_source *src);
 	int(*stream_off)(struct video_source *src);
 	int(*queue_buffer)(struct video_source *src, struct video_buffer *buf);
+	void(*fill_buffer)(struct video_source *src, struct video_buffer *buf);
 };
 
 typedef void(*video_source_buffer_handler_t)(void *, struct video_source *,
@@ -53,5 +54,7 @@ int video_source_stream_on(struct video_source *src);
 int video_source_stream_off(struct video_source *src);
 int video_source_queue_buffer(struct video_source *src,
 			      struct video_buffer *buf);
+void video_source_fill_buffer(struct video_source *src,
+			      struct video_buffer *buf);
 
 #endif /* __VIDEO_SOURCE_H__ */
diff --git a/lib/video-source.c b/lib/video-source.c
index 5520b95..17f008a 100644
--- a/lib/video-source.c
+++ b/lib/video-source.c
@@ -65,3 +65,9 @@ int video_source_queue_buffer(struct video_source *src,
 {
 	return src->ops->queue_buffer(src, buf);
 }
+
+void video_source_fill_buffer(struct video_source *src,
+			      struct video_buffer *buf)
+{
+	src->ops->fill_buffer(src, buf);
+}
-- 
cgit v1.2.3