summaryrefslogtreecommitdiff
path: root/src/android/jpeg/thumbnailer.cpp
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2021-09-06 16:25:06 +0300
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2021-09-07 19:18:37 +0300
commit894ca69f60435e3402de5786682d621362979171 (patch)
treecc4f97a6d9df60fb079534f7dc9f3cd83668c73b /src/android/jpeg/thumbnailer.cpp
parent2dca2b2fc6af4cee79a16b466a3cc1b92c3d036f (diff)
android: jpeg: Support multi-planar buffers
The JPEG post-processor uses MappedFrameBuffer to access pixel data, but only uses data from the first plane. Pass the vector of planes to the encode() function to correctly handle multi-planar formats (currently limited to NV12). Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Acked-by: Umang Jain <umang.jain@ideasonboard.com> Tested-by: Umang Jain <umang.jain@ideasonboard.com> Reviewed-by: Hirokazu Honda <hiroh@chromium.org> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Diffstat (limited to 'src/android/jpeg/thumbnailer.cpp')
-rw-r--r--src/android/jpeg/thumbnailer.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/android/jpeg/thumbnailer.cpp b/src/android/jpeg/thumbnailer.cpp
index 043c7b33..1fab8072 100644
--- a/src/android/jpeg/thumbnailer.cpp
+++ b/src/android/jpeg/thumbnailer.cpp
@@ -59,11 +59,12 @@ void Thumbnailer::createThumbnail(const FrameBuffer &source,
const unsigned int tw = targetSize.width;
const unsigned int th = targetSize.height;
+ ASSERT(frame.planes().size() == 2);
ASSERT(tw % 2 == 0 && th % 2 == 0);
/* Image scaling block implementing nearest-neighbour algorithm. */
- unsigned char *src = static_cast<unsigned char *>(frame.planes()[0].data());
- unsigned char *srcC = src + sh * sw;
+ unsigned char *src = frame.planes()[0].data();
+ unsigned char *srcC = frame.planes()[1].data();
unsigned char *srcCb, *srcCr;
unsigned char *dstY, *srcY;