mirror of
https://git.libcamera.org/libcamera/libcamera.git
synced 2025-07-14 16:09:51 +03:00
HALFrameBuffer is derived from FrameBuffer with access to buffer_handle_t, which is needed for JEA usage. Signed-off-by: Harvey Yang <chenghaoyang@chromium.org> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Han-Lin Chen <hanlinchen@chromium.org> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
56 lines
1.6 KiB
C++
56 lines
1.6 KiB
C++
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
|
/*
|
|
* Copyright (C) 2021, Google Inc.
|
|
*
|
|
* frame_buffer_allocator.h - Interface definition to allocate Frame buffer in
|
|
* platform dependent way.
|
|
*/
|
|
#ifndef __ANDROID_FRAME_BUFFER_ALLOCATOR_H__
|
|
#define __ANDROID_FRAME_BUFFER_ALLOCATOR_H__
|
|
|
|
#include <memory>
|
|
|
|
#include <libcamera/base/class.h>
|
|
|
|
#include <libcamera/camera.h>
|
|
#include <libcamera/geometry.h>
|
|
|
|
#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<HALFrameBuffer> 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<Private>(cameraDevice)) \
|
|
{ \
|
|
} \
|
|
PlatformFrameBufferAllocator::~PlatformFrameBufferAllocator() \
|
|
{ \
|
|
} \
|
|
std::unique_ptr<HALFrameBuffer> \
|
|
PlatformFrameBufferAllocator::allocate(int halPixelFormat, \
|
|
const libcamera::Size &size, \
|
|
uint32_t usage) \
|
|
{ \
|
|
return _d()->allocate(halPixelFormat, size, usage); \
|
|
}
|
|
|
|
#endif /* __ANDROID_FRAME_BUFFER_ALLOCATOR_H__ */
|