/* SPDX-License-Identifier: LGPL-2.1-or-later */ /* * Copyright (C) 2021, Google Inc. * * camera_buffer.h - Frame buffer handling interface definition */ #ifndef __ANDROID_CAMERA_BUFFER_H__ #define __ANDROID_CAMERA_BUFFER_H__ #include #include #include class CameraBuffer final : public libcamera::Extensible { LIBCAMERA_DECLARE_PRIVATE(CameraBuffer) public: CameraBuffer(buffer_handle_t camera3Buffer, int flags); ~CameraBuffer(); bool isValid() const; unsigned int numPlanes() const; libcamera::Span plane(unsigned int plane) const; libcamera::Span plane(unsigned int plane); size_t jpegBufferSize(size_t maxJpegBufferSize) const; }; #define PUBLIC_CAMERA_BUFFER_IMPLEMENTATION \ CameraBuffer::CameraBuffer(buffer_handle_t camera3Buffer, int flags) \ : Extensible(new Private(this, camera3Buffer, flags)) \ { \ } \ CameraBuffer::~CameraBuffer() \ { \ } \ bool CameraBuffer::isValid() const \ { \ const Private *const d = LIBCAMERA_D_PTR(); \ return d->isValid(); \ } \ unsigned int CameraBuffer::numPlanes() const \ { \ const Private *const d = LIBCAMERA_D_PTR(); \ return d->numPlanes(); \ } \ Span CameraBuffer::plane(unsigned int plane) const \ { \ const Private *const d = LIBCAMERA_D_PTR(); \ return const_cast(d)->plane(plane); \ } \ Span CameraBuffer::plane(unsigned int plane) \ { \ Private *const d = LIBCAMERA_D_PTR(); \ return d->plane(plane); \ } \ size_t CameraBuffer::jpegBufferSize(size_t maxJpegBufferSize) const \ { \ const Private *const d = LIBCAMERA_D_PTR(); \ return d->jpegBufferSize(maxJpegBufferSize); \ } #endif /* __ANDROID_CAMERA_BUFFER_H__ */ >jmondi/pinephone Jacopo Mondi's clone of libcameragit repository hosting on libcamera.org
summaryrefslogtreecommitdiff
blob: 8ef2e9d87498aa5b2ca66e4925fcf14955cc1e04 (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-grid"><rect x="3" y="3" width="7" height="7"></rect><rect x="14" y="3" width="7" height="7"></rect><rect x="14" y="14" width="7" height="7"></rect><rect x="3" y="14" width="7" height="7"></rect></svg>