diff options
author | Jacopo Mondi <jacopo@jmondi.org> | 2021-10-25 11:47:44 +0200 |
---|---|---|
committer | Jacopo Mondi <jacopo@jmondi.org> | 2021-12-11 17:53:40 +0100 |
commit | 015fa7f718156f59d233b48653211d08f5567760 (patch) | |
tree | ec74e14c9c76a46b9630c5f7233cf24914a9175a /src/android/camera_worker.h | |
parent | a71834e1a0f951772bb7efaa8d4a4b296718d1ec (diff) |
android: Remove CameraWorker
The CameraWorker class purpose was to handle acquire fences for incoming
capture requests directed to libcamera.
Now that fences are handled by the core library, it is not required to
handle them in the HAL and the CameraWorker and CaptureRequest classes
can be dropped.
Update the core in CameraDevice class accordingly to queue Requests
directly to the libcamera::Camera and set the release_fence to the
value of the FrameBuffer::fence() for streams of type ::Direct.
While at it make CameraRequest::StreamBuffer::fence a UniqueFD to ease
the management of the fences file descriptor values.
Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Diffstat (limited to 'src/android/camera_worker.h')
-rw-r--r-- | src/android/camera_worker.h | 70 |
1 files changed, 0 insertions, 70 deletions
diff --git a/src/android/camera_worker.h b/src/android/camera_worker.h deleted file mode 100644 index 26ecc273..00000000 --- a/src/android/camera_worker.h +++ /dev/null @@ -1,70 +0,0 @@ -/* SPDX-License-Identifier: LGPL-2.1-or-later */ -/* - * Copyright (C) 2020, Google Inc. - * - * camera_worker.h - Process capture requests on behalf of the Camera HAL - */ - -#pragma once - -#include <memory> -#include <stdint.h> - -#include <libcamera/base/object.h> -#include <libcamera/base/thread.h> - -#include <libcamera/camera.h> -#include <libcamera/framebuffer.h> -#include <libcamera/request.h> -#include <libcamera/stream.h> - -class CameraDevice; - -class CaptureRequest -{ -public: - CaptureRequest(libcamera::Camera *camera, uint64_t cookie); - - const std::vector<int> &fences() const { return acquireFences_; } - libcamera::ControlList &controls() { return request_->controls(); } - const libcamera::ControlList &metadata() const - { - return request_->metadata(); - } - unsigned long cookie() const { return request_->cookie(); } - - void addBuffer(libcamera::Stream *stream, - libcamera::FrameBuffer *buffer, int fence); - void queue(); - -private: - libcamera::Camera *camera_; - std::vector<int> acquireFences_; - std::unique_ptr<libcamera::Request> request_; -}; - -class CameraWorker : private libcamera::Thread -{ -public: - CameraWorker(); - - void start(); - void stop(); - - void queueRequest(CaptureRequest *request); - -protected: - void run() override; - -private: - class Worker : public libcamera::Object - { - public: - void processRequest(CaptureRequest *request); - - private: - int waitFence(int fence); - }; - - Worker worker_; -}; |