diff options
author | Jacopo Mondi <jacopo@jmondi.org> | 2021-02-24 13:28:34 +0100 |
---|---|---|
committer | Jacopo Mondi <jacopo@jmondi.org> | 2021-03-03 09:50:13 +0100 |
commit | 63383dec435df810f9f49034a3797688b8768d1a (patch) | |
tree | 1251f95b59c66eb80bee34836076fc5298951fba /src/android/camera_buffer.h | |
parent | a725baf4b33320a71f03474627c9bf19cdafc4ed (diff) |
android: camera_buffer: Implement libcamera::Extensible
In order to prepare to support more memory backends, make the
CameraBuffer class implement the PIMPL (pointer-to-implementation)
pattern by inheriting from the libcamera::Extensible class.
Temporary maintain libcamera::MappedBuffer as the CameraBuffer base
class to maintain compatibility of the CameraStream::process() interface
that requires a MappedBuffer * as second argument and will be converted
to use a CameraBuffer in the next patch.
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
Diffstat (limited to 'src/android/camera_buffer.h')
-rw-r--r-- | src/android/camera_buffer.h | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/android/camera_buffer.h b/src/android/camera_buffer.h index 0590cd84..ca4f4527 100644 --- a/src/android/camera_buffer.h +++ b/src/android/camera_buffer.h @@ -9,13 +9,25 @@ #include <hardware/camera3.h> +#include <libcamera/class.h> #include <libcamera/internal/buffer.h> +#include <libcamera/span.h> -class CameraBuffer : public libcamera::MappedBuffer +class CameraBuffer final : public libcamera::Extensible, + public libcamera::MappedBuffer { + LIBCAMERA_DECLARE_PRIVATE(CameraBuffer) + public: CameraBuffer(buffer_handle_t camera3Buffer, int flags); ~CameraBuffer(); + + bool isValid() const; + + unsigned int numPlanes() const; + + libcamera::Span<const uint8_t> plane(unsigned int plane) const; + libcamera::Span<uint8_t> plane(unsigned int plane); }; #endif /* __ANDROID_CAMERA_BUFFER_H__ */ |