libcamera  v0.5.0+11-5d1380f7
Supporting cameras in Linux since 2019
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
framebuffer.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: LGPL-2.1-or-later */
2 /*
3  * Copyright (C) 2020, Google Inc.
4  *
5  * Internal frame buffer handling
6  */
7 
8 #pragma once
9 
10 #include <memory>
11 #include <stdint.h>
12 #include <utility>
13 
14 #include <libcamera/base/class.h>
15 
16 #include <libcamera/fence.h>
17 #include <libcamera/framebuffer.h>
18 
19 namespace libcamera {
20 
22 {
24 
25 public:
26  Private(const std::vector<Plane> &planes, uint64_t cookie = 0);
27  virtual ~Private();
28 
29  void setRequest(Request *request) { request_ = request; }
30  bool isContiguous() const { return isContiguous_; }
31 
32  Fence *fence() const { return fence_.get(); }
33  void setFence(std::unique_ptr<Fence> fence) { fence_ = std::move(fence); }
34 
36 
37  FrameMetadata &metadata() { return metadata_; }
38 
39 private:
40  std::vector<Plane> planes_;
41  FrameMetadata metadata_;
42  uint64_t cookie_;
43 
44  std::unique_ptr<Fence> fence_;
45  Request *request_;
46  bool isContiguous_;
47 };
48 
49 } /* namespace libcamera */
Frame buffer handling.
Base class for private data managed through a d-pointer.
Definition: class.h:64
Utilities to help constructing class interfaces.
Synchronization primitive to manage resources.
Definition: fence.h:15
Status status
Status of the frame.
Definition: framebuffer.h:35
FrameMetadata & metadata()
Retrieve the dynamic metadata.
Definition: framebuffer.h:37
void cancel()
Marks the buffer as cancelled.
Definition: framebuffer.h:35
Top-level libcamera namespace.
Definition: backtrace.h:17
Frame buffer data and its associated dynamic metadata.
Definition: framebuffer.h:48
#define LIBCAMERA_DECLARE_PUBLIC(klass)
Declare public data for a private class.
Metadata related to a captured frame.
Definition: framebuffer.h:24
Private()
Construct an instance of an Extensible class private data.
Definition: class.cpp:194
A frame capture request.
Definition: request.h:29
Base class for FrameBuffer private data.
Definition: framebuffer.h:21
Fence * fence() const
Retrieve a const pointer to the Fence.
Definition: framebuffer.h:32
Request * request() const
Retrieve the request this buffer belongs to.
Definition: framebuffer.cpp:379
const std::vector< Plane > & planes() const
Retrieve the static plane descriptors.
Definition: framebuffer.cpp:361
Definition: framebuffer.h:28
virtual ~Private()
FrameBuffer::Private destructor.
Definition: framebuffer.cpp:136
bool isContiguous() const
Check if the frame buffer stores planes contiguously in memory.
Definition: framebuffer.h:30
Definition of the Fence class.
void setFence(std::unique_ptr< Fence > fence)
Move a fence in this buffer.
Definition: framebuffer.h:33
uint64_t cookie() const
Retrieve the cookie.
Definition: framebuffer.cpp:403
void setRequest(Request *request)
Set the request this buffer belongs to.
Definition: framebuffer.h:29