/* SPDX-License-Identifier: GPL-2.0-or-later */ /* * Copyright (C) 2020, Google Inc. * * simple_capture.h - Simple capture helper */ #ifndef __LC_COMPLIANCE_SIMPLE_CAPTURE_H__ #define __LC_COMPLIANCE_SIMPLE_CAPTURE_H__ #include #include #include "../cam/event_loop.h" #include "results.h" class SimpleCapture { public: Results::Result configure(libcamera::StreamRole role); protected: SimpleCapture(std::shared_ptr camera); virtual ~SimpleCapture(); Results::Result start(); void stop(); virtual void requestComplete(libcamera::Request *request) = 0; EventLoop *loop_; std::shared_ptr camera_; std::unique_ptr allocator_; std::unique_ptr config_; }; class SimpleCaptureBalanced : public SimpleCapture { public: SimpleCaptureBalanced(std::shared_ptr camera); Results::Result capture(unsigned int numRequests); private: int queueRequest(libcamera::Request *request); void requestComplete(libcamera::Request *request) override; unsigned int queueCount_; unsigned int captureCount_; unsigned int captureLimit_; }; class SimpleCaptureUnbalanced : public SimpleCapture { public: SimpleCaptureUnbalanced(std::shared_ptr camera); Results::Result capture(unsigned int numRequests); private: void requestComplete(libcamera::Request *request) override; unsigned int captureCount_; unsigned int captureLimit_; }; #endif /* __LC_COMPLIANCE_SIMPLE_CAPTURE_H__ */ cb275c85&id=90a17209266597eaf16162d4ff13d72007a25e67'>treecommitdiff
blob: fd9f3d74d6cee93d505a83dc3162bcf4cc15818e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33