/* SPDX-License-Identifier: LGPL-2.1-or-later */ /* * Copyright (C) 2021, Google Inc. * * Frame buffer handling interface definition */ #pragma once #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); \ } class='txt' type='search' size='10' name='q' value=''/>
blob: 96c709f9271c65df8acfa896933fcb3bba957a30 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<!DOCTYPE RCC><RCC version="1.0">
<qresource>
	<file>RGB.frag</file>
	<file>YUV_2_planes.frag</file>
	<file>YUV_3_planes.frag</file>
	<file>YUV_packed.frag</file>
	<file>bayer_1x_packed.frag</file>
	<file>bayer_8.frag</file>
	<file>bayer_8.vert</file>
	<file>identity.vert</file>
</qresource>
</RCC>