diff options
author | Kieran Bingham <kieran.bingham@ideasonboard.com> | 2020-07-13 11:35:11 +0100 |
---|---|---|
committer | Barnabás Pőcze <pobrn@protonmail.com> | 2024-12-09 12:19:20 +0100 |
commit | 3feec0c06f929efaf26a9a56b1e09ec78c124a71 (patch) | |
tree | 578c536b14e9191a067f54f32198575c73759c1a /src | |
parent | 017f711530013f3b32f405f528ada8ecfa8d05c2 (diff) |
libcamera: pipeline: vivid: Queue requests
When a request is given to a pipeline handler, it must parse the request
and identify what actions the pipeline handler should take to enact on hardware.
In the case of the VIVID pipeline handler, we identify the buffer from the only
supported stream, and queue it to the video capture device.
Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/libcamera/pipeline/vivid/vivid.cpp | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/libcamera/pipeline/vivid/vivid.cpp b/src/libcamera/pipeline/vivid/vivid.cpp index f25af6a2..999eda34 100644 --- a/src/libcamera/pipeline/vivid/vivid.cpp +++ b/src/libcamera/pipeline/vivid/vivid.cpp @@ -223,7 +223,20 @@ void PipelineHandlerVivid::stopDevice(Camera *camera) int PipelineHandlerVivid::queueRequestDevice(Camera *camera, Request *request) { - return -1; + VividCameraData *data = cameraData(camera); + FrameBuffer *buffer = request->findBuffer(&data->stream_); + if (!buffer) { + LOG(VIVID, Error) + << "Attempt to queue request with invalid stream"; + + return -ENOENT; + } + + int ret = data->video_->queueBuffer(buffer); + if (ret < 0) + return ret; + + return 0; } bool PipelineHandlerVivid::match(DeviceEnumerator *enumerator) |