/* SPDX-License-Identifier: GPL-2.0-or-later */ /* * Copyright (C) 2021, Ideas on Board Oy * * Base Frame Sink Class */ #include "frame_sink.h" /** * \class FrameSink * \brief Abstract class to model a consumer of frames * * The FrameSink class models the consumer that processes frames after a request * completes. It receives requests through processRequest(), and processes them * synchronously or asynchronously. This allows frame sinks to hold onto frames * for an extended period of time, for instance to display them until a new * frame arrives. * * A frame sink processes whole requests, and is solely responsible for deciding * how to handle different frame buffers in case multiple streams are captured. */ FrameSink::~FrameSink() { } int FrameSink::configure([[maybe_unused]] const libcamera::CameraConfiguration &config) { return 0; } void FrameSink::mapBuffer([[maybe_unused]] libcamera::FrameBuffer *buffer) { } int FrameSink::start() { return 0; } int FrameSink::stop() { return 0; } /** * \fn FrameSink::processRequest() * \param[in] request The request * * This function is called to instruct the sink to process a request. The sink * may process the request synchronously or queue it for asynchronous * processing. * * When the request is processed synchronously, this function shall return true. * The \a request shall not be accessed by the FrameSink after the function * returns. * * When the request is processed asynchronously, the FrameSink temporarily takes * ownership of the \a request. The function shall return false, and the * FrameSink shall emit the requestProcessed signal when the request processing * completes. If the stop() function is called before the request processing * completes, it shall release the request synchronously. * * \return True if the request has been processed synchronously, false if * processing has been queued */ cf42e5'>treecommitdiff
path: root/test/camera/capture.cpp
blob: de824083dfedde59bf3eab765c7a6711126c6e9a (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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175