summaryrefslogtreecommitdiff
path: root/src/android/jpeg/thumbnailer.h
diff options
context:
space:
mode:
authorUmang Jain <email@uajain.com>2020-10-28 02:54:46 +0530
committerKieran Bingham <kieran.bingham@ideasonboard.com>2020-10-28 15:52:51 +0000
commitf0421988dc7d91fbd221e2282f839cb51e1a3f8c (patch)
tree137bb03e77eb36acffd94f708d253c2930aaf89f /src/android/jpeg/thumbnailer.h
parent25202dbb7ebbc90551751ff2fef4e876b4923d3e (diff)
android: jpeg: Introduce a simple image thumbnailer
Add a basic image Thumbnailer class for the frames being captured. Currently, the thumbnailer can scale NV12 frames. It shall be used to generate a thumbnail image for EXIF metadata, in the subsequent commit. Signed-off-by: Umang Jain <email@uajain.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Diffstat (limited to 'src/android/jpeg/thumbnailer.h')
-rw-r--r--src/android/jpeg/thumbnailer.h36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/android/jpeg/thumbnailer.h b/src/android/jpeg/thumbnailer.h
new file mode 100644
index 00000000..98f11833
--- /dev/null
+++ b/src/android/jpeg/thumbnailer.h
@@ -0,0 +1,36 @@
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+/*
+ * Copyright (C) 2020, Google Inc.
+ *
+ * thumbnailer.h - Simple image thumbnailer
+ */
+#ifndef __ANDROID_JPEG_THUMBNAILER_H__
+#define __ANDROID_JPEG_THUMBNAILER_H__
+
+#include <libcamera/geometry.h>
+
+#include "libcamera/internal/buffer.h"
+#include "libcamera/internal/formats.h"
+
+class Thumbnailer
+{
+public:
+ Thumbnailer();
+
+ void configure(const libcamera::Size &sourceSize,
+ libcamera::PixelFormat pixelFormat);
+ void createThumbnail(const libcamera::FrameBuffer &source,
+ std::vector<unsigned char> *dest);
+ const libcamera::Size &size() const { return targetSize_; }
+
+private:
+ libcamera::Size computeThumbnailSize() const;
+
+ libcamera::PixelFormat pixelFormat_;
+ libcamera::Size sourceSize_;
+ libcamera::Size targetSize_;
+
+ bool valid_;
+};
+
+#endif /* __ANDROID_JPEG_THUMBNAILER_H__ */