/* 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 #include #include class CameraBuffer final : public libcamera::Extensible { LIBCAMERA_DECLARE_PRIVATE() public: CameraBuffer(buffer_handle_t camera3Buffer, libcamera::PixelFormat pixelFormat, const libcamera::Size &size, int flags); ~CameraBuffer(); bool isValid() const; unsigned int numPlanes() const; libcamera::Span plane(unsigned int plane) const; libcamera::Span plane(unsigned int plane); unsigned int stride(unsigned int plane) const; unsigned int offset(unsigned int plane) const; unsigned int size(unsigned int plane) const; size_t jpegBufferSize(size_t maxJpegBufferSize) const; }; #define PUBLIC_CAMERA_BUFFER_IMPLEMENTATION \ CameraBuffer::CameraBuffer(buffer_handle_t camera3Buffer, \ libcamera::PixelFormat pixelFormat, \ const libcamera::Size &size, int flags) \ : Extensible(std::make_unique(this, camera3Buffer, \ pixelFormat, size, \ flags)) \ { \ } \ CameraBuffer::~CameraBuffer() \ { \ } \ bool CameraBuffer::isValid() const \ { \ return _d()->isValid(); \ } \ unsigned int CameraBuffer::numPlanes() const \ { \ return _d()->numPlanes(); \ } \ Span CameraBuffer::plane(unsigned int plane) const \ { \ return const_cast(_d())->plane(plane); \ } \ Span CameraBuffer::plane(unsigned int plane) \ { \ return _d()->plane(plane); \ } \ unsigned int CameraBuffer::stride(unsigned int plane) const \ { \ return _d()->stride(plane); \ } \ unsigned int CameraBuffer::offset(unsigned int plane) const \ { \ return _d()->offset(plane); \ } \ unsigned int CameraBuffer::size(unsigned int plane) const \ { \ return _d()->size(plane); \ } \ size_t CameraBuffer::jpegBufferSize(size_t maxJpegBufferSize) const \ { \ return _d()->jpegBufferSize(maxJpegBufferSize); \ } #endif /* __ANDROID_CAMERA_BUFFER_H__ */ ect>
blob: f1e09eec0422d3ddf9e319c89ad17f8859a27da8 (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-package"><line x1="16.5" y1="9.4" x2="7.5" y2="4.21"></line><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path><polyline points="3.27 6.96 12 12.01 20.73 6.96"></polyline><line x1="12" y1="22.08" x2="12" y2="12"></line></svg>