[libcamera-devel] [PATCH v4 1/2] android: CameraBuffer: Add a static function to check a buffer validness
Hirokazu Honda
hiroh at chromium.org
Fri Apr 16 15:43:46 CEST 2021
This adds a static function to CameraBuffer class that checks if
a buffer_handle is valid with a platform dependent framework.
For example, the function validates a buffer using
cros::CameraBufferManager on ChromeOS.
Signed-off-by: Hirokazu Honda <hiroh at chromium.org>
Reviewed-by: Jacopo Mondi <jacopo at jmondi.org>
---
src/android/camera_buffer.h | 6 ++++++
src/android/mm/cros_camera_buffer.cpp | 8 ++++++++
src/android/mm/generic_camera_buffer.cpp | 9 +++++++++
3 files changed, 23 insertions(+)
diff --git a/src/android/camera_buffer.h b/src/android/camera_buffer.h
index 7e8970b4..21785a7e 100644
--- a/src/android/camera_buffer.h
+++ b/src/android/camera_buffer.h
@@ -20,6 +20,8 @@ public:
CameraBuffer(buffer_handle_t camera3Buffer, int flags);
~CameraBuffer();
+ static bool isValidBuffer(buffer_handle_t camera3Buffer);
+
bool isValid() const;
unsigned int numPlanes() const;
@@ -38,6 +40,10 @@ CameraBuffer::CameraBuffer(buffer_handle_t camera3Buffer, int flags) \
CameraBuffer::~CameraBuffer() \
{ \
} \
+bool CameraBuffer::isValidBuffer(buffer_handle_t buffer) \
+{ \
+ return Private::isValidBuffer(buffer); \
+} \
bool CameraBuffer::isValid() const \
{ \
const Private *const d = LIBCAMERA_D_PTR(); \
diff --git a/src/android/mm/cros_camera_buffer.cpp b/src/android/mm/cros_camera_buffer.cpp
index 1a4fd5d1..f06e8511 100644
--- a/src/android/mm/cros_camera_buffer.cpp
+++ b/src/android/mm/cros_camera_buffer.cpp
@@ -24,6 +24,8 @@ public:
buffer_handle_t camera3Buffer, int flags);
~Private();
+ static bool isValidBuffer(buffer_handle_t camera3Buffer);
+
bool isValid() const { return valid_; }
unsigned int numPlanes() const;
@@ -133,4 +135,10 @@ size_t CameraBuffer::Private::jpegBufferSize(size_t maxJpegBufferSize) const
return bufferManager_->GetPlaneSize(handle_, 0);
}
+/* static */
+bool CameraBuffer::Private::isValidBuffer(buffer_handle_t camera3Buffer)
+{
+ return cros::CameraBufferManager::IsValidBuffer(camera3Buffer);
+}
+
PUBLIC_CAMERA_BUFFER_IMPLEMENTATION
diff --git a/src/android/mm/generic_camera_buffer.cpp b/src/android/mm/generic_camera_buffer.cpp
index 929e078a..07a07372 100644
--- a/src/android/mm/generic_camera_buffer.cpp
+++ b/src/android/mm/generic_camera_buffer.cpp
@@ -24,6 +24,8 @@ public:
buffer_handle_t camera3Buffer, int flags);
~Private();
+ static bool isValidBuffer(buffer_handle_t camera3Buffer);
+
unsigned int numPlanes() const;
Span<uint8_t> plane(unsigned int plane);
@@ -85,4 +87,11 @@ size_t CameraBuffer::Private::jpegBufferSize(size_t maxJpegBufferSize) const
maxJpegBufferSize);
}
+/* static */
+bool CameraBuffer::Private::isValidBuffer(
+ [[maybe_unused]] buffer_handle_t camera3Buffer)
+{
+ return true;
+}
+
PUBLIC_CAMERA_BUFFER_IMPLEMENTATION
--
2.31.1.368.gbe11c130af-goog
More information about the libcamera-devel
mailing list