/* SPDX-License-Identifier: LGPL-2.1-or-later */ /* * Copyright (C) 2021, Google Inc. * * Interface definition to allocate Frame buffer in * platform dependent way. */ #ifndef __ANDROID_FRAME_BUFFER_ALLOCATOR_H__ #define __ANDROID_FRAME_BUFFER_ALLOCATOR_H__ #include #include #include #include #include "hal_framebuffer.h" class CameraDevice; class PlatformFrameBufferAllocator : libcamera::Extensible { LIBCAMERA_DECLARE_PRIVATE() public: explicit PlatformFrameBufferAllocator(CameraDevice *const cameraDevice); ~PlatformFrameBufferAllocator(); /* * FrameBuffer owns the underlying buffer. Returns nullptr on failure. * Note: The returned FrameBuffer needs to be destroyed before * PlatformFrameBufferAllocator is destroyed. */ std::unique_ptr allocate( int halPixelFormat, const libcamera::Size &size, uint32_t usage); }; #define PUBLIC_FRAME_BUFFER_ALLOCATOR_IMPLEMENTATION \ PlatformFrameBufferAllocator::PlatformFrameBufferAllocator( \ CameraDevice *const cameraDevice) \ : Extensible(std::make_unique(cameraDevice)) \ { \ } \ PlatformFrameBufferAllocator::~PlatformFrameBufferAllocator() \ { \ } \ std::unique_ptr \ PlatformFrameBufferAllocator::allocate(int halPixelFormat, \ const libcamera::Size &size, \ uint32_t usage) \ { \ return _d()->allocate(halPixelFormat, size, usage); \ } #endif /* __ANDROID_FRAME_BUFFER_ALLOCATOR_H__ */ href='/libcamera/pinchartl/libcamera.git/refs/?h=rpi/streams/next&id=7bb4d7144c3e7c469310d4fd473653fb6cbfc1b8'>refslogtreecommitdiff
blob: d89f84c03f4d15f6c10fc36ae93a5f761b19ffb6 (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