diff options
author | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2021-09-06 16:25:06 +0300 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2021-09-07 19:18:37 +0300 |
commit | 894ca69f60435e3402de5786682d621362979171 (patch) | |
tree | cc4f97a6d9df60fb079534f7dc9f3cd83668c73b /src/android/jpeg/thumbnailer.cpp | |
parent | 2dca2b2fc6af4cee79a16b466a3cc1b92c3d036f (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.cpp | 5 |
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; |