libcamera v0.7.0+1-4ceceb68
Supporting cameras in Linux since 2019
Loading...
Searching...
No Matches
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
15#include <libcamera/base/span.h>
16
17#include <libcamera/fence.h>
19
20namespace libcamera {
21
23{
25
26public:
27 Private(Span<const Plane> planes, uint64_t cookie = 0);
28 virtual ~Private();
29
30 void setRequest(Request *request) { request_ = request; }
31 bool isContiguous() const { return isContiguous_; }
32
33 Fence *fence() const { return fence_.get(); }
34 void setFence(std::unique_ptr<Fence> fence) { fence_ = std::move(fence); }
35
37
38 FrameMetadata &metadata() { return metadata_; }
39
40private:
41 std::vector<Plane> planes_;
42 FrameMetadata metadata_;
43 uint64_t cookie_;
44
45 std::unique_ptr<Fence> fence_;
46 Request *request_;
47 bool isContiguous_;
48};
49
50} /* namespace libcamera */
Utilities to help constructing class interfaces.
#define LIBCAMERA_DECLARE_PUBLIC(klass)
Declare public data for a private class.
Definition class.h:57
Base class for private data managed through a d-pointer.
Definition class.h:65
Private()
Construct an instance of an Extensible class private data.
Definition class.cpp:194
Synchronization primitive to manage resources.
Definition fence.h:16
Base class for FrameBuffer private data.
Definition framebuffer.h:23
virtual ~Private()
FrameBuffer::Private destructor.
Definition framebuffer.cpp:143
void setRequest(Request *request)
Set the request this buffer belongs to.
Definition framebuffer.h:30
Fence * fence() const
Retrieve a const pointer to the Fence.
Definition framebuffer.h:33
bool isContiguous() const
Check if the frame buffer stores planes contiguously in memory.
Definition framebuffer.h:31
void setFence(std::unique_ptr< Fence > fence)
Move a fence in this buffer.
Definition framebuffer.h:34
FrameMetadata & metadata()
Retrieve the dynamic metadata.
Definition framebuffer.h:38
void cancel()
Marks the buffer as cancelled.
Definition framebuffer.h:36
Frame buffer data and its associated dynamic metadata.
Definition framebuffer.h:50
Request * request() const
Retrieve the request this buffer belongs to.
Definition framebuffer.cpp:386
Span< const Plane > planes() const
Retrieve the static plane descriptors.
Definition framebuffer.cpp:368
uint64_t cookie() const
Retrieve the cookie.
Definition framebuffer.cpp:410
A frame capture request.
Definition request.h:30
Definition of the Fence class.
Frame buffer handling.
Top-level libcamera namespace.
Definition backtrace.h:17
Metadata related to a captured frame.
Definition framebuffer.h:24
@ FrameCancelled
Definition framebuffer.h:28
Status status
Status of the frame.
Definition framebuffer.h:36