diff options
author | Umang Jain <email@uajain.com> | 2020-10-28 02:54:46 +0530 |
---|---|---|
committer | Kieran Bingham <kieran.bingham@ideasonboard.com> | 2020-10-28 15:52:51 +0000 |
commit | f0421988dc7d91fbd221e2282f839cb51e1a3f8c (patch) | |
tree | 137bb03e77eb36acffd94f708d253c2930aaf89f /src/android/jpeg/thumbnailer.h | |
parent | 25202dbb7ebbc90551751ff2fef4e876b4923d3e (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.h | 36 |
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__ */ |