/* 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__ */ circle.svg?h=v0.0.4&id=f65fad5a4d5566f37eab67bbb95daa9235d61978'>treecommitdiff
blob: 4b21b32b6fb7da03e2d8bf41c1be12349a68dd29 (plain)
1
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-message-circle"><path d="M21 11.5a8.38 8.38 0 0 1-.9 3.8 8.5 8.5 0 0 1-7.6 4.7 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7a8.38 8.38 0 0 1-.9-3.8 8.5 8.5 0 0 1 4.7-7.6 8.38 8.38 0 0 1 3.8-.9h.5a8.48 8.48 0 0 1 8 8v.5z"></path></svg>